PageRenderTime 89ms CodeModel.GetById 13ms RepoModel.GetById 1ms app.codeStats 0ms

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

https://bitbucket.org/juzhiwiscom/datelove
Java | 224 lines | 182 code | 21 blank | 21 comment | 15 complexity | 15fe535a07faac65836c4a661f4e10cc MD5 | raw file
  1. package com.datelove.online.International.activity;
  2. import android.graphics.Color;
  3. import android.os.Handler;
  4. import android.support.v4.widget.SwipeRefreshLayout;
  5. import android.support.v7.widget.LinearLayoutManager;
  6. import android.text.TextUtils;
  7. import android.view.View;
  8. import android.widget.TextView;
  9. import com.alibaba.fastjson.JSON;
  10. import com.datelove.online.International.R;
  11. import com.datelove.online.International.adapter.MutualLikeAdapter;
  12. import com.datelove.online.International.base.BaseTitleActivity;
  13. import com.datelove.online.International.bean.PeiDuiBean;
  14. import com.datelove.online.International.constant.IUrlConstant;
  15. import com.datelove.online.International.event.MatchInfoChangeEvent;
  16. import com.datelove.online.International.utils.Utils;
  17. import com.datelove.online.International.xml.PlatformInfoXml;
  18. import com.library.adapter.recyclerview.CommonRecyclerViewAdapter;
  19. import com.library.adapter.recyclerview.RecyclerViewHolder;
  20. import com.library.utils.SharedPreferenceUtil;
  21. import com.library.utils.Util;
  22. import com.library.widgets.RefreshRecyclerView;
  23. import com.zhy.http.okhttp.OkHttpUtils;
  24. import com.zhy.http.okhttp.callback.Callback;
  25. import org.greenrobot.eventbus.EventBus;
  26. import org.greenrobot.eventbus.Subscribe;
  27. import java.util.List;
  28. import butterknife.BindView;
  29. import butterknife.Unbinder;
  30. import okhttp3.Call;
  31. import okhttp3.Response;
  32. /**
  33. * 匹配成功
  34. */
  35. public class MutualLikeActivity extends BaseTitleActivity {
  36. @BindView(R.id.search_recyclerview)
  37. RefreshRecyclerView mRefreshRecyclerView;
  38. @BindView(R.id.search_fail)
  39. TextView mTvSearchFail;
  40. // @BindView(R.id.listview)
  41. // ListView listview;
  42. Unbinder unbinder;
  43. private boolean fromMatch=false;
  44. @Override
  45. public void onResume() {
  46. super.onResume();
  47. System.out.println("wwwwwwwwSearchFragment");
  48. }
  49. private MutualLikeAdapter mSearchAdapter;
  50. private int pageNum = 1;
  51. private final String pageSize = "10";
  52. /**
  53. * 搜索随机因子,避免搜索重复
  54. */
  55. private String randomNum = "0";
  56. /**
  57. * 记录当前查看的用户处于列表中的索引
  58. */
  59. private int mCurrentPosition = -1;
  60. @Override
  61. protected int getLayoutResId() {
  62. return R.layout.fragment_search;
  63. }
  64. @Override
  65. protected String getCenterTitle() {
  66. return null;
  67. }
  68. @Override
  69. protected void initViewsAndVariables() {
  70. setTitle(getString(R.string.mutual_like));
  71. // 设置下拉刷新样式
  72. mRefreshRecyclerView.setColorSchemeResources(R.color.main_color);
  73. mRefreshRecyclerView.setProgressBackgroundColorSchemeColor(Color.WHITE);
  74. // 设置加载动画
  75. mRefreshRecyclerView.setLoadingView(Utils.getLoadingView(MutualLikeActivity.this));
  76. LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MutualLikeActivity.this);
  77. linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
  78. mRefreshRecyclerView.setLayoutManager(linearLayoutManager);
  79. mSearchAdapter = new MutualLikeAdapter(MutualLikeActivity.this, R.layout.item_fragment_search);
  80. mRefreshRecyclerView.setAdapter(mSearchAdapter);
  81. }
  82. @Override
  83. protected void addListeners() {
  84. /**加载读信拦截对话框**/
  85. final boolean isIntercept = SharedPreferenceUtil.getBooleanValue(Utils.getContext(), "INTERCEPT_DIALOG", "DIALOG", true);
  86. mIvRight.setOnClickListener(new View.OnClickListener() {
  87. @Override
  88. public void onClick(View v) {
  89. Util.gotoActivity(MutualLikeActivity.this, MatchInfoActivity.class, false);
  90. }
  91. });
  92. mTvSearchFail.setOnClickListener(new View.OnClickListener() {
  93. @Override
  94. public void onClick(View v) {
  95. Util.gotoActivity(MutualLikeActivity.this, MatchInfoActivity.class, false);
  96. }
  97. });
  98. // 下拉刷新
  99. mRefreshRecyclerView.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
  100. @Override
  101. public void onRefresh() {
  102. refresh();
  103. }
  104. });
  105. // 上拉加载更多
  106. mRefreshRecyclerView.setOnLoadingMoreListener(new RefreshRecyclerView.OnLoadingMoreListener() {
  107. @Override
  108. public void onLoadMore() {
  109. pageNum++;
  110. loadSearchData();
  111. }
  112. });
  113. mSearchAdapter.setOnItemClickListener(new CommonRecyclerViewAdapter.OnItemClickListener() {
  114. @Override
  115. public void onItemClick(View view, int position, RecyclerViewHolder viewHolder) {
  116. mCurrentPosition = position;
  117. PeiDuiBean.MatcherList matchUser = mSearchAdapter.getItemByPosition(position);
  118. if (matchUser != null) {
  119. matchUser.setIsRead(1);
  120. mSearchAdapter.updateItem(position,matchUser);
  121. ChatActivity.toChatActivity(MutualLikeActivity.this, matchUser.getUserBaseEnglish().getId(), matchUser.getUserBaseEnglish().getNickName(), matchUser.getUserBaseEnglish().getImage().imageUrl);
  122. }
  123. }
  124. });
  125. }
  126. private void refresh() {
  127. pageNum = 1;
  128. loadSearchData();
  129. }
  130. //
  131. private void loadSearchData() {
  132. OkHttpUtils.post()
  133. .url(IUrlConstant.URL_GET_MATCHER_LIST)
  134. .addParams("platformInfo", PlatformInfoXml.getPlatformJsonString())
  135. .addParams("pageNum", String.valueOf(pageNum))
  136. .addParams("pageSize", "15")
  137. .build()
  138. .execute(new Callback<PeiDuiBean>() {
  139. @Override
  140. public PeiDuiBean parseNetworkResponse(Response response, int id) throws Exception {
  141. String resultJson = response.body().string();
  142. if (!TextUtils.isEmpty(resultJson)) {
  143. return JSON.parseObject(resultJson, PeiDuiBean.class);
  144. }
  145. return null;
  146. }
  147. @Override
  148. public void onError(Call call, Exception e, int id) {
  149. }
  150. @Override
  151. public void onResponse(final PeiDuiBean response, int id) {
  152. if (response != null) {
  153. String isSucceed = response.getIsSucceed();
  154. if (!TextUtils.isEmpty(isSucceed) && "1".equals(isSucceed)) {
  155. final List<PeiDuiBean.MatcherList> matcherList = response.getMatcherList();
  156. if (Util.isListEmpty(matcherList)) {
  157. mTvSearchFail.setVisibility(View.VISIBLE);
  158. }
  159. // 延时1秒显示
  160. new Handler().postDelayed(new Runnable() {
  161. @Override
  162. public void run() {
  163. if (mSearchAdapter != null) {
  164. if (pageNum == 1) {
  165. mSearchAdapter.replaceAll(matcherList);
  166. }
  167. // else {
  168. // mSearchAdapter.appendToList(seeMeList);
  169. // }
  170. }
  171. }
  172. }, 1000);
  173. }
  174. } else {
  175. mTvSearchFail.setVisibility(View.VISIBLE);
  176. }
  177. stopRefresh(1);
  178. }
  179. });
  180. }
  181. private void stopRefresh(int secs) {
  182. if (mRefreshRecyclerView != null) {
  183. mRefreshRecyclerView.refreshCompleted(secs);
  184. mRefreshRecyclerView.loadMoreCompleted(secs);
  185. }
  186. dismissLoading();
  187. }
  188. @Override
  189. protected void doRegister() {
  190. super.doRegister();
  191. EventBus.getDefault().register(this);
  192. }
  193. @Override
  194. protected void unregister() {
  195. super.unregister();
  196. EventBus.getDefault().unregister(this);
  197. }
  198. @Subscribe
  199. public void onEvent(MatchInfoChangeEvent event) {
  200. showLoading();
  201. refresh();
  202. }
  203. }