SearchFriendDetailActivity.java 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. package jiguang.chat.activity;
  2. import android.app.Dialog;
  3. import android.content.Intent;
  4. import android.graphics.Bitmap;
  5. import android.os.Bundle;
  6. import android.text.TextUtils;
  7. import android.view.View;
  8. import android.widget.Button;
  9. import android.widget.ImageView;
  10. import android.widget.TextView;
  11. import java.text.SimpleDateFormat;
  12. import java.util.Date;
  13. import cn.jpush.im.android.api.ContactManager;
  14. import cn.jpush.im.android.api.JMessageClient;
  15. import cn.jpush.im.android.api.callback.GetAvatarBitmapCallback;
  16. import cn.jpush.im.android.api.callback.GetUserInfoCallback;
  17. import cn.jpush.im.android.api.model.UserInfo;
  18. import cn.jpush.im.android.eventbus.EventBus;
  19. import cn.jpush.im.api.BasicCallback;
  20. import net.zoneland.x.bpm.mobile.v1.zoneXBPM.R;
  21. import net.zoneland.x.bpm.mobile.v1.zoneXBPM.R;
  22. import jiguang.chat.application.JGApplication;
  23. import jiguang.chat.entity.Event;
  24. import jiguang.chat.entity.EventType;
  25. import jiguang.chat.utils.DialogCreator;
  26. import jiguang.chat.utils.NativeImageLoader;
  27. import jiguang.chat.utils.SharePreferenceManager;
  28. /**
  29. * Created by ${chenyn} on 2017/3/21.
  30. */
  31. public class SearchFriendDetailActivity extends BaseActivity {
  32. private ImageView mIv_friendPhoto;
  33. private TextView mTv_nickName;
  34. private TextView mTv_additionalMsg;
  35. private TextView mTv_signature;
  36. private TextView mTv_gender;
  37. private TextView mTv_birthday;
  38. private TextView mTv_address;
  39. private Button mBtn_refusal;
  40. private Button mBtn_agree;
  41. private String mUsername;
  42. private String mAppKey;
  43. private UserInfo mToUserInfo;
  44. private String mAvatarPath;
  45. private String mDisplayName;
  46. private TextView mUserName;
  47. @Override
  48. protected void onCreate(Bundle savedInstanceState) {
  49. super.onCreate(savedInstanceState);
  50. setContentView(R.layout.activity_search_result_detail);
  51. initView();
  52. }
  53. private void initView() {
  54. initTitle(true, true, "详细资料", "", false, "");
  55. mIv_friendPhoto = (ImageView) findViewById(R.id.iv_friendPhoto);
  56. mTv_nickName = (TextView) findViewById(R.id.tv_nickName);
  57. mTv_additionalMsg = (TextView) findViewById(R.id.tv_additionalMsg);
  58. mTv_signature = (TextView) findViewById(R.id.tv_sign);
  59. mTv_gender = (TextView) findViewById(R.id.tv_gender);
  60. mTv_birthday = (TextView) findViewById(R.id.tv_birthday);
  61. mTv_address = (TextView) findViewById(R.id.tv_address);
  62. mBtn_refusal = (Button) findViewById(R.id.btn_refusal);
  63. mBtn_agree = (Button) findViewById(R.id.btn_agree);
  64. mUserName = (TextView) findViewById(R.id.tv_userName);
  65. initModel();
  66. }
  67. private void initModel() {
  68. final Dialog dialog = DialogCreator.createLoadingDialog(this, this.getString(R.string.jmui_loading));
  69. dialog.show();
  70. final Intent intent = getIntent();
  71. mUsername = intent.getStringExtra(JGApplication.TARGET_ID);
  72. mAppKey = intent.getStringExtra(JGApplication.TARGET_APP_KEY);
  73. JMessageClient.getUserInfo(mUsername, mAppKey, new GetUserInfoCallback() {
  74. @Override
  75. public void gotResult(int responseCode, String responseMessage, UserInfo info) {
  76. dialog.dismiss();
  77. if (responseCode == 0) {
  78. mToUserInfo = info;
  79. Bitmap bitmap = NativeImageLoader.getInstance().getBitmapFromMemCache(mUsername);
  80. if (bitmap != null) {
  81. mIv_friendPhoto.setImageBitmap(bitmap);
  82. } else if (!TextUtils.isEmpty(info.getAvatar())) {
  83. mAvatarPath = info.getAvatarFile().getPath();
  84. info.getAvatarBitmap(new GetAvatarBitmapCallback() {
  85. @Override
  86. public void gotResult(int responseCode, String responseMessage, Bitmap avatarBitmap) {
  87. if (responseCode == 0) {
  88. mIv_friendPhoto.setImageBitmap(avatarBitmap);
  89. NativeImageLoader.getInstance().updateBitmapFromCache(mUsername, avatarBitmap);
  90. } else {
  91. mIv_friendPhoto.setImageResource(R.drawable.rc_default_portrait);
  92. }
  93. }
  94. });
  95. } else {
  96. mIv_friendPhoto.setImageResource(R.drawable.rc_default_portrait);
  97. }
  98. mDisplayName = info.getNickname();
  99. if (TextUtils.isEmpty(mDisplayName)) {
  100. mDisplayName = info.getUserName();
  101. }
  102. mTv_nickName.setText(mDisplayName);
  103. if (info.getGender() == UserInfo.Gender.male) {
  104. mTv_gender.setText("男");
  105. } else if (info.getGender() == UserInfo.Gender.female) {
  106. mTv_gender.setText("女");
  107. } else {
  108. mTv_gender.setText("保密");
  109. }
  110. mTv_additionalMsg.setText("附加消息: " + intent.getStringExtra("reason"));
  111. mTv_signature.setText(info.getSignature());
  112. mUserName.setText(mUsername);
  113. long birthday = info.getBirthday();
  114. if (birthday == 0) {
  115. mTv_birthday.setText("");
  116. } else {
  117. Date date = new Date(birthday);
  118. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
  119. mTv_birthday.setText(dateFormat.format(date));
  120. }
  121. mTv_address.setText(info.getRegion());
  122. }
  123. }
  124. });
  125. final int position = intent.getIntExtra("position", -1);
  126. View.OnClickListener listener = new View.OnClickListener() {
  127. final Dialog dialog = DialogCreator.createLoadingDialog(SearchFriendDetailActivity.this, "正在加载");
  128. @Override
  129. public void onClick(View v) {
  130. switch (v.getId()) {
  131. case R.id.btn_refusal:
  132. //拒绝添加
  133. dialog.show();
  134. ContactManager.declineInvitation(mToUserInfo.getUserName(), mToUserInfo.getAppKey(), "拒绝了您的好友请求", new BasicCallback() {
  135. @Override
  136. public void gotResult(int responseCode, String responseMessage) {
  137. dialog.dismiss();
  138. if (responseCode == 0) {
  139. //拒绝时候要修改button数据库状态,并更新内存
  140. Intent btnIntent = new Intent();
  141. btnIntent.putExtra("position", position);
  142. btnIntent.putExtra("btn_state", 1);
  143. setResult(JGApplication.RESULT_BUTTON, btnIntent);
  144. finish();
  145. }
  146. }
  147. });
  148. break;
  149. case R.id.btn_agree:
  150. //同意添加
  151. dialog.show();
  152. ContactManager.acceptInvitation(mToUserInfo.getUserName(), mToUserInfo.getAppKey(), new BasicCallback() {
  153. @Override
  154. public void gotResult(int responseCode, String responseMessage) {
  155. dialog.dismiss();
  156. if (responseCode == 0) {
  157. Intent btnIntent2 = new Intent();
  158. btnIntent2.putExtra("position", position);
  159. btnIntent2.putExtra("btn_state", 2);
  160. setResult(JGApplication.RESULT_BUTTON, btnIntent2);
  161. EventBus.getDefault().post(new Event.Builder().setType(EventType.addFriend)
  162. .setFriendId(SharePreferenceManager.getItem()).build());
  163. finish();
  164. }
  165. }
  166. });
  167. break;
  168. default:
  169. break;
  170. }
  171. }
  172. };
  173. mBtn_agree.setOnClickListener(listener);
  174. mBtn_refusal.setOnClickListener(listener);
  175. }
  176. }