PageRenderTime 26ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/dateLoveInternational/src/main/java/com/datelove/online/International/activity/UserInfoDetailActivity.java

https://bitbucket.org/juzhiwiscom/datelove
Java | 1785 lines | 1354 code | 129 blank | 302 comment | 230 complexity | 5524d910bc35f1cc0d0ef46ed1fd8128 MD5 | raw file
  1. package com.datelove.online.International.activity;
  2. import android.app.Activity;
  3. import android.app.Dialog;
  4. import android.content.BroadcastReceiver;
  5. import android.content.Context;
  6. import android.content.Intent;
  7. import android.content.IntentFilter;
  8. import android.graphics.Bitmap;
  9. import android.graphics.BitmapFactory;
  10. import android.graphics.Color;
  11. import android.os.AsyncTask;
  12. import android.os.Build;
  13. import android.os.Bundle;
  14. import android.os.Handler;
  15. import android.os.Message;
  16. import android.os.Vibrator;
  17. import android.support.design.widget.CollapsingToolbarLayout;
  18. import android.support.design.widget.FloatingActionButton;
  19. import android.support.v7.app.ActionBar;
  20. import android.support.v7.app.AppCompatActivity;
  21. import android.support.v7.widget.LinearLayoutManager;
  22. import android.support.v7.widget.Toolbar;
  23. import android.text.TextUtils;
  24. import android.util.Log;
  25. import android.view.Menu;
  26. import android.view.MenuItem;
  27. import android.view.View;
  28. import android.view.ViewTreeObserver;
  29. import android.view.WindowManager;
  30. import android.view.animation.Animation;
  31. import android.view.animation.AnimationUtils;
  32. import android.widget.AdapterView;
  33. import android.widget.Button;
  34. import android.widget.FrameLayout;
  35. import android.widget.ImageView;
  36. import android.widget.LinearLayout;
  37. import android.widget.RelativeLayout;
  38. import android.widget.TextView;
  39. import com.alibaba.fastjson.JSON;
  40. import com.alibaba.fastjson.JSONObject;
  41. import com.datelove.online.International.R;
  42. import com.datelove.online.International.bean.FateUser;
  43. import com.datelove.online.International.bean.HeadMsgNotice;
  44. import com.datelove.online.International.bean.Image;
  45. import com.datelove.online.International.bean.MsgBox;
  46. import com.datelove.online.International.bean.NewHeadMsgNotice;
  47. import com.datelove.online.International.bean.RecommendUser;
  48. import com.datelove.online.International.bean.SayHello;
  49. import com.datelove.online.International.bean.User;
  50. import com.datelove.online.International.bean.UserBase;
  51. import com.datelove.online.International.bean.UserDetail;
  52. import com.datelove.online.International.constant.CommonData;
  53. import com.datelove.online.International.constant.IConfigConstant;
  54. import com.datelove.online.International.constant.IUrlConstant;
  55. import com.datelove.online.International.dialog.ReportDialog;
  56. import com.datelove.online.International.event.HeadMsgEvent;
  57. import com.datelove.online.International.event.MessageChangedEvent;
  58. import com.datelove.online.International.event.SayHelloEvent;
  59. import com.datelove.online.International.event.UnlikeEvent;
  60. import com.datelove.online.International.event.UpdateCareEvent;
  61. import com.datelove.online.International.event.UpdateNextUser;
  62. import com.datelove.online.International.haoping.ActionSheetDialog;
  63. import com.datelove.online.International.haoping.OnOperItemClickL;
  64. import com.datelove.online.International.utils.Cheeses;
  65. import com.datelove.online.International.utils.CommonRequestUtil;
  66. import com.datelove.online.International.utils.FastBlurUtil;
  67. import com.datelove.online.International.utils.ParallaxListView;
  68. import com.datelove.online.International.utils.ParamsUtils;
  69. import com.datelove.online.International.utils.Utils;
  70. import com.datelove.online.International.xml.PlatformInfoXml;
  71. import com.datelove.online.International.xml.UserInfoXml;
  72. import com.library.adapter.recyclerview.CommonRecyclerViewAdapter;
  73. import com.library.adapter.recyclerview.RecyclerViewHolder;
  74. import com.library.imageloader.CircleTransformation;
  75. import com.library.imageloader.ImageLoader;
  76. import com.library.imageloader.ImageLoaderUtil;
  77. import com.library.utils.HeightUtils;
  78. import com.library.utils.LogUtil;
  79. import com.library.utils.SharedPreferenceUtil;
  80. import com.library.utils.ToastUtil;
  81. import com.library.utils.Util;
  82. import com.library.widgets.CircleImageView;
  83. import com.library.widgets.CollapsingTextView;
  84. import com.zhy.http.okhttp.OkHttpUtils;
  85. import com.zhy.http.okhttp.callback.Callback;
  86. import com.zhy.http.okhttp.callback.StringCallback;
  87. import org.greenrobot.eventbus.EventBus;
  88. import org.greenrobot.eventbus.Subscribe;
  89. import org.greenrobot.eventbus.ThreadMode;
  90. import java.io.IOException;
  91. import java.io.InputStream;
  92. import java.lang.ref.WeakReference;
  93. import java.net.HttpURLConnection;
  94. import java.net.MalformedURLException;
  95. import java.net.URL;
  96. import java.util.ArrayList;
  97. import java.util.HashMap;
  98. import java.util.List;
  99. import java.util.Map;
  100. import java.util.Random;
  101. import butterknife.BindView;
  102. import butterknife.ButterKnife;
  103. import butterknife.OnClick;
  104. import okhttp3.Call;
  105. import okhttp3.Response;
  106. /**
  107. * 用户详情页
  108. * Created by zhangdroid on 2016/10/22.
  109. */
  110. public class UserInfoDetailActivity extends AppCompatActivity {
  111. public static final String INTENT_KEY_UID = "intent_key_uId";
  112. public static final String INTENT_KEY_ISRECORD = "intent_key_isRecord";
  113. public static final String INTENT_KEY_SOURCETAG = "intent_key_sourceTag";
  114. /**
  115. * 缘分页面
  116. */
  117. public static final String SOURCE_FROM_FATE = "1";
  118. /**
  119. * 搜索页面
  120. */
  121. public static final String SOURCE_FROM_SEARCH = "2";
  122. /**
  123. * 聊天列表页面
  124. */
  125. public static final String SOURCE_FROM_CHAT_LIST = "3";
  126. /**
  127. * 聊天内容页面
  128. */
  129. public static final String SOURCE_FROM_CHAT_CONTENT = "4";
  130. /**
  131. * 附近页面
  132. */
  133. public static final String SOURCE_FROM_NEARBY = "5";
  134. /**
  135. * 谁看过我
  136. */
  137. public static final String SOURCE_FROM_SEEME = "6";
  138. /**
  139. * 关注
  140. */
  141. public static final String SOURCE_CARE = "7";
  142. /**
  143. * 頁眉
  144. */
  145. public static final String SOURCE_HEAD_MSG = "8";
  146. /**
  147. * 推荐用户
  148. */
  149. public static final String SOURCE_FROM_RECOMMEND_USER = "9";
  150. private static Integer bitmapNum;
  151. static List<Bitmap> getBitmapList = new ArrayList<Bitmap>();
  152. @BindView(R.id.userDetail_CollapsingToolbarLayout)
  153. CollapsingToolbarLayout mCollapsingToolbarLayout;
  154. @BindView(R.id.userDetail_toolbar)
  155. Toolbar mToolbar;
  156. // FAB 下一位用户
  157. @BindView(R.id.userDetail_fab_next)
  158. FloatingActionButton mFabNext;
  159. // 用户头像和照片墙
  160. @BindView(R.id.userDetail_avatar)
  161. ImageView mIvUserAvatar;
  162. @BindView(R.id.userDetail_pic_wall)
  163. ParallaxListView mPicRecyclerView;
  164. // 展示的基本信息
  165. @BindView(R.id.userDetail_base_info)
  166. TextView mTvBaseInfo;
  167. // 关注、打招呼和聊天
  168. @BindView(R.id.userDetail_un_like)
  169. Button mBtnFollow;
  170. @BindView(R.id.userDetail_sayHello)
  171. Button mBtnSayHello;
  172. @BindView(R.id.userDetail_chat)
  173. Button mBtnChat;
  174. // 内心独白
  175. @BindView(R.id.userDetail_monologue_ll)
  176. LinearLayout mLlMonologue;
  177. @BindView(R.id.userDetail_monologue)
  178. CollapsingTextView mMonologue;
  179. // 用户个人资料
  180. // 国家
  181. @BindView(R.id.userDetail_country_ll)
  182. LinearLayout mLlCountry;
  183. @BindView(R.id.userDetail_country)
  184. TextView mTvCountry;
  185. @BindView(R.id.userDetail_country_divider)
  186. View mCountryDivider;
  187. // 地区
  188. @BindView(R.id.userDetail_area_ll)
  189. LinearLayout mLlArea;
  190. @BindView(R.id.userDetail_area)
  191. TextView mTvArea;
  192. @BindView(R.id.userDetail_area_divider)
  193. View mAreaDivider;
  194. // 星座
  195. @BindView(R.id.userDetail_sign_ll)
  196. LinearLayout mLlSign;
  197. @BindView(R.id.userDetail_sign)
  198. TextView mTvSign;
  199. @BindView(R.id.userDetail_sign_divider)
  200. View mSignDivider;
  201. // 学历
  202. @BindView(R.id.userDetail_education_ll)
  203. LinearLayout mLlEducation;
  204. @BindView(R.id.userDetail_education)
  205. TextView mTvEducation;
  206. @BindView(R.id.userDetail_education_divider)
  207. View mEducationDivider;
  208. // 收入
  209. @BindView(R.id.userDetail_income_ll)
  210. LinearLayout mLlIncome;
  211. @BindView(R.id.userDetail_income)
  212. TextView mTvIncome;
  213. @BindView(R.id.userDetail_income_divider)
  214. View mIncomeDivider;
  215. // 职业
  216. @BindView(R.id.userDetail_occupation_ll)
  217. LinearLayout mLlOccupation;
  218. @BindView(R.id.userDetail_occupation)
  219. TextView mTvOccupation;
  220. @BindView(R.id.userDetail_occupation_divider)
  221. View mOccupationDivider;
  222. // 是否想要小孩
  223. @BindView(R.id.userDetail_wantBaby_ll)
  224. LinearLayout mLlWantBaby;
  225. @BindView(R.id.userDetail_wantBaby)
  226. TextView mTvWantBaby;
  227. @BindView(R.id.userDetail_want_baby_divider)
  228. View mWantBabyDivider;
  229. // 喜欢的运动
  230. @BindView(R.id.userDetail_sport_ll)
  231. LinearLayout mLlSport;
  232. @BindView(R.id.userDetail_sport)
  233. TextView mTvSport;
  234. @BindView(R.id.userDetail_sport_divider)
  235. View mSportDivider;
  236. // 喜欢的宠物
  237. @BindView(R.id.userDetail_pets_ll)
  238. LinearLayout mLlPets;
  239. @BindView(R.id.userDetail_pets)
  240. TextView mTvPets;
  241. @BindView(R.id.userDetail_pets_divider)
  242. View mPetsDivider;
  243. // 种族
  244. @BindView(R.id.userDetail_ethnicity_ll)
  245. LinearLayout mLlEthnicity;
  246. @BindView(R.id.userDetail_ethnicity)
  247. TextView mTvEthnicity;
  248. @BindView(R.id.userDetail_ethnicity_divider)
  249. View mEthnicityDivider;
  250. // 锻炼习惯
  251. @BindView(R.id.userDetail_exerciseHabits_ll)
  252. LinearLayout mLlExerciseHabits;
  253. @BindView(R.id.userDetail_exerciseHabits)
  254. TextView mTvExerciseHabits;
  255. @BindView(R.id.userDetail_exerciseHabits_divider)
  256. View mExerciseHabitsDivider;
  257. // 兴趣爱好
  258. @BindView(R.id.userDetail_hobby_ll)
  259. LinearLayout mLlHobby;
  260. @BindView(R.id.userDetail_hobby)
  261. TextView mTvHobby;
  262. @BindView(R.id.userDetail_hobby_divider)
  263. View mHobbyDivider;
  264. // 页眉
  265. @BindView(R.id.head_msg_container)
  266. RelativeLayout mRlHeadMsgContainer;
  267. @BindView(R.id.head_msg_content)
  268. TextView mTvHeadMsgContent;
  269. @BindView(R.id.head_msg_clear)
  270. ImageView mIvHeadMsgClear;
  271. // 新页眉
  272. @BindView(R.id.headMsg_container)
  273. FrameLayout mFlHeadMsgNew;
  274. @BindView(R.id.headMsg_unread)
  275. RelativeLayout mRlHeadMsgUnread;
  276. @BindView(R.id.headMsg_avatar)
  277. CircleImageView mIvHeadMsgAvatar;
  278. @BindView(R.id.headMsg_nickname)
  279. TextView mTvNickname;
  280. @BindView(R.id.headMsg_age)
  281. TextView mTvAge;
  282. @BindView(R.id.headMsg_height)
  283. TextView mTvHeight;
  284. @BindView(R.id.headMsg_content)
  285. TextView mTvMsgContent;
  286. @BindView(R.id.headMsg_check)
  287. TextView mTvMsgCheck;
  288. // 访客
  289. @BindView(R.id.headMsg_visitor)
  290. RelativeLayout mRlHeadMsgVisitor;
  291. @BindView(R.id.visitor_avatar)
  292. CircleImageView mIvVisitorAvatar;
  293. @BindView(R.id.visitor_content)
  294. TextView mTvVisitorContent;
  295. @BindView(R.id.visitor_ignore)
  296. TextView mTvVisitorIgnore;
  297. @BindView(R.id.visitor_look)
  298. TextView mTvVisitorLook;
  299. // 推荐用户
  300. @BindView(R.id.recommend_user_container)
  301. LinearLayout mLlRecommendUser;
  302. @BindView(R.id.recommend_user_avatar)
  303. CircleImageView mIvRecommendAvatar;
  304. @BindView(R.id.recommend_user_content)
  305. TextView mTvRecommendContent;
  306. @BindView(R.id.recommend_user_ignore)
  307. TextView mTvRecommendIgnore;
  308. @BindView(R.id.recommend_user_look)
  309. TextView mTvRecommendLook;
  310. // @BindView(R.id.iv_loading_heart)
  311. // ImageView ivLoadingHeart;
  312. @BindView(R.id.fl_loading)
  313. FloatingActionButton flLoading;
  314. // @BindView(R.id.tv_loading)
  315. // TextView tvLoading;
  316. @BindView(R.id.tv_introduce)
  317. TextView tvIntroduce;
  318. @BindView(R.id.rl_introduce)
  319. RelativeLayout rlIntroduce;
  320. @BindView(R.id.fl_bottom)
  321. FrameLayout mFlBootm;
  322. private String isRecord;
  323. private String sourceTag;
  324. private String uId;
  325. private String nickname;
  326. private String avatarUrl;
  327. private String country;
  328. /**
  329. * 进度加载对话框
  330. */
  331. private Dialog mLoadingDialog;
  332. private ImageWallAdapter mImageWallAdapter;
  333. private int mIsFollow=0;
  334. private int mIsSayHello=0;
  335. private int pageNum = 0;
  336. private final String pageSize = "1";
  337. private static final int HEAD_MSG_REFRESH_PERIOD = 20 * 1000;
  338. private static final int MSG_TYPE_LOAD_DATA = 1;
  339. private static final int MSG_TYPE_HEAD_MSG = 2;
  340. private static final int MSG_TYPE_HEAD_MSG_NEW = 3;
  341. private static final int MSG_TYPE_RECOMMEND_USER = 4;
  342. private static final int MSG_TYPE_SHOW_UNREAD_MSG = 5;
  343. private static final int MSG_TYPE_DISMISS_UNREAD_MSG = 6;
  344. private static final int MSG_TYPE_DISMISS_VISITOR = 7;
  345. private static final int MSG_TYPE_HIDE_RECOMMEND_USER = 8;
  346. private boolean mReceiverTag = false; //广播接受者标识
  347. /**
  348. * 页眉对象缓存
  349. */
  350. private HeadMsgNotice mHeadMsgNotice;
  351. /**
  352. * 新页眉对象缓存
  353. */
  354. private NewHeadMsgNotice mNewHeadMsgNotice;
  355. /**
  356. * 推荐用户对象缓存
  357. */
  358. private RecommendUser mRecommendUser;
  359. /**
  360. * 新页眉最后一条未读消息毫秒数
  361. */
  362. private long mLastMsgTime;
  363. /**
  364. * 推荐用户轮询周期(秒)
  365. */
  366. private int cycle;
  367. /**
  368. * 新页眉中当前正在显示的未读消息索引
  369. */
  370. private int mCurrDisplayItem = 0;
  371. private TimerHandler mTimerHandler;
  372. private Vibrator vibrator;
  373. boolean isShake = true;
  374. //用来判断是否第一次进入此类,如果是,就使用通过eventBus传过来的mCurrDisplayItem值
  375. private int count;
  376. private boolean isIntercept;
  377. private String getCountry=PlatformInfoXml.getPlatformInfo().getCountry().trim();
  378. private int isBlack=0;
  379. private User newUser;
  380. private class TimerHandler extends Handler {
  381. private WeakReference<UserInfoDetailActivity> mWeakReference;
  382. public TimerHandler(UserInfoDetailActivity userInfoDetailActivity) {
  383. this.mWeakReference = new WeakReference<UserInfoDetailActivity>(userInfoDetailActivity);
  384. }
  385. @Override
  386. public void handleMessage(Message msg) {
  387. if (null == this) { //走到了onDestory,则不再进行后续消息处理
  388. return;
  389. }
  390. if (UserInfoDetailActivity.this.isFinishing()) { //Activity正在停止,则不再后续处理
  391. return;
  392. }
  393. final UserInfoDetailActivity userInfoDetailActivity = mWeakReference.get();
  394. switch (msg.what) {
  395. case MSG_TYPE_LOAD_DATA:// 加载数据
  396. if (userInfoDetailActivity != null) {
  397. userInfoDetailActivity.loadData();
  398. }
  399. break;
  400. case MSG_TYPE_HEAD_MSG:// 页眉刷新
  401. // if (userInfoDetailActivity != null) {
  402. // userInfoDetailActivity.getHeadMsg();
  403. // }
  404. // sendEmptyMessageDelayed(MSG_TYPE_HEAD_MSG, HEAD_MSG_REFRESH_PERIOD);
  405. break;
  406. case MSG_TYPE_HEAD_MSG_NEW:// 新页眉刷新
  407. if (userInfoDetailActivity != null) {
  408. userInfoDetailActivity.getNewHeadMsg();
  409. }
  410. break;
  411. case MSG_TYPE_RECOMMEND_USER:// 推荐用户刷新
  412. int cycle = 0;
  413. if (userInfoDetailActivity != null) {
  414. userInfoDetailActivity.getRecommendUsr();
  415. cycle = userInfoDetailActivity.cycle;
  416. }
  417. // sendEmptyMessageDelayed(MSG_TYPE_RECOMMEND_USER, cycle < 20 ? HEAD_MSG_REFRESH_PERIOD : cycle * 1000);
  418. break;
  419. case MSG_TYPE_SHOW_UNREAD_MSG:// 显示未读消息页眉
  420. // 先隐藏上一条
  421. if (userInfoDetailActivity != null) {
  422. userInfoDetailActivity.dismissWithAnim(userInfoDetailActivity.mFlHeadMsgNew, userInfoDetailActivity.mRlHeadMsgUnread);
  423. userInfoDetailActivity.mFlHeadMsgNew.postDelayed(new Runnable() {
  424. @Override
  425. public void run() {
  426. // 如果存在下一条,则显示
  427. if (userInfoDetailActivity.mNewHeadMsgNotice != null && userInfoDetailActivity.mCurrDisplayItem < userInfoDetailActivity.mNewHeadMsgNotice.getUnreadMsgBoxList().size() - 1) {
  428. userInfoDetailActivity.mCurrDisplayItem++;
  429. userInfoDetailActivity.setNewHeadMsg();
  430. } else {// 继续轮询
  431. sendEmptyMessageDelayed(MSG_TYPE_HEAD_MSG_NEW, HEAD_MSG_REFRESH_PERIOD);
  432. }
  433. }
  434. }, 500);
  435. }
  436. break;
  437. case MSG_TYPE_DISMISS_UNREAD_MSG:// 隐藏未读消息页眉
  438. if (userInfoDetailActivity != null) {
  439. userInfoDetailActivity.dismissWithAnim(userInfoDetailActivity.mFlHeadMsgNew, userInfoDetailActivity.mRlHeadMsgUnread);
  440. }
  441. break;
  442. case MSG_TYPE_HIDE_RECOMMEND_USER://隐藏推荐用户页眉
  443. if (userInfoDetailActivity != null) {
  444. userInfoDetailActivity.dismissWithAnim(userInfoDetailActivity.mLlRecommendUser, userInfoDetailActivity.mLlRecommendUser);
  445. }
  446. sendEmptyMessageDelayed(MSG_TYPE_RECOMMEND_USER, HEAD_MSG_REFRESH_PERIOD);
  447. break;
  448. case MSG_TYPE_DISMISS_VISITOR:// 隐藏访客页眉
  449. if (userInfoDetailActivity != null) {
  450. userInfoDetailActivity.dismissWithAnim(userInfoDetailActivity.mFlHeadMsgNew, userInfoDetailActivity.mRlHeadMsgVisitor);
  451. }
  452. sendEmptyMessageDelayed(MSG_TYPE_HEAD_MSG_NEW, HEAD_MSG_REFRESH_PERIOD);
  453. break;
  454. }
  455. }
  456. }
  457. public static void toUserInfoDetailActivity(Activity from, String uId, String isRecord, String sourceTag) {
  458. Map<String, String> map = new HashMap<String, String>();
  459. map.put(INTENT_KEY_UID, uId);
  460. map.put(INTENT_KEY_ISRECORD, TextUtils.isEmpty(isRecord) ? "0" : isRecord);
  461. map.put(INTENT_KEY_SOURCETAG, sourceTag);
  462. Util.gotoActivity(from, UserInfoDetailActivity.class, false, map);
  463. }
  464. @Override
  465. protected void onCreate(Bundle savedInstanceState) {
  466. super.onCreate(savedInstanceState);
  467. EventBus.getDefault().register(this);
  468. setContentView(R.layout.activity_user_info);
  469. ButterKnife.bind(this);
  470. // 透明状态栏
  471. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {// 5.0及以上
  472. View decorView = getWindow().getDecorView();
  473. decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
  474. // 设置状态栏背景
  475. getWindow().setStatusBarColor(Color.TRANSPARENT);
  476. } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {// 4.4
  477. getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
  478. }
  479. setSupportActionBar(mToolbar);
  480. ActionBar actionBar = getSupportActionBar();
  481. if (actionBar != null) {
  482. actionBar.setDisplayShowHomeEnabled(true);
  483. }
  484. Intent intent = getIntent();
  485. if (intent != null) {
  486. uId = intent.getStringExtra(INTENT_KEY_UID);
  487. isRecord = intent.getStringExtra(INTENT_KEY_ISRECORD);
  488. sourceTag = intent.getStringExtra(INTENT_KEY_SOURCETAG);
  489. }
  490. // 初始化照片墙RecyclerView
  491. LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
  492. linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
  493. mPicRecyclerView.setLayoutManager(linearLayoutManager);
  494. mImageWallAdapter = new ImageWallAdapter(this, R.layout.item_pic_wall);
  495. mPicRecyclerView.setAdapter(mImageWallAdapter);
  496. // 已付费男用户和女用户显示聊天
  497. mBtnChat.setVisibility(View.GONE);
  498. if (UserInfoXml.isMale()) {
  499. if (UserInfoXml.isMonthly()) {
  500. mBtnFollow.setVisibility(View.GONE);
  501. mBtnSayHello.setVisibility(View.GONE);
  502. // mBtnChat.setVisibility(View.VISIBLE);
  503. } else {
  504. mBtnFollow.setVisibility(View.VISIBLE);
  505. mBtnSayHello.setVisibility(View.VISIBLE);
  506. // mBtnChat.setVisibility(View.GONE);
  507. }
  508. } else {
  509. mBtnFollow.setVisibility(View.GONE);
  510. mBtnSayHello.setVisibility(View.GONE);
  511. // mBtnChat.setVisibility(View.VISIBLE);
  512. }
  513. addListeners();
  514. // 加载用户详情
  515. showLoad();
  516. loadUserDetailInfo();
  517. // 延时加载数据
  518. mTimerHandler = new TimerHandler(this);
  519. mTimerHandler.sendEmptyMessageDelayed(MSG_TYPE_LOAD_DATA, 1000 * 3);
  520. //注册广播
  521. // registerReceiver(mHomeKeyEventReceiver, new IntentFilter(
  522. // Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
  523. if (!mReceiverTag){ //在注册广播接受者的时候 判断是否已被注册,避免重复多次注册广播
  524. IntentFilter mFileter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
  525. mReceiverTag = true; //标识值 赋值为 true 表示广播已被注册
  526. this.registerReceiver(mHomeKeyEventReceiver, mFileter);
  527. }
  528. // 当布局完成之后才能获取到控件高度
  529. mIvUserAvatar.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
  530. @Override
  531. public void onGlobalLayout() {
  532. mIvUserAvatar.getViewTreeObserver().removeGlobalOnLayoutListener(this);
  533. System.out.println("MainActivity.onGlobalLayout,");
  534. mPicRecyclerView.setParallaxImageView(mIvUserAvatar);// 设置要被视差效果处理的控件
  535. }
  536. });
  537. /**加载读信拦截对话框**/
  538. isIntercept = SharedPreferenceUtil.getBooleanValue(Utils.getContext(), "INTERCEPT_DIALOG", "DIALOG", true);
  539. if (CommonData.getCountryList().contains(PlatformInfoXml.getCountry())) {
  540. getSelfIntroduce();
  541. }
  542. }
  543. /**
  544. * 加载页眉和推荐用户
  545. */
  546. private void loadData() {
  547. // 获取页眉
  548. // if (UserInfoXml.isShowHeadMsg()) {
  549. // getHeadMsg();
  550. // mTimerHandler.sendEmptyMessageDelayed(MSG_TYPE_HEAD_MSG, HEAD_MSG_REFRESH_PERIOD);
  551. // }
  552. // 获取新页眉
  553. if (UserInfoXml.isShowHeadMsgNew()) {
  554. getNewHeadMsg();
  555. }
  556. // 获取推荐用户
  557. if (UserInfoXml.isShowRecommendUser()) {
  558. getRecommendUsr();
  559. // mTimerHandler.sendEmptyMessageDelayed(MSG_TYPE_RECOMMEND_USER, HEAD_MSG_REFRESH_PERIOD);
  560. }
  561. }
  562. private void getHeadMsg() {
  563. CommonRequestUtil.getHeadMsg(new CommonRequestUtil.OnGetHeadMsgListener() {
  564. @Override
  565. public void onSuccess(HeadMsgNotice headMsgNotice) {
  566. if (headMsgNotice != null) {
  567. mHeadMsgNotice = headMsgNotice;
  568. String message = headMsgNotice.getMessage();
  569. if (!TextUtils.isEmpty(message)) {
  570. mRlHeadMsgContainer.setVisibility(View.VISIBLE);
  571. mTvHeadMsgContent.setText(message);
  572. } else {
  573. mRlHeadMsgContainer.setVisibility(View.GONE);
  574. }
  575. String noticeType = headMsgNotice.getNoticeType();
  576. if (!TextUtils.isEmpty(noticeType) && "1".equals(noticeType)) {
  577. // 有未读消息时刷新消息列表
  578. EventBus.getDefault().post(new MessageChangedEvent());
  579. }
  580. }
  581. }
  582. @Override
  583. public void onFail() {
  584. }
  585. });
  586. }
  587. /**
  588. * 获取新页眉
  589. */
  590. private void getNewHeadMsg() {
  591. String lastMsgTime = new SharedPreferenceUtil(UserInfoDetailActivity.this).takeLastTime();
  592. if (!TextUtils.isEmpty(lastMsgTime)) {
  593. mLastMsgTime = Long.parseLong(lastMsgTime);
  594. }
  595. CommonRequestUtil.getNewHeadMsg(mLastMsgTime, new CommonRequestUtil.OnGetNewHeadMsgListener() {
  596. @Override
  597. public void onSuccess(NewHeadMsgNotice newHeadMsgNotice) {
  598. if (newHeadMsgNotice != null) {
  599. mNewHeadMsgNotice = newHeadMsgNotice;
  600. mLastMsgTime = newHeadMsgNotice.getLastMsgTime();
  601. //将时间戳保存下来
  602. new SharedPreferenceUtil(UserInfoDetailActivity.this).saveLastTime(mLastMsgTime);
  603. // if(i!=0){
  604. mCurrDisplayItem = 0;
  605. // }
  606. // i++;
  607. String noticeType = newHeadMsgNotice.getNoticeType();
  608. if (!TextUtils.isEmpty(noticeType)) {
  609. switch (noticeType) {
  610. case "0":// 没有页眉,继续轮询
  611. mTimerHandler.sendEmptyMessageDelayed(MSG_TYPE_HEAD_MSG_NEW, HEAD_MSG_REFRESH_PERIOD);
  612. break;
  613. case "1":// 未读消息
  614. // 刷新聊天列表
  615. EventBus.getDefault().post(new MessageChangedEvent());
  616. setNewHeadMsg();
  617. break;
  618. case "2":// 访客
  619. FateUser fateUser = newHeadMsgNotice.getRemoteYuanfenUserBase();
  620. if (fateUser != null) {
  621. UserBase userBase = fateUser.getUserBaseEnglish();
  622. if (userBase != null) {
  623. ImageLoaderUtil.getInstance().loadImage(UserInfoDetailActivity.this, new ImageLoader.Builder()
  624. .url(userBase.getImage().getThumbnailUrl()).imageView(mIvVisitorAvatar).build());
  625. mTvVisitorContent.setText(getString(R.string.visitor_tip, userBase.getNickName()));
  626. }
  627. }
  628. mRlHeadMsgUnread.setVisibility(View.GONE);
  629. mRlHeadMsgVisitor.setVisibility(View.VISIBLE);
  630. showWithAnim(mFlHeadMsgNew);
  631. mTimerHandler.sendEmptyMessageDelayed(MSG_TYPE_DISMISS_VISITOR, newHeadMsgNotice.getDisplaySecond() * 1000);
  632. break;
  633. }
  634. }
  635. }
  636. }
  637. @Override
  638. public void onFail() {
  639. mTimerHandler.sendEmptyMessageDelayed(MSG_TYPE_HEAD_MSG_NEW, HEAD_MSG_REFRESH_PERIOD);
  640. }
  641. });
  642. }
  643. /**
  644. * 按照未读消息列表顺序显示未读信
  645. */
  646. private void setNewHeadMsg() {
  647. if (mNewHeadMsgNotice != null) {
  648. List<MsgBox> msgBoxList = mNewHeadMsgNotice.getUnreadMsgBoxList();
  649. if (!Util.isListEmpty(msgBoxList) && mCurrDisplayItem < msgBoxList.size()) {
  650. MsgBox msgBox = msgBoxList.get(mCurrDisplayItem);
  651. if (msgBox != null) {
  652. UserBase userBase = msgBox.getUserBaseEnglish();
  653. if (userBase != null) {
  654. Image image = userBase.getImage();
  655. if (image != null) {
  656. ImageLoaderUtil.getInstance().loadImage(UserInfoDetailActivity.this, new ImageLoader.Builder()
  657. .url(image.getThumbnailUrl()).imageView(mIvHeadMsgAvatar).build());
  658. }
  659. mTvNickname.setText(userBase.getNickName());
  660. mTvAge.setText(TextUtils.concat(String.valueOf(userBase.getAge())));
  661. mTvAge.setSelected(userBase.getSex() == 0);
  662. if (userBase.getSex() == 0) {
  663. mTvAge.setBackgroundResource(R.drawable.shape_round_rectangle_blue_bg);
  664. } else {
  665. mTvAge.setBackgroundResource(R.drawable.shape_notification_age_women);
  666. }
  667. mTvHeight.setText(HeightUtils.getInchCmByCm(userBase.getHeightCm()));
  668. }
  669. String msgContent = msgBox.getMsg();
  670. if (!TextUtils.isEmpty(msgContent)) {
  671. // mTvMsgContent.setText(msgContent);
  672. mTvMsgContent.setText(getString(R.string.get_msg));
  673. }
  674. mRlHeadMsgUnread.setVisibility(View.VISIBLE);
  675. mRlHeadMsgVisitor.setVisibility(View.GONE);
  676. showWithAnim(mFlHeadMsgNew);
  677. }
  678. // 一段时间后显示下一条未读消息
  679. mTimerHandler.sendEmptyMessageDelayed(MSG_TYPE_SHOW_UNREAD_MSG, mNewHeadMsgNotice.getDisplaySecond() * 1000);
  680. }
  681. }
  682. }
  683. private void showWithAnim(View view) {
  684. if (isShake) {
  685. view.setVisibility(View.VISIBLE);
  686. vibrator = (Vibrator) getApplicationContext().getSystemService(Context.VIBRATOR_SERVICE);
  687. vibrator.vibrate(200);
  688. view.startAnimation(AnimationUtils.loadAnimation(UserInfoDetailActivity.this, R.anim.anim_in));
  689. }
  690. }
  691. private void dismissWithAnim(final View view, final View view2) {
  692. Animation outAnimation = AnimationUtils.loadAnimation(UserInfoDetailActivity.this, R.anim.anim_out);
  693. view.startAnimation(outAnimation);
  694. outAnimation.setAnimationListener(new Animation.AnimationListener() {
  695. @Override
  696. public void onAnimationStart(Animation animation) {
  697. }
  698. @Override
  699. public void onAnimationEnd(Animation animation) {
  700. view.setVisibility(View.GONE);
  701. view2.setVisibility(View.GONE);
  702. }
  703. @Override
  704. public void onAnimationRepeat(Animation animation) {
  705. }
  706. });
  707. }
  708. /**
  709. * 获取推荐用户
  710. */
  711. private void getRecommendUsr() {
  712. CommonRequestUtil.getRecommendUser(cycle, new CommonRequestUtil.OnGetRecommendUserListener() {
  713. @Override
  714. public void onSuccess(RecommendUser recommendUser) {
  715. if (recommendUser != null) {
  716. mRecommendUser = recommendUser;
  717. cycle = recommendUser.getCycle();
  718. User user = recommendUser.getUser();
  719. if (user != null) {
  720. UserBase userBase = user.getUserBaseEnglish();
  721. if (userBase != null) {
  722. // 显示推荐用户
  723. mLlRecommendUser.setVisibility(View.VISIBLE);
  724. mTvRecommendContent.setText(TextUtils.concat(userBase.getNickName(), " ", recommendUser.getSentence()));
  725. ImageLoaderUtil.getInstance().loadImage(UserInfoDetailActivity.this, new ImageLoader.Builder()
  726. .url(userBase.getImage().getThumbnailUrl()).imageView(mIvRecommendAvatar).build());
  727. showWithAnim(mLlRecommendUser);
  728. }
  729. }
  730. }
  731. // 一段时间后隐藏推荐用户
  732. mTimerHandler.sendEmptyMessageDelayed(MSG_TYPE_HIDE_RECOMMEND_USER, 5 * 1000);
  733. }
  734. @Override
  735. public void onFail() {
  736. // 一段时间后隐藏推荐用户
  737. mTimerHandler.sendEmptyMessageDelayed(MSG_TYPE_HIDE_RECOMMEND_USER, 5 * 1000);
  738. }
  739. });
  740. }
  741. @Override
  742. public boolean onCreateOptionsMenu(Menu menu) {
  743. getMenuInflater().inflate(R.menu.menu_tool_bar, menu);
  744. return true;
  745. }
  746. @Override
  747. public boolean onOptionsItemSelected(MenuItem item) {
  748. switch (item.getItemId()) {
  749. case R.id.menu_report:// 举报
  750. actionSheetDialogNoTitle();
  751. // ReportDialog.newInstance(getString(R.string.report_title) + nickname, uId).show(getSupportFragmentManager(), "report");
  752. break;
  753. }
  754. return super.onOptionsItemSelected(item);
  755. }
  756. private void addListeners() {
  757. // 左菜单点击事件处理
  758. mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
  759. @Override
  760. public void onClick(View v) {
  761. finish();
  762. }
  763. });
  764. // 点击查看图片大图
  765. // 延迟两秒钟显示,为了防止在mainActivity中多次快速点击时误入
  766. new Handler().postDelayed(new Runnable() {
  767. @Override
  768. public void run() {
  769. mIvUserAvatar.setOnClickListener(new View.OnClickListener() {
  770. @Override
  771. public void onClick(View v) {
  772. int size = getBitmapList.size();
  773. PictureBrowseActivity.toPictureBrowseActivity(UserInfoDetailActivity.this, 0, mImageWallAdapter.getAdapterData());
  774. }
  775. });
  776. }
  777. },2000);
  778. mImageWallAdapter.setOnItemClickListener(new CommonRecyclerViewAdapter.OnItemClickListener() {
  779. @Override
  780. public void onItemClick(View view, int position, RecyclerViewHolder viewHolder) {
  781. boolean interceptLock = SharedPreferenceUtil.getBooleanValue(Utils.getContext(), "INTERCEPT_DIALOG", "DIALOG", true);
  782. if (interceptLock && position!=0) {
  783. BuyServiceActivity.toBuyServiceActivity(UserInfoDetailActivity.this, BuyServiceActivity.INTENT_FROM_MONTH,
  784. IConfigConstant.PAY_TAG_FROM_DETAIL, IConfigConstant.PAY_WAY_MONTH);
  785. } else {
  786. PictureBrowseActivity.toPictureBrowseActivity(UserInfoDetailActivity.this, position, mImageWallAdapter.getAdapterData());
  787. }
  788. }
  789. });
  790. // 查看页眉消息
  791. mRlHeadMsgContainer.setOnClickListener(new View.OnClickListener() {
  792. @Override
  793. public void onClick(View v) {
  794. if (mHeadMsgNotice != null) {
  795. mRlHeadMsgContainer.setVisibility(View.GONE);
  796. String noticeType = mHeadMsgNotice.getNoticeType();
  797. if (!TextUtils.isEmpty(noticeType)) {
  798. switch (noticeType) {
  799. case "1": // 未读消息
  800. // 切换到聊天tab
  801. EventBus.getDefault().post(new HeadMsgEvent());
  802. new Handler().postDelayed(new Runnable() {
  803. @Override
  804. public void run() {
  805. finish();
  806. }
  807. }, 200);
  808. break;
  809. case "2":// 正在看我
  810. showLoad();
  811. uId = mHeadMsgNotice.getRemoteUserId();
  812. sourceTag = SOURCE_HEAD_MSG;
  813. loadUserDetailInfo();
  814. break;
  815. }
  816. }
  817. }
  818. }
  819. });
  820. mIvHeadMsgClear.setOnClickListener(new View.OnClickListener() {
  821. @Override
  822. public void onClick(View v) {
  823. mRlHeadMsgContainer.setVisibility(View.GONE);
  824. }
  825. });
  826. // 新页眉
  827. mRlHeadMsgUnread.setOnClickListener(new View.OnClickListener() {
  828. @Override
  829. public void onClick(View v) {
  830. // 查看未读消息,进入聊天页面
  831. mFlHeadMsgNew.setVisibility(View.GONE);
  832. if (mNewHeadMsgNotice != null && mCurrDisplayItem < mNewHeadMsgNotice.getUnreadMsgBoxList().size()) {
  833. List<MsgBox> msgBoxList = mNewHeadMsgNotice.getUnreadMsgBoxList();
  834. if (!Util.isListEmpty(msgBoxList)) {
  835. MsgBox msgBox = msgBoxList.get(mCurrDisplayItem);
  836. if (msgBox != null) {
  837. UserBase userBase = msgBox.getUserBaseEnglish();
  838. if (userBase != null) {
  839. ChatActivity.toChatActivity(UserInfoDetailActivity.this, userBase.getId(), userBase.getNickName(), userBase.getImage().getThumbnailUrl());
  840. finish();
  841. }
  842. }
  843. }
  844. }
  845. }
  846. });
  847. mTvVisitorLook.setOnClickListener(new View.OnClickListener() {
  848. @Override
  849. public void onClick(View v) {
  850. // 隐藏新页眉
  851. mRlHeadMsgVisitor.setVisibility(View.GONE);
  852. mFlHeadMsgNew.setVisibility(View.GONE);
  853. // 查看用户详情
  854. if (mNewHeadMsgNotice != null) {
  855. FateUser fateUser = mNewHeadMsgNotice.getRemoteYuanfenUserBase();
  856. if (fateUser != null) {
  857. UserBase userBase = fateUser.getUserBaseEnglish();
  858. if (userBase != null) {
  859. showLoad();
  860. uId = userBase.getId();
  861. sourceTag = SOURCE_HEAD_MSG;
  862. loadUserDetailInfo();
  863. }
  864. }
  865. }
  866. }
  867. });
  868. mTvVisitorIgnore.setOnClickListener(new View.OnClickListener() {
  869. @Override
  870. public void onClick(View v) {
  871. // 隐藏新页眉
  872. mRlHeadMsgVisitor.setVisibility(View.GONE);
  873. mFlHeadMsgNew.setVisibility(View.GONE);
  874. }
  875. });
  876. // 推荐用户
  877. mTvRecommendLook.setOnClickListener(new View.OnClickListener() {
  878. @Override
  879. public void onClick(View v) {
  880. if (mRecommendUser != null) {
  881. UserBase userBase = mRecommendUser.getUser().getUserBaseEnglish();
  882. if (userBase != null) {
  883. // 隐藏推荐用户
  884. mLlRecommendUser.setVisibility(View.GONE);
  885. Image image = userBase.getImage();
  886. if (UserInfoXml.isMale()) {
  887. if (UserInfoXml.isMonthly()) {// 已付费男用户进入聊天页
  888. ChatActivity.toChatActivity(UserInfoDetailActivity.this, userBase.getId(), userBase.getNickName(),
  889. image == null ? null : image.getThumbnailUrl());
  890. } else {// 未付费男用户,进入对方空间页
  891. showLoad();
  892. uId = userBase.getId();
  893. sourceTag = SOURCE_FROM_RECOMMEND_USER;
  894. loadUserDetailInfo();
  895. }
  896. } else {// 女用户进入聊天页
  897. ChatActivity.toChatActivity(UserInfoDetailActivity.this, userBase.getId(), userBase.getNickName(),
  898. image == null ? null : image.getThumbnailUrl());
  899. }
  900. }
  901. }
  902. }
  903. });
  904. mTvRecommendIgnore.setOnClickListener(new View.OnClickListener() {
  905. @Override
  906. public void onClick(View v) {
  907. // 隐藏推荐用户
  908. mLlRecommendUser.setVisibility(View.GONE);
  909. }
  910. });
  911. }
  912. /**
  913. * 显示加载对话框
  914. */
  915. // protected void showLoad() {
  916. // mLoadingDialog = Utils.showLoadDialog(this, true);
  917. // }
  918. private void showLoad() {
  919. // flLoading.setVisibility(View.GONE);
  920. // Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(UserInfoDetailActivity.this, R.anim.anim_show_loading);
  921. // flLoading.startAnimation(hyperspaceJumpAnimation);
  922. }
  923. /**
  924. * 隐藏加载对话框
  925. */
  926. // protected void dismissLoad() {
  927. // if (mLoadingDialog != null && mLoadingDialog.isShowing()) {
  928. // mLoadingDialog.dismiss();
  929. // }
  930. // }
  931. private void dismissLoad() {
  932. new Handler().postDelayed(new Runnable() {
  933. @Override
  934. public void run() {
  935. flLoading.setVisibility(View.GONE);
  936. // tvLoading.setVisibility(View.GONE);
  937. }
  938. }, 500);
  939. }
  940. @OnClick({R.id.userDetail_fab_next, R.id.userDetail_un_like, R.id.userDetail_sayHello, R.id.userDetail_chat})
  941. public void onClick(View view) {
  942. switch (view.getId()) {
  943. case R.id.userDetail_fab_next:// 下一位用户
  944. if(!(getCountry.equals(getString(R.string.united_states).trim()) || getCountry.equals("America"))){
  945. count++;
  946. if(count>=10 && isIntercept){
  947. // 弹出拦截对话框
  948. interceptDialog();
  949. }else {
  950. loadNextUser();
  951. }
  952. }else{
  953. loadNextUser();
  954. }
  955. /**加载读信拦截对话框**/
  956. isIntercept = SharedPreferenceUtil.getBooleanValue(Utils.getContext(), "INTERCEPT_DIALOG", "DIALOG", true);
  957. if (CommonData.getCountryList().contains(PlatformInfoXml.getCountry())) {
  958. getSelfIntroduce();
  959. }
  960. break;
  961. case R.id.userDetail_un_like:
  962. CommonRequestUtil.unLike(uId,new CommonRequestUtil.OnCommonListener() {
  963. @Override
  964. public void onSuccess() {
  965. }
  966. @Override
  967. public void onFail() {
  968. }
  969. });
  970. EventBus.getDefault().post(new UnlikeEvent());
  971. EventBus.getDefault().post(new UpdateNextUser(false));
  972. finish();
  973. // if (mIsFollow == 1) {// 取消关注
  974. // CommonRequestUtil.cancelFollow(uId, true, new CommonRequestUtil.OnCommonListener() {
  975. // @Override
  976. // public void onSuccess() {
  977. // mIsFollow = 0;
  978. // mBtnFollow.setSelected(false);
  979. // mBtnFollow.setText(getString(R.string.follow));
  980. //// 更新关注列表
  981. // EventBus.getDefault().post(new UpdateCareEvent());
  982. // }
  983. //
  984. // @Override
  985. // public void onFail() {
  986. //
  987. // }
  988. // });
  989. // } else {// 关注
  990. // CommonRequestUtil.follow(uId, true, new CommonRequestUtil.OnCommonListener() {
  991. // @Override
  992. // public void onSuccess() {
  993. // mIsFollow = 1;
  994. // mBtnFollow.setSelected(true);
  995. // mBtnFollow.setText(getString(R.string.cancel_follow));
  996. // EventBus.getDefault().post(new UpdateCareEvent());
  997. //
  998. // }
  999. //
  1000. // @Override
  1001. // public void onFail() {
  1002. //
  1003. // }
  1004. // });
  1005. // }
  1006. break;
  1007. case R.id.userDetail_sayHello:// 打招呼
  1008. if(mIsSayHello==1){
  1009. finish();
  1010. }else{
  1011. CommonRequestUtil.sayHello(this, uId, CommonRequestUtil.SAY_HELLO_TYPE_USER_INFO, true, new CommonRequestUtil.OnSayHelloListener() {
  1012. @Override
  1013. public void onSuccess(SayHello sayHello) {
  1014. if(sayHello.getIsSucceed().equals("1")){
  1015. ToastUtil.showShortToast(UserInfoDetailActivity.this, getString(R.string.sayHello_success));
  1016. // 发送事件,更新状态
  1017. EventBus.getDefault().post(new SayHelloEvent());
  1018. EventBus.getDefault().post(new UpdateNextUser(true));
  1019. }
  1020. mIsSayHello = 1;
  1021. mBtnSayHello.setSelected(true);
  1022. finish();
  1023. }
  1024. @Override
  1025. public void onFail() {
  1026. finish();
  1027. }
  1028. });
  1029. }
  1030. break;
  1031. case R.id.userDetail_chat:// 聊天
  1032. ChatActivity.toChatActivity(this, uId, nickname, avatarUrl);
  1033. break;
  1034. }
  1035. }
  1036. /**
  1037. * 设置用户信息
  1038. */
  1039. private void setUserInfo(User user) {
  1040. if (user != null) {
  1041. UserBase userBase = user.getUserBaseEnglish();
  1042. if (userBase != null) {
  1043. // 更新ID
  1044. uId = userBase.getId();
  1045. // 设置用户名为标题
  1046. nickname = userBase.getNickName();
  1047. if (!TextUtils.isEmpty(nickname)) {
  1048. mCollapsingToolbarLayout.setTitle(nickname);
  1049. }
  1050. // 设置头像
  1051. Image image = userBase.getImage();
  1052. if (image != null) {
  1053. String imgUrl = image.getImageUrl();
  1054. if (!TextUtils.isEmpty(imgUrl)) {
  1055. ImageLoaderUtil.getInstance().loadImage(UserInfoDetailActivity.this, new ImageLoader.Builder()
  1056. .url(imgUrl).imageView(mIvUserAvatar).build());
  1057. } else {
  1058. mIvUserAvatar.setImageResource(IConfigConstant.COMMON_DEFAULT_AVATAR);
  1059. }
  1060. } else {
  1061. mIvUserAvatar.setImageResource(IConfigConstant.COMMON_DEFAULT_AVATAR);
  1062. }
  1063. // 设置年龄,身高,婚姻状况为展示基本信息
  1064. StringBuilder stringBuilder = new StringBuilder();
  1065. int age = userBase.getAge();
  1066. if (age < 18) {
  1067. age = 18;
  1068. }
  1069. stringBuilder.append(age);
  1070. // .append(getString(R.string.years));
  1071. String heightCm = userBase.getHeightCm();
  1072. if (!TextUtils.isEmpty(heightCm)) {
  1073. stringBuilder.append(" | ")
  1074. .append(HeightUtils.getInchCmByCm(heightCm));
  1075. }
  1076. if(ParamsUtils.getMarriageMap()!=null){
  1077. String marriage = ParamsUtils.getMarriageMap().get(String.valueOf(userBase.getMaritalStatus()));
  1078. if (!TextUtils.isEmpty(marriage)) {
  1079. if (!TextUtils.isEmpty(heightCm)) {
  1080. stringBuilder.append(" | ");
  1081. }
  1082. stringBuilder.append(marriage);
  1083. }
  1084. }
  1085. mTvBaseInfo.setText(stringBuilder.toString());
  1086. // 国家
  1087. country = userBase.getCountry();
  1088. if ("America".equals(country)) {
  1089. country = "United States";
  1090. }
  1091. if (country.contains(" ")) {
  1092. country = country.replaceAll(" ", "");
  1093. }
  1094. for(int i = 0; i< Cheeses.EN_GOUNTRY.length; i++){
  1095. if(country.equals(Cheeses.EN_GOUNTRY[i])){
  1096. country=Cheeses.EN_GOUNTRY[i];
  1097. }
  1098. }
  1099. setTextInfo(mLlCountry, mTvCountry, mCountryDivider, country);
  1100. // 内心独白
  1101. String monologue = userBase.getMonologue();
  1102. if (!TextUtils.isEmpty(monologue)) {
  1103. if (CommonData.getCountryList().contains(country) || CommonData.getSpanishCountryList().contains(country)) {
  1104. mMonologue.setText(monologue);
  1105. mLlMonologue.setVisibility(View.VISIBLE);
  1106. }else{
  1107. mLlMonologue.setVisibility(View.GONE);
  1108. }
  1109. } else {
  1110. mLlMonologue.setVisibility(View.GONE);
  1111. }
  1112. // 地区
  1113. setTextInfo(mLlArea, mTvArea, mAreaDivider, userBase.getArea().getProvinceName());
  1114. // 星座
  1115. setTextInfo(mLlSign, mTvSign, mSignDivider, ParamsUtils.getConstellationMap().get(String.valueOf(userBase.getSign())));
  1116. // 学历
  1117. // setTextInfo(mLlEducation, mTvEducation, mEducationDivider, ParamsUtils.getEducationMap().get(String.valueOf(userBase.getEducation())));
  1118. // 收入
  1119. setTextInfo(mLlIncome, mTvIncome, mIncomeDivider, ParamsUtils.getIncomeMap().get(String.valueOf(userBase.getIncome())));
  1120. // 职业
  1121. setTextInfo(mLlOccupation, mTvOccupation, mOccupationDivider, ParamsUtils.getWorkMap().get(String.valueOf(userBase.getOccupation())));
  1122. }
  1123. // 设置照片墙
  1124. setUserPicWall(user.getListImage());
  1125. // 设置用户详细信息
  1126. setUserDetailInfo(user);
  1127. // 是否拉黑
  1128. isBlack = user.getIsBlackList();
  1129. // 设置关注和打招呼
  1130. mIsFollow = user.getIsFollow();
  1131. // 设置是否打过招呼
  1132. mIsSayHello=user.getIsSayHello();
  1133. if(mIsSayHello==1 || mIsSayHello==-1){//已打过招呼
  1134. mFlBootm.setVisibility(View.GONE);
  1135. mBtnFollow.setVisibility(View.GONE);
  1136. mBtnSayHello.setVisibility(View.GONE);
  1137. }else {
  1138. mFlBootm.setVisibility(View.VISIBLE);
  1139. mBtnFollow.setVisibility(View.VISIBLE);
  1140. mBtnSayHello.setVisibility(View.VISIBLE);
  1141. }
  1142. // if (mIsFollow == 1) {// 已关注
  1143. // mBtnFollow.setSelected(true);
  1144. // mBtnFollow.setText(getString(R.string.cancel_follow));
  1145. // } else {
  1146. // mBtnFollow.setSelected(false);
  1147. // mBtnFollow.setText(getString(R.string.follow));
  1148. // }
  1149. // mIsSayHello = user.getIsSayHello();
  1150. // if (mIsSayHello == 1) {// 已关注
  1151. // mBtnSayHello.setEnabled(false);
  1152. // mBtnSayHello.setSelected(true);
  1153. // Utils.setDrawableLeft(mBtnSayHello, R.drawable.icon_say_hello_gray);
  1154. // } else {
  1155. // mBtnSayHello.setEnabled(true);
  1156. // mBtnSayHello.setSelected(false);
  1157. // Utils.setDrawableLeft(mBtnSayHello, R.drawable.icon_say_hello);
  1158. // }
  1159. }
  1160. }
  1161. /**
  1162. * 设置用户照片墙
  1163. */
  1164. private void setUserPicWall(List<Image> imageList) {
  1165. if (!Util.isListEmpty(imageList) && mImageWallAdapter != null) {
  1166. mImageWallAdapter.replaceAll(imageList);
  1167. }
  1168. }
  1169. /**
  1170. * 设置用户详细资料
  1171. */
  1172. private void setUserDetailInfo(User user) {
  1173. // 是否想要小孩
  1174. setTextInfo(mLlWantBaby, mTvWantBaby, mWantBabyDivider, ParamsUtils.getWantBabyMap().get(String.valueOf(user.getWantsKids())));
  1175. // 喜欢的运动
  1176. setTextInfo(mLlSport, mTvSport, mSportDivider, getValue(user.getSports(), ParamsUtils.getSportMap()));
  1177. // 喜欢的宠物
  1178. if(!CommonData.getCountryList().contains(country)){
  1179. mLlPets.setVisibility(View.GONE);
  1180. }else{
  1181. setTextInfo(mLlPets, mTvPets, mPetsDivider, getValue(user.getPets(), ParamsUtils.getPetsMap()));
  1182. }
  1183. // 种族
  1184. setTextInfo(mLlEthnicity, mTvEthnicity, mEthnicityDivider, ParamsUtils.getEthnicityMap().get(user.getEthnicity()));
  1185. // 锻炼习惯
  1186. setTextInfo(mLlExerciseHabits, mTvExerciseHabits, mExerciseHabitsDivider, ParamsUtils.getExerciseHabitsMap().get(String.valueOf(user.getExerciseHabits())));
  1187. // 兴趣爱好
  1188. setTextInfo(mLlHobby, mTvHobby, mHobbyDivider, getValue(user.getListHobby(), ParamsUtils.getInterestMap()));
  1189. }
  1190. private void setTextInfo(LinearLayout llContainer, TextView tvInfo, View dividerView, String text) {
  1191. if (!TextUtils.isEmpty(text) && !"null".equals(text) && !"".equals(text)) {
  1192. tvInfo.setText(text);
  1193. llContainer.setVisibility(View.VISIBLE);
  1194. dividerView.setVisibility(View.VISIBLE);
  1195. } else {
  1196. llContainer.setVisibility(View.GONE);
  1197. dividerView.setVisibility(View.GONE);
  1198. }
  1199. }
  1200. private String getValue(String key, Map<String, String> map) {
  1201. if (key != null) {
  1202. String[] spit = key.split("\\|");
  1203. StringBuffer value = new StringBuffer();
  1204. for (int i = 0; i < spit.length; i++) {
  1205. if (i < spit.length - 1) {
  1206. value.append(map.get(spit[i]) + ",");
  1207. } else {
  1208. value.append(map.get(spit[i]));
  1209. }
  1210. }
  1211. return value.toString();
  1212. }
  1213. return null;
  1214. }
  1215. private class ImageWallAdapter extends CommonRecyclerViewAdapter<Image> {
  1216. public ImageWallAdapter(Context context, int layoutResId) {
  1217. this(context, layoutResId, null);
  1218. }
  1219. public ImageWallAdapter(Context context, int layoutResId, List<Image> list) {
  1220. super(context, layoutResId, list);
  1221. }
  1222. @Override
  1223. protected void convert(final int position, RecyclerViewHolder viewHolder, Image bean) {
  1224. final ImageView ivPic = (ImageView) viewHolder.getView(R.id.item_user_pic);
  1225. ImageView ivLock = (ImageView) viewHolder.getView(R.id.iv_small_lock);
  1226. final boolean interceptLock = SharedPreferenceUtil.getBooleanValue(Utils.getContext(), "INTERCEPT_DIALOG", "DIALOG", true);
  1227. if (interceptLock) {
  1228. if (position == 0) {
  1229. ivLock.setVisibility(View.GONE);
  1230. } else {
  1231. ivLock.setVisibility(View.VISIBLE);
  1232. }
  1233. } else {
  1234. ivLock.setVisibility(View.GONE);
  1235. }
  1236. if (bean != null) {
  1237. final String imgUrl = bean.getImageUrl();
  1238. if (!TextUtils.isEmpty(imgUrl)) {
  1239. ImageLoaderUtil.getInstance().loadImage(mContext, new ImageLoader.Builder()
  1240. .url(imgUrl).placeHolder(IConfigConstant.COMMON_DEFAULT_AVATAR_CIRCLE).transform(new CircleTransformation()).imageView(ivPic).build(), new ImageLoaderUtil.OnImageLoadListener() {
  1241. @Override
  1242. public void onCompleted() {
  1243. if (position != 0 && interceptLock) {
  1244. returnBitmap(imgUrl, ivPic);
  1245. }
  1246. }
  1247. @Override
  1248. public void onFailed() {
  1249. }
  1250. });
  1251. } else {
  1252. ivPic.setImageResource(IConfigConstant.COMMON_DEFAULT_AVATAR_CIRCLE);
  1253. // if(position!=0 && interceptLock){
  1254. // returnBitmap(imgUrl, ivPic);
  1255. // }
  1256. }
  1257. } else {
  1258. ivPic.setImageResource(IConfigConstant.COMMON_DEFAULT_AVATAR_CIRCLE);
  1259. }
  1260. }
  1261. }
  1262. private void loadUserDetailInfo() {
  1263. OkHttpUtils.post()
  1264. .url(IUrlConstant.URL_GET_USER_INFO)
  1265. .addHeader("token", PlatformInfoXml.getToken())
  1266. .addParams("platformInfo", PlatformInfoXml.getPlatformJsonString())
  1267. .addParams("uid", TextUtils.isEmpty(uId) ? "" : uId)
  1268. .addParams("isRecord", TextUtils.isEmpty(isRecord) ? "0" : isRecord)
  1269. .addParams("sourceTag", TextUtils.isEmpty(sourceTag) ? "1" : sourceTag)
  1270. .build()
  1271. .execute(new Callback<UserDetail>() {
  1272. @Override
  1273. public UserDetail parseNetworkResponse(Response response, int id) throws Exception {
  1274. String resultJson = response.body().string();
  1275. if (!TextUtils.isEmpty(resultJson)) {
  1276. return JSON.parseObject(resultJson, UserDetail.class);
  1277. }
  1278. return null;
  1279. }
  1280. @Override
  1281. public void onError(Call call, Exception e, int id) {
  1282. stopRefresh(3);
  1283. }
  1284. @Override
  1285. public void onResponse(UserDetail response, int id) {
  1286. if (response != null) {
  1287. String isSucceed = response.getIsSucceed();
  1288. if (!TextUtils.isEmpty(isSucceed) && "1".equals(isSucceed)) {
  1289. newUser = response.getUserEnglish();
  1290. setUserInfo(response.getUserEnglish());
  1291. }
  1292. }
  1293. stopRefresh(1);
  1294. }
  1295. });
  1296. }
  1297. private void loadNextUser() {
  1298. showLoad();
  1299. pageNum++;
  1300. OkHttpUtils.post()
  1301. .url(IUrlConstant.URL_NEXT_USER)
  1302. .addHeader("token", PlatformInfoXml.getToken())
  1303. .addParams("platformInfo", PlatformInfoXml.getPlatformJsonString())
  1304. .addParams("pageNum", String.valueOf(pageNum))
  1305. .addParams("pageSize", pageSize)
  1306. .build()
  1307. .execute(new StringCallback() {
  1308. @Override
  1309. public void onError(Call call, Exception e, int id) {
  1310. stopRefresh(3);
  1311. }
  1312. @Override
  1313. public void onResponse(String response, int id) {
  1314. if (!TextUtils.isEmpty(response)) {
  1315. JSONObject jsonObject = (JSONObject) JSON.parse(response);
  1316. String listUser = jsonObject.getString("listUser");
  1317. if (!TextUtils.isEmpty(listUser)) {
  1318. List<User> userList = JSON.parseArray(listUser, User.class);
  1319. if (!Util.isListEmpty(userList)) {
  1320. setUserInfo(userList.get(0));
  1321. } else {
  1322. loadNextUser();
  1323. }
  1324. } else {
  1325. loadNextUser();
  1326. }
  1327. } else {
  1328. loadNextUser();
  1329. }
  1330. stopRefresh(1);
  1331. }
  1332. });
  1333. }
  1334. private void stopRefresh(int seconds) {
  1335. new Handler().postDelayed(new Runnable() {
  1336. @Override
  1337. public void run() {
  1338. dismissLoad();
  1339. }
  1340. }, seconds * 1000);
  1341. }
  1342. //自定义弹出对话框
  1343. private void actionSheetDialogNoTitle() {
  1344. final ActionSheetDialog dialog;
  1345. String praised = mIsFollow==1 ? getString(R.string.cancel_follow) : getString(R.string.follow);
  1346. if (isBlack == 1) {
  1347. final String[] stringItems2 = {praised, getString(R.string.profile_quxiaolahei), getString(R.string.profile_jubo)};
  1348. dialog = new ActionSheetDialog(UserInfoDetailActivity.this, stringItems2, null);
  1349. } else {
  1350. final String[] stringItems1 = {praised, getString(R.string.profile_lahei), getString(R.string.profile_jubo)};
  1351. dialog = new ActionSheetDialog(UserInfoDetailActivity.this, stringItems1, null);
  1352. }
  1353. dialog.isTitleShow(false).show();
  1354. dialog.setOnOperItemClickL(new OnOperItemClickL() {
  1355. @Override
  1356. public void onOperItemClick(AdapterView<?> parent, View view, int position, long id) {
  1357. switch (position) {
  1358. case 0:
  1359. setFollow();
  1360. break;
  1361. case 1:
  1362. setBlack();
  1363. break;
  1364. case 2:
  1365. ReportDialog.newInstance(getString(R.string.report_title) + nickname, uId).show(getSupportFragmentManager(), "report");
  1366. break;
  1367. }
  1368. dialog.dismiss();
  1369. }
  1370. });
  1371. }
  1372. //是否关注
  1373. private void setFollow() {
  1374. if (mIsFollow == 1) {// 取消关注
  1375. CommonRequestUtil.cancelFollow(uId, true, new CommonRequestUtil.OnCommonListener() {
  1376. @Override
  1377. public void onSuccess() {
  1378. mIsFollow = 0;
  1379. // 更新关注列表
  1380. EventBus.getDefault().post(new UpdateCareEvent());
  1381. }
  1382. @Override
  1383. public void onFail() {
  1384. }
  1385. });
  1386. } else {// 关注
  1387. CommonRequestUtil.follow(uId, true, new CommonRequestUtil.OnCommonListener() {
  1388. @Override
  1389. public void onSuccess() {
  1390. mIsFollow = 1;
  1391. EventBus.getDefault().post(new UpdateCareEvent());
  1392. }
  1393. @Override
  1394. public void onFail() {
  1395. }
  1396. });
  1397. }
  1398. }
  1399. /**
  1400. * 是否拉黑
  1401. **/
  1402. public void setBlack(){
  1403. if(isBlack==0){
  1404. CommonRequestUtil.pull2Black(uId, true, new CommonRequestUtil.OnCommonListener() {
  1405. @Override
  1406. public void onSuccess() {
  1407. isBlack = 1;
  1408. }
  1409. @Override
  1410. public void onFail() {
  1411. }
  1412. });
  1413. }else{
  1414. CommonRequestUtil.cancelPull2Black(uId, true, new CommonRequestUtil.OnCommonListener() {
  1415. @Override
  1416. public void onSuccess() {
  1417. isBlack = 0;
  1418. }
  1419. @Override
  1420. public void onFail() {
  1421. }
  1422. });
  1423. }
  1424. }
  1425. /**
  1426. * 毛玻璃效果
  1427. **/
  1428. public void dimBitmao(ImageView imageView, Bitmap originBitmap) {
  1429. int scaleRatio = 7;
  1430. int blurRadius = 8;
  1431. Bitmap scaledBitmap = Bitmap.createScaledBitmap(originBitmap,
  1432. originBitmap.getWidth() / scaleRatio,
  1433. originBitmap.getHeight() / scaleRatio,
  1434. false);
  1435. Bitmap blurBitmap = FastBlurUtil.doBlur1(scaledBitmap, blurRadius, true);
  1436. // Bitmap bitmap = CircleTransformation.transform1(blurBitmap);
  1437. imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
  1438. imageView.setImageResource(IConfigConstant.COMMON_DEFAULT_AVATAR_CIRCLE);
  1439. imageView.setImageBitmap(blurBitmap);
  1440. // Log.v("=============imageView=",imageView.toString());
  1441. // ImageLoaderUtil.getInstance().loadImage(this, new ImageLoader.Builder()
  1442. // .url(imgUrl).placeHolder(IConfigConstant.COMMON_DEFAULT_AVATAR_CIRCLE)
  1443. // .transform(new CircleTransformation()).imageView(ivPic).build());
  1444. }
  1445. /**
  1446. * 根据图片的url路径获得Bitmap对象
  1447. *
  1448. * @param url
  1449. * @return
  1450. */
  1451. public void returnBitmap(final String url, final ImageView photoView) {
  1452. AsyncTask task = new AsyncTask() {
  1453. @Override
  1454. protected Object doInBackground(Object[] objects) {
  1455. URL fileUrl = null;
  1456. Bitmap bitmap = null;
  1457. try {
  1458. fileUrl = new URL(url);
  1459. } catch (MalformedURLException e) {
  1460. e.printStackTrace();
  1461. }
  1462. try {
  1463. HttpURLConnection conn = (HttpURLConnection) fileUrl
  1464. .openConnection();
  1465. conn.setDoInput(true);
  1466. conn.connect();
  1467. InputStream is = conn.getInputStream();
  1468. bitmap = BitmapFactory.decodeStream(is);
  1469. is.close();
  1470. } catch (IOException e) {
  1471. e.printStackTrace();
  1472. }
  1473. return bitmap;
  1474. }
  1475. @Override
  1476. protected void onPostExecute(Object o) {
  1477. super.onPostExecute(o);
  1478. Bitmap bitmap = (Bitmap) o;
  1479. if (bitmap != null) {
  1480. getBitmapList.add(bitmap);
  1481. dimBitmao(photoView, bitmap);
  1482. // Log.v("===========bitmap=",bitmap.toString());
  1483. } else {
  1484. // Log.d("============","bitmap===null");
  1485. }
  1486. }
  1487. }.execute();
  1488. }
  1489. public void interceptDialog() {
  1490. final String[] stringItems = {getString(R.string.buy_vip), getString(R.string.buy_vip_service)};
  1491. final ActionSheetDialog dialog = new ActionSheetDialog(UserInfoDetailActivity.this, stringItems, mIvUserAvatar);
  1492. if(!dialog.isShowing()){
  1493. dialog.isTitleShow(false).show();
  1494. dialog.setCanceledOnTouchOutside(false);
  1495. dialog.setOnOperItemClickL(new OnOperItemClickL() {
  1496. @Override
  1497. public void onOperItemClick(AdapterView<?> parent, View view, int position, long id) {
  1498. if (position == 1 || position == 0) {
  1499. // 展示十个用户,之后跳转到付费界面
  1500. BuyServiceActivity.toBuyServiceActivity(UserInfoDetailActivity.this, BuyServiceActivity.INTENT_FROM_INTERCEPT,
  1501. IConfigConstant.PAY_TAG_FROM_CHAT, IConfigConstant.PAY_WAY_ALL);
  1502. }
  1503. dialog.dismiss();
  1504. }
  1505. });
  1506. }
  1507. }
  1508. private void getSelfIntroduce() {
  1509. // int answer_1 = SharedPreferenceUtil.getIntValue(UserInfoDetailActivity.this, "QUESTION", "answer_1", 0);
  1510. // int answer_2 = SharedPreferenceUtil.getIntValue(UserInfoDetailActivity.this, "QUESTION", "answer_2", 0);
  1511. // int answer_3 = SharedPreferenceUtil.getIntValue(UserInfoDetailActivity.this, "QUESTION", "answer_3", 0);
  1512. // int answer_4 = SharedPreferenceUtil.getIntValue(UserInfoDetailActivity.this, "QUESTION", "answer_4", 0);
  1513. // int answer_5 = SharedPreferenceUtil.getIntValue(UserInfoDetailActivity.this, "QUESTION", "answer_5", 0);
  1514. Random rand = new Random();
  1515. int answer_1 = rand.nextInt(3);
  1516. int answer_2 = rand.nextInt(3);
  1517. int answer_3 = rand.nextInt(3);
  1518. int answer_4 = rand.nextInt(3);
  1519. int answer_5 = rand.nextInt(4);
  1520. String answer1;
  1521. String answer2;
  1522. String answer3;
  1523. String answer4;
  1524. String answer5;
  1525. String answer6;
  1526. if (answer_1 == 0) {
  1527. answer1 = getString(R.string.result1_a);
  1528. } else if (answer_1 == 1) {
  1529. answer1 = getString(R.string.result1_b);
  1530. } else {
  1531. answer1 = getString(R.string.result1_c);
  1532. }
  1533. if (answer_2 == 0) {
  1534. answer2 = getString(R.string.result2_a);
  1535. } else if (answer_2 == 1) {
  1536. answer2 = getString(R.string.result2_b);
  1537. } else {
  1538. answer2 = "";
  1539. }
  1540. if (answer_3 == 0) {
  1541. answer3 = getString(R.string.result3_a);
  1542. } else if (answer_3 == 1) {
  1543. answer3 = getString(R.string.result3_b);
  1544. } else {
  1545. answer3 = "";
  1546. }
  1547. if (answer_4 == 0) {
  1548. answer4 = getString(R.string.result4_a);
  1549. } else if (answer_4 == 1) {
  1550. answer4 = getString(R.string.result4_b);
  1551. } else {
  1552. answer4 = getString(R.string.result4_c);
  1553. }
  1554. if (answer_5 == 0) {
  1555. answer5 = getString(R.string.result5_a);
  1556. } else if (answer_5 == 1) {
  1557. answer5 = getString(R.string.result5_b);
  1558. } else if (answer_5 == 2) {
  1559. answer5 = getString(R.string.result5_c);
  1560. } else {
  1561. answer5 = getString(R.string.result5_d);
  1562. }
  1563. answer6 = getString(R.string.result);
  1564. // if(answer_1 == 1 && answer_2 == 1 && answer_3 == 1 && answer_4 == 1 && answer_5 == 1){
  1565. // rlIntroduce.setVisibility(View.GONE);
  1566. // }else{
  1567. rlIntroduce.setVisibility(View.GONE);
  1568. // tvIntroduce.setText(answer1 + answer2 + answer3 + answer4 + answer5 + answer6);
  1569. // }
  1570. }
  1571. @Override
  1572. protected void onStart() {
  1573. super.onStart();
  1574. isShake = true;
  1575. }
  1576. //
  1577. @Override
  1578. protected void onPause() {
  1579. super.onPause();
  1580. // isShake=false;
  1581. }
  1582. @Override
  1583. protected void onStop() {
  1584. super.onStop();
  1585. isShake = false;
  1586. }
  1587. @Override
  1588. protected void onRestart() {
  1589. super.onRestart();
  1590. isShake = true;
  1591. mTimerHandler.sendEmptyMessageDelayed(MSG_TYPE_LOAD_DATA, 1000 * 3);
  1592. }
  1593. @Override
  1594. protected void onDestroy() {
  1595. super.onDestroy();
  1596. // 删除广播注册
  1597. if (mReceiverTag) { //判断广播是否注册
  1598. mReceiverTag = false; //Tag值 赋值为false 表示该广播已被注销
  1599. this.unregisterReceiver(mHomeKeyEventReceiver); //注销广播
  1600. }
  1601. mTimerHandler.removeMessages(MSG_TYPE_HEAD_MSG);
  1602. mTimerHandler.removeMessages(MSG_TYPE_HEAD_MSG_NEW);
  1603. mTimerHandler.removeMessages(MSG_TYPE_RECOMMEND_USER);
  1604. mTimerHandler.removeMessages(MSG_TYPE_HIDE_RECOMMEND_USER);
  1605. mTimerHandler.removeMessages(MSG_TYPE_SHOW_UNREAD_MSG);
  1606. mTimerHandler.removeMessages(MSG_TYPE_DISMISS_UNREAD_MSG);
  1607. mTimerHandler.removeMessages(MSG_TYPE_DISMISS_VISITOR);
  1608. EventBus.getDefault().unregister(this);
  1609. }
  1610. /**
  1611. * 监听是否点击了home键将客户端推到后台
  1612. */
  1613. private BroadcastReceiver mHomeKeyEventReceiver = new BroadcastReceiver() {
  1614. String SYSTEM_REASON = "reason";
  1615. String SYSTEM_HOME_KEY = "homekey";
  1616. String SYSTEM_HOME_KEY_LONG = "recentapps";
  1617. @Override
  1618. public void onReceive(Context context, Intent intent) {
  1619. String action = intent.getAction();
  1620. if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
  1621. String reason = intent.getStringExtra(SYSTEM_REASON);
  1622. if (TextUtils.equals(reason, SYSTEM_HOME_KEY)) {
  1623. //表示按了home键,程序到了后台
  1624. isShake = false;
  1625. mTimerHandler.removeMessages(MSG_TYPE_HEAD_MSG);
  1626. mTimerHandler.removeMessages(MSG_TYPE_HEAD_MSG_NEW);
  1627. mTimerHandler.removeMessages(MSG_TYPE_RECOMMEND_USER);
  1628. mTimerHandler.removeMessages(MSG_TYPE_HIDE_RECOMMEND_USER);
  1629. mTimerHandler.removeMessages(MSG_TYPE_SHOW_UNREAD_MSG);
  1630. mTimerHandler.removeMessages(MSG_TYPE_DISMISS_UNREAD_MSG);
  1631. mTimerHandler.removeMessages(MSG_TYPE_DISMISS_VISITOR);
  1632. } else if (TextUtils.equals(reason, SYSTEM_HOME_KEY_LONG)) {
  1633. //表示长按home键,显示最近使用的程序列表
  1634. }
  1635. }
  1636. }
  1637. };
  1638. //
  1639. // @Subscribe
  1640. // public void onEvent(YeMeiIntoUserInfoDetailEvent event) {
  1641. // mCurrDisplayItem=event.getUnreadMsgCount();
  1642. //
  1643. // }
  1644. @Subscribe(threadMode = ThreadMode.MAIN)
  1645. public void onEvent(Message msg) {
  1646. // if (msg.what == 3333) {
  1647. // mCurrDisplayItem= (int) msg.obj;
  1648. // }
  1649. }
  1650. @Subscribe(threadMode = ThreadMode.MAIN)
  1651. public void onEvent(SayHelloEvent event) {
  1652. Log.v("setIsSayHello","UserInfo===");
  1653. mIsSayHello = 1;
  1654. mBtnSayHello.setSelected(true);
  1655. }
  1656. }