|
|
@@ -9,6 +9,7 @@ import android.content.ServiceConnection;
|
|
|
import android.os.Bundle;
|
|
|
import android.os.IBinder;
|
|
|
import android.support.v4.content.LocalBroadcastManager;
|
|
|
+import android.util.Log;
|
|
|
import android.view.View;
|
|
|
import android.widget.AdapterView;
|
|
|
import android.widget.ImageView;
|
|
|
@@ -77,10 +78,12 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
|
|
|
private int my_rank = -1;
|
|
|
private CircleImageView first_ranking_im;
|
|
|
private TextView first_ranking_tv;
|
|
|
- private String first_ranking_imid = null; //第一名imid
|
|
|
- private String first_ranking_name = null; //第一名名字
|
|
|
+// private String first_ranking_imid = null; //第一名imid
|
|
|
+// private String first_ranking_name = null; //第一名名字
|
|
|
private String shareStepStr = "我正在使用UU运动计步功能,你也一起来吧";
|
|
|
private CoreService mService;
|
|
|
+ private Boolean canShowAtt = false; // Attend,All数据源不断改变,为了不重复刷新适配器,当符合canShowAtt == true && canShowAll == true 再一起刷新适配器
|
|
|
+ private Boolean canShowAll = false;
|
|
|
private BroadcastReceiver updateReceiver = new BroadcastReceiver() {
|
|
|
@Override
|
|
|
public void onReceive(Context context, Intent intent) {
|
|
|
@@ -190,12 +193,12 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
|
|
|
|
|
|
}
|
|
|
private int Timeout = 0;
|
|
|
+ private int testRequest = 0;
|
|
|
private void initData() {
|
|
|
if (!CommonUtil.isNetWorkConnected(this)) {
|
|
|
ToastMessage(getString(R.string.common_notlinknet));
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
progressDialog.show();
|
|
|
//获取所有人的当天步数数据
|
|
|
HttpClient httpClient = new HttpClient.Builder(Constant.BASE_STEP_URL).isDebug(true).build(true);
|
|
|
@@ -209,14 +212,24 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
|
|
|
@Override
|
|
|
public void onResponse(Object o) {
|
|
|
if (!JSONUtil.validate(o.toString()) || o == null) return;
|
|
|
- LogUtil.prinlnLongMsg("appStepsrankflh", Timeout+"-"+o.toString()+"");
|
|
|
-
|
|
|
- if (o.toString().contains("resultCode") && o.toString().contains("resultMsg")){
|
|
|
+ LogUtil.prinlnLongMsg("appStepsrankTimeout", Timeout+"-"+o.toString()+"");
|
|
|
+ LogUtil.prinlnLongMsg("appStepsranktestRequest", testRequest+"-"+o.toString()+"");
|
|
|
+ if ((o.toString().contains("resultCode") && o.toString().contains("resultMsg"))
|
|
|
+ || (o.toString().contains("data") &&
|
|
|
+ "java.lang.NullPointerException".equals(JSON.parseObject(o.toString()).getString("data"))) ){
|
|
|
+ testRequest ++;
|
|
|
+ if (testRequest >= 5) {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ ToastMessage("数据获取异常,请稍后再试");
|
|
|
+ }else { // 数据返回异常再请求 ,最多5次
|
|
|
+ initData();
|
|
|
+ }
|
|
|
+ }else if (o.toString().contains("toalrank"))
|
|
|
+ handleData(o.toString());
|
|
|
+ else{
|
|
|
progressDialog.dismiss();
|
|
|
ToastMessage("数据获取异常,请稍后再试");
|
|
|
- return;
|
|
|
- }else
|
|
|
- handleData(o.toString());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -236,8 +249,12 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
|
|
|
private void handleData(String s) {
|
|
|
try {
|
|
|
mStepsRankingBean = JSON.parseObject(s.toString(),StepsRankingBean.class);
|
|
|
- if (mStepsRankingBean == null) return;
|
|
|
-
|
|
|
+ if (mStepsRankingBean == null) {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ Log.i("mStepsRankingBean","mStepsRankingBean==null");
|
|
|
+ ToastMessage("数据获取异常,请稍后再试");
|
|
|
+ return;
|
|
|
+ }
|
|
|
//getPricelist()有数据不为空,自己点赞过别人
|
|
|
if (!ListUtils.isEmpty(mStepsRankingBean.getPricelist())){
|
|
|
|
|
|
@@ -274,44 +291,44 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
|
|
|
|
|
|
}
|
|
|
//所有人中为自己时,看自己的被点赞次数>0 设置setPrised(true)
|
|
|
- if (MyApplication.getInstance().mLoginUser.getUserId().equals(mStepsRankingBean.getToalrank().get(i).getAs_userid())
|
|
|
- && CommonUtil.getNumByString(mStepsRankingBean.getToalrank().get(i).getAs_prise())>0)
|
|
|
- mStepsRankingBean.getToalrank().get(i).setPrised(true);
|
|
|
+ if (MyApplication.getInstance().mLoginUser.getUserId().equals(mStepsRankingBean.getToalrank().get(i).getAs_userid()) &&
|
|
|
+ CommonUtil.getNumByString(mStepsRankingBean.getToalrank().get(i).getAs_prise())>0)
|
|
|
+ mStepsRankingBean.getToalrank().get(i).setPrised(true);
|
|
|
|
|
|
if (i==mStepsRankingBean.getToalrank().size()-1){
|
|
|
- mRankAdapter.setModel(mStepsRankingBean);
|
|
|
- mAllPtlv.setAdapter(mRankAdapter);
|
|
|
- mRankAdapter.notifyDataSetChanged();
|
|
|
+ canShowAll=true;
|
|
|
+ showAttAndAllRank();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}else { //getPricelist()数据为空,自己没点赞过别人
|
|
|
+ for (int i = 0; i < mStepsRankingBean.getToalrank().size(); i++) {
|
|
|
+ mStepsRankingBean.getToalrank().get(i).setPrised(false);
|
|
|
+ if (i==mStepsRankingBean.getToalrank().size()-1){
|
|
|
+ canShowAll=true;
|
|
|
+ showAttAndAllRank();
|
|
|
+ }
|
|
|
+ }
|
|
|
for (int i = 0; i < mStepsRankingBean.getAttrank().size(); i++) {
|
|
|
mStepsRankingBean.getAttrank().get(i).setPrised(false);
|
|
|
if (i==mStepsRankingBean.getAttrank().size()-1){
|
|
|
handleAttendRank(mStepsRankingBean);
|
|
|
}
|
|
|
}
|
|
|
- for (int i = 0; i < mStepsRankingBean.getToalrank().size(); i++) {
|
|
|
- mStepsRankingBean.getToalrank().get(i).setPrised(false);
|
|
|
- if (i==mStepsRankingBean.getToalrank().size()-1){
|
|
|
- mRankAdapter.setModel(mStepsRankingBean);
|
|
|
- mAllPtlv.setAdapter(mRankAdapter);
|
|
|
- mRankAdapter.notifyDataSetChanged();
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
}
|
|
|
if (mStepsRankingBean.getAttrank().size()>0)
|
|
|
mAttentionLl.setVisibility(View.VISIBLE);
|
|
|
else
|
|
|
mAttentionLl.setVisibility(View.GONE);
|
|
|
- LogUtil.prinlnLongMsg("mStepsRankingBean", JSON.toJSONString(mStepsRankingBean)+"");
|
|
|
- showMyInfo();
|
|
|
}catch (Exception e){
|
|
|
progressDialog.dismiss();
|
|
|
+ ToastMessage("数据解析异常,请稍后再试");
|
|
|
e.printStackTrace();
|
|
|
+ Log.i("Exceptionflh",testRequest+"数据解析异常,请稍后再试");
|
|
|
+ LogUtil.prinlnLongMsg("Exceptionflh",testRequest+"-"+e.toString());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -330,16 +347,35 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
|
|
|
}
|
|
|
}
|
|
|
if (i==mStepsRankingBean.getAttrank().size()-1){
|
|
|
- mAttenAdapter.setModel(mStepsRankingBean);
|
|
|
- mAttentionPtlv.setAdapter(mAttenAdapter);
|
|
|
- mAttenAdapter.notifyDataSetChanged();
|
|
|
-
|
|
|
- LogUtil.prinlnLongMsg("mStepsRankingBeanhar", JSON.toJSONString(mStepsRankingBean)+"");
|
|
|
+ canShowAtt = true;
|
|
|
+ showAttAndAllRank();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void showAttAndAllRank() {
|
|
|
+ if (canShowAtt && canShowAll){
|
|
|
+ showMyInfo();
|
|
|
+
|
|
|
+ mRankAdapter.setModel(mStepsRankingBean);
|
|
|
+ mAllPtlv.setAdapter(mRankAdapter);
|
|
|
+ mRankAdapter.notifyDataSetChanged();
|
|
|
+
|
|
|
+ mAttenAdapter.setModel(mStepsRankingBean);
|
|
|
+ mAttentionPtlv.setAdapter(mAttenAdapter);
|
|
|
+ mAttenAdapter.notifyDataSetChanged();
|
|
|
+
|
|
|
+ LogUtil.prinlnLongMsg("mStepsRankingBeanLast", JSON.toJSONString(mStepsRankingBean)+"");
|
|
|
+ }
|
|
|
+ Log.i("showAttAndAllRank",testRequest+"-"+canShowAtt+","+canShowAll);
|
|
|
+// if (MyApplication.getInstance().mLoginUser.getUserId().equals("108340"))
|
|
|
+// ToastMessage("canShowAtt,canShowAll="+canShowAtt+","+canShowAll);
|
|
|
+// testRequest++;
|
|
|
+// if (testRequest<999999)
|
|
|
+// initData();
|
|
|
+ }
|
|
|
+
|
|
|
private void showMyInfo() {
|
|
|
if (mStepsRankingBean == null || ListUtils.isEmpty(mStepsRankingBean.getToalrank())) return;
|
|
|
//显示当前登录人的步数排名
|
|
|
@@ -355,8 +391,9 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- first_ranking_imid = mStepsRankingBean.getToalrank().get(0).getAs_userid();
|
|
|
- first_ranking_name = mStepsRankingBean.getToalrank().get(0).getAs_username();
|
|
|
+ //显示第一名信息
|
|
|
+ String first_ranking_imid = mStepsRankingBean.getToalrank().get(0).getAs_userid();
|
|
|
+ String first_ranking_name = mStepsRankingBean.getToalrank().get(0).getAs_username();
|
|
|
if (!StringUtil.isEmpty(first_ranking_imid) && !StringUtil.isEmpty(first_ranking_name)){
|
|
|
AvatarHelper.getInstance().display(CommonUtil.getNumByString(first_ranking_imid) + "", first_ranking_im, true, false);//显示圆角图片
|
|
|
first_ranking_tv.setText(first_ranking_name+"获得了排行榜第一");
|
|
|
@@ -477,7 +514,7 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //对于处理点击关注或者取消关注后返回的焦点聚焦,回到之前位置的问题
|
|
|
+ //对于处理点击关注或者取消关注后返回的焦点聚焦,回到之前位置的问题,不然会出现被挤出去情况
|
|
|
private void doPositionFocus() {
|
|
|
if (all_position != -1 && all_position<mStepsRankingBean.getToalrank().size()){
|
|
|
mAllPtlv.setSelection(all_position);
|
|
|
@@ -488,7 +525,6 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
|
|
|
}else if (att_position != -1 && att_position >= mStepsRankingBean.getAttrank().size()) {
|
|
|
mAttentionPtlv.setSelection(mStepsRankingBean.getAttrank().size() - 1);
|
|
|
}
|
|
|
-
|
|
|
progressDialog.dismiss();
|
|
|
}
|
|
|
|