GroupNotFriendActivity.java 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. package jiguang.chat.activity;
  2. import android.app.Dialog;
  3. import android.content.Intent;
  4. import android.graphics.BitmapFactory;
  5. import android.os.Bundle;
  6. import android.text.TextUtils;
  7. import android.view.View;
  8. import android.widget.Button;
  9. import android.widget.ImageButton;
  10. import android.widget.ImageView;
  11. import android.widget.LinearLayout;
  12. import android.widget.RelativeLayout;
  13. import android.widget.TextView;
  14. import net.zoneland.x.bpm.mobile.v1.zoneXBPM.R;
  15. import java.io.File;
  16. import java.text.SimpleDateFormat;
  17. import java.util.Date;
  18. import cn.jpush.im.android.api.JMessageClient;
  19. import cn.jpush.im.android.api.callback.GetUserInfoCallback;
  20. import cn.jpush.im.android.api.model.Conversation;
  21. import cn.jpush.im.android.api.model.UserInfo;
  22. import cn.jpush.im.android.eventbus.EventBus;
  23. import jiguang.chat.application.JGApplication;
  24. import jiguang.chat.entity.Event;
  25. import jiguang.chat.entity.EventType;
  26. import jiguang.chat.utils.DialogCreator;
  27. import jiguang.chat.utils.ToastUtil;
  28. /**
  29. * Created by ${chenyn} on 2017/5/10.
  30. */
  31. public class GroupNotFriendActivity extends BaseActivity implements View.OnClickListener {
  32. private ImageView mIv_friendPhoto;
  33. private TextView mTv_noteName;
  34. private TextView mTv_sign;
  35. private TextView mTv_userName;
  36. private TextView mTv_gender;
  37. private TextView mTv_birthday;
  38. private TextView mTv_address;
  39. private Button mBtn_add_friend;
  40. private Button mBtn_send_message;
  41. private String mUserName;
  42. private UserInfo mUserInfo;
  43. private String mMyName;
  44. private RelativeLayout mRl_NickName;
  45. private TextView mTv_NickName;
  46. private String mNickName;
  47. private String mAvatarPath;
  48. private TextView mTv_additionalMsg;
  49. private LinearLayout mLl_additional;
  50. private ImageButton mReturnBtn;
  51. private ImageView mIvMore;
  52. @Override
  53. protected void onCreate(Bundle savedInstanceState) {
  54. super.onCreate(savedInstanceState);
  55. setContentView(R.layout.activity_group_not_friend);
  56. initView();
  57. initData();
  58. }
  59. private void initData() {
  60. final Dialog dialog = DialogCreator.createLoadingDialog(this, this.getString(R.string.jmui_loading));
  61. dialog.show();
  62. mUserName = getIntent().getStringExtra(JGApplication.TARGET_ID);
  63. String reason = getIntent().getStringExtra("reason");
  64. if (reason == null) {
  65. mLl_additional.setVisibility(View.GONE);
  66. } else {
  67. mLl_additional.setVisibility(View.VISIBLE);
  68. mTv_additionalMsg.setText("附加消息: " + reason);
  69. }
  70. JMessageClient.getUserInfo(mUserName, new GetUserInfoCallback() {
  71. @Override
  72. public void gotResult(int responseCode, String responseMessage, UserInfo info) {
  73. if (responseCode == 0) {
  74. mUserInfo = info;
  75. File avatar = info.getAvatarFile();
  76. if (avatar != null) {
  77. mAvatarPath = avatar.getAbsolutePath();
  78. mIv_friendPhoto.setImageBitmap(BitmapFactory.decodeFile(mAvatarPath));
  79. } else {
  80. mIv_friendPhoto.setImageResource(R.drawable.rc_default_portrait);
  81. }
  82. String noteName = info.getNotename();
  83. mNickName = info.getNickname();
  84. //有备注 有昵称
  85. mTv_userName.setText(mUserName);
  86. if (!TextUtils.isEmpty(noteName) && !TextUtils.isEmpty(mNickName)) {
  87. mRl_NickName.setVisibility(View.VISIBLE);
  88. mTv_NickName.setText(mNickName);
  89. mTv_noteName.setText("备注名: " + noteName);
  90. }
  91. //没有备注 有昵称
  92. else if (TextUtils.isEmpty(noteName) && !TextUtils.isEmpty(mNickName)) {
  93. mRl_NickName.setVisibility(View.GONE);
  94. mTv_noteName.setText("昵称: " + mNickName);
  95. }
  96. //有备注 没有昵称
  97. else if (!TextUtils.isEmpty(noteName) && TextUtils.isEmpty(mNickName)) {
  98. mRl_NickName.setVisibility(View.VISIBLE);
  99. mTv_NickName.setText(info.getNickname());
  100. mTv_noteName.setText("备注名: " + noteName);
  101. }
  102. //没有备注名 没有昵称
  103. else {
  104. mRl_NickName.setVisibility(View.GONE);
  105. mTv_noteName.setText("用户名: " + mUserName);
  106. }
  107. mTv_sign.setText(info.getSignature());
  108. if (info.getGender() == UserInfo.Gender.male) {
  109. mTv_gender.setText("男");
  110. } else if (info.getGender() == UserInfo.Gender.female) {
  111. mTv_gender.setText("女");
  112. } else {
  113. mTv_gender.setText("未知");
  114. }
  115. mTv_birthday.setText(getBirthday(info));
  116. mTv_address.setText(info.getRegion());
  117. }
  118. dialog.dismiss();
  119. }
  120. });
  121. UserInfo myInfo = JMessageClient.getMyInfo();
  122. mMyName = myInfo.getNickname();
  123. if (TextUtils.isEmpty(mMyName)) {
  124. mMyName = myInfo.getUserName();
  125. }
  126. }
  127. private void initView() {
  128. mReturnBtn = (ImageButton) findViewById(R.id.return_btn);
  129. mIvMore = (ImageView) findViewById(R.id.iv_more);
  130. mIv_friendPhoto = (ImageView) findViewById(R.id.iv_friendPhoto);
  131. mTv_noteName = (TextView) findViewById(R.id.tv_nickName);
  132. mTv_sign = (TextView) findViewById(R.id.tv_sign);
  133. mTv_userName = (TextView) findViewById(R.id.tv_userName);
  134. mTv_gender = (TextView) findViewById(R.id.tv_gender);
  135. mTv_birthday = (TextView) findViewById(R.id.tv_birthday);
  136. mTv_address = (TextView) findViewById(R.id.tv_address);
  137. mBtn_add_friend = (Button) findViewById(R.id.btn_add_friend);
  138. mBtn_send_message = (Button) findViewById(R.id.btn_send_message);
  139. mRl_NickName = (RelativeLayout) findViewById(R.id.rl_nickName);
  140. mTv_NickName = (TextView) findViewById(R.id.tv_nick);
  141. mTv_additionalMsg = (TextView) findViewById(R.id.tv_additionalMsg);
  142. mLl_additional = (LinearLayout) findViewById(R.id.ll_additional);
  143. mBtn_add_friend.setOnClickListener(this);
  144. mBtn_send_message.setOnClickListener(this);
  145. mReturnBtn.setOnClickListener(this);
  146. mIvMore.setOnClickListener(this);
  147. }
  148. public String getBirthday(UserInfo info) {
  149. long birthday = info.getBirthday();
  150. Date date = new Date(birthday);
  151. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
  152. return dateFormat.format(date);
  153. }
  154. @Override
  155. public void onClick(View v) {
  156. Intent intent = new Intent();
  157. switch (v.getId()) {
  158. case R.id.btn_add_friend:
  159. if (mUserInfo.isFriend()) {
  160. ToastUtil.shortToast(GroupNotFriendActivity.this, "对方已经是你的好友");
  161. } else {
  162. intent.setClass(GroupNotFriendActivity.this, VerificationActivity.class);
  163. //对方信息
  164. intent.putExtra("detail_add_friend", mUserName);
  165. intent.putExtra("detail_add_nick_name", mNickName);
  166. intent.putExtra("detail_add_avatar_path", mAvatarPath);
  167. //自己的昵称或者是用户名
  168. intent.putExtra("detail_add_friend_my_nickname", mMyName);
  169. intent.setFlags(1);
  170. startActivity(intent);
  171. }
  172. break;
  173. case R.id.btn_send_message:
  174. intent.setClass(GroupNotFriendActivity.this, ChatActivity.class);
  175. //创建会话
  176. intent.putExtra(JGApplication.TARGET_ID, mUserInfo.getUserName());
  177. intent.putExtra(JGApplication.TARGET_APP_KEY, mUserInfo.getAppKey());
  178. String notename = mUserInfo.getNotename();
  179. if (TextUtils.isEmpty(notename)) {
  180. notename = mUserInfo.getNickname();
  181. if (TextUtils.isEmpty(notename)) {
  182. notename = mUserInfo.getUserName();
  183. }
  184. }
  185. intent.putExtra(JGApplication.CONV_TITLE, notename);
  186. Conversation conv = JMessageClient.getSingleConversation(mUserInfo.getUserName(), mUserInfo.getAppKey());
  187. //如果会话为空,使用EventBus通知会话列表添加新会话
  188. if (conv == null) {
  189. conv = Conversation.createSingleConversation(mUserInfo.getUserName(), mUserInfo.getAppKey());
  190. EventBus.getDefault().post(new Event.Builder()
  191. .setType(EventType.createConversation)
  192. .setConversation(conv)
  193. .build());
  194. }
  195. startActivity(intent);
  196. break;
  197. case R.id.return_btn:
  198. finish();
  199. break;
  200. case R.id.iv_more:
  201. intent.setClass(GroupNotFriendActivity.this, NotFriendSettingActivity.class);
  202. intent.putExtra("notFriendUserName", mUserName);
  203. startActivity(intent);
  204. break;
  205. default:
  206. break;
  207. }
  208. }
  209. }