package com.yyquan.jzh.activity; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; import com.google.gson.Gson; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.AsyncHttpResponseHandler; import com.loopj.android.http.RequestParams; import com.squareup.picasso.Picasso; import com.yyquan.jzh.R; import com.yyquan.jzh.entity.Ip; import com.yyquan.jzh.entity.User; import com.yyquan.jzh.entity.XmppFriend; import com.yyquan.jzh.entity.XmppUser; import com.yyquan.jzh.fragment.user.UserMessageFragment; import com.yyquan.jzh.fragment.user.UserStatusFragment; import com.yyquan.jzh.util.ToastUtil; import com.yyquan.jzh.view.CircleImageView; import com.yyquan.jzh.xmpp.XmppService; import com.yyquan.jzh.xmpp.XmppTool; import org.json.JSONException; import org.json.JSONObject; import java.util.List; import butterknife.Bind; import butterknife.ButterKnife; import cz.msebera.android.httpclient.Header; /** * Created by Administrator on 2016/2/3. */ public class ShowMessageActivity extends FragmentActivity implements View.OnClickListener { @Bind(R.id.layout_back) LinearLayout layoutBack; @Bind(R.id.iv_icon) CircleImageView ivIcon; @Bind(R.id.tv_name) TextView tvName; @Bind(R.id.tv_city) TextView tvCity; @Bind(R.id.layout_tab) TabLayout layoutTab; @Bind(R.id.viewpager) ViewPager viewpager; @Bind(R.id.btn_add) Button btnAdd; String user; User users; String name; UserMessageFragment messgae_fragment; UserStatusFragment status_fragment; Adapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_show_message); ButterKnife.bind(this); user = getIntent().getStringExtra("user"); getUserMessage(); layoutBack.setOnClickListener(this); btnAdd.setOnClickListener(this); } /** * 获取用户资料 */ void getUserMessage() { List<XmppUser> list = XmppTool.getInstance().searchUsers(user); name = list.get(0).getName(); AsyncHttpClient client = new AsyncHttpClient(); RequestParams params = new RequestParams(); params.put("user", user); params.put("action", "search_meeesage"); client.post(Ip.ip_user_message, params, new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { try { String str = new String(responseBody); JSONObject object = new JSONObject(str); if (object.getString("code").equals("success")) { String strs = object.getString("data"); Gson gson = new Gson(); users = gson.fromJson(strs, User.class); initialView(); tvName.setText(users.getNickname()); if (users.getCity().equals("")) { tvCity.setText("未知星球"); } else { tvCity.setText(users.getCity()); } if (users.getIcon().equals("")) { if (users.getSex().equals("男")) { ivIcon.setImageResource(R.mipmap.me_icon_man); } else { ivIcon.setImageResource(R.mipmap.me_icon_woman); } } else { if (users.getIcon().substring(0, 4).equals("http")) { Picasso.with(ShowMessageActivity.this).load(users.getIcon()).resize(200, 200).placeholder(R.mipmap.qq_addfriend_search_friend).error(R.mipmap.qq_addfriend_search_friend).centerInside().into(ivIcon); } else { Picasso.with(ShowMessageActivity.this).load(Ip.ip_icon + users.getIcon()).resize(200, 200).placeholder(R.mipmap.qq_addfriend_search_friend).error(R.mipmap.qq_addfriend_search_friend).centerInside().into(ivIcon); } } ivIcon.setOnClickListener(ShowMessageActivity.this); if (XmppService.user.equals(user)) { btnAdd.setVisibility(View.GONE); } else { btnAdd.setVisibility(View.VISIBLE); if (XmppTool.getInstance().isFriendly(user)) { btnAdd.setText("发信息"); } else { btnAdd.setText("加好友"); } } } } catch (JSONException e) { e.printStackTrace(); } } @Override public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { Log.i("showMessage", ">>>>>>失败"); } }); } private void initialView() { FragmentManager manager = this.getSupportFragmentManager(); if (manager != null) { adapter = new Adapter(manager); viewpager.setAdapter(adapter); layoutTab.setupWithViewPager(viewpager); layoutTab.setTabMode(TabLayout.MODE_FIXED); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.iv_icon: if (users != null) { Intent in = new Intent(this, ShowImageActivity.class); String path = ""; if (users.getIcon().equals("")) { path = users.getSex(); } else { path = users.getIcon(); } in.putExtra("path", path); in.putExtra("type", "icon"); startActivity(in); } break; case R.id.layout_back: finish(); break; case R.id.btn_add: if (btnAdd.getText().equals("发信息")) { Intent intent = new Intent(this, ChatActivity.class); intent.putExtra("xmpp_friend", new XmppFriend(users)); startActivity(intent); finish(); } else if (btnAdd.getText().equals("加好友")) { //15612610827;江城北望丶;15612610827_20151202_232508.jpg;男 Log.i("search>>>>", name + "\t" + users.getUser()); if (XmppTool.getInstance().addUser( users.getUser() + "@" + XmppTool.getInstance().getCon().getServiceName(), name, null)) { XmppTool.getInstance().addUserToGroup( users.getUser() + "@" + XmppTool.getInstance().getCon().getServiceName(), "我的好友"); Log.i("search", "申请添加" + users.getUser() + "@" + XmppTool.getInstance().getCon().getServiceName() + "为好友"); ToastUtil.show(ShowMessageActivity.this, "请求已发送"); } else { ToastUtil.show(ShowMessageActivity.this, "请求发送失败,请稍后再试"); Log.i("search", "添加失败"); } } break; } } private class Adapter extends FragmentPagerAdapter { String str[] = {"资料", "动态"}; public Adapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return getFragment(position); } @Override public int getCount() { return str.length; } @Override public CharSequence getPageTitle(int position) { return str[position]; } } private Fragment getFragment(int position) { switch (position) { case 0: if (messgae_fragment == null) { messgae_fragment = new UserMessageFragment(); Bundle bd = new Bundle(); bd.putSerializable("user", users); messgae_fragment.setArguments(bd); } return messgae_fragment; case 1: if (status_fragment == null) { status_fragment = new UserStatusFragment(); Bundle bd = new Bundle(); bd.putSerializable("user", users); status_fragment.setArguments(bd); } return status_fragment; } return null; } }