FANGLH 8 жил өмнө
parent
commit
1a9d0675db

+ 7 - 32
app_modular/appme/src/main/java/com/uas/appme/pedometer/adapter/UUAttentionAdapter.java

@@ -65,43 +65,18 @@ public class UUAttentionAdapter extends BaseAdapter{
         }else {
             viewHolder = (ViewHolder) convertView.getTag();
         }
-//        if(!MyApplication.getInstance().mLoginUser.getUserId().equals(model.getAttrank().get(position).getAs_userid())){  //关注的人不应该显示自己,但是数据返回了自己,这里要判断一下不显示
-            viewHolder.name_tv.setText(model.getAttrank().get(position).getAs_username());
-            viewHolder.steps_tv.setText(model.getAttrank().get(position).getAs_uusteps());
-            viewHolder.prise_tv.setText(model.getAttrank().get(position).getAs_prise());
+        viewHolder.name_tv.setText(model.getAttrank().get(position).getAs_username());
+        viewHolder.steps_tv.setText(model.getAttrank().get(position).getAs_uusteps());
+        viewHolder.prise_tv.setText(model.getAttrank().get(position).getAs_prise());
 
-//            viewHolder.photo_img.setImageResource(CommonUtil.getNumByString(model.getAttrank().get(position).getAs_userid()));
         AvatarHelper.getInstance().display(CommonUtil.getNumByString(model.getAttrank().get(position).getAs_userid()) + "", viewHolder.photo_img, true, false);//显示圆角图片
-
-        if (model.getToalrank() != null){
-            for (int i = 0; i < model.getToalrank().size(); i++) {
-                if (model.getAttrank().get(position).getAs_userid().equals(model.getToalrank().get(i).getAs_userid())){
-                    viewHolder.ranking_tv.setText("第"+model.getToalrank().get(i).getRank()+"名");
-                    break;
-                }
-
-                if (MyApplication.getInstance().mLoginUser.getUserId().equals(model.getAttrank().get(position).getAs_userid())
-                        && Integer.valueOf(model.getAttrank().get(position).getAs_prise()) > 0)
-                    viewHolder.prise_im.setImageResource(R.drawable.praised);
-            }
-        }
-
-        if (model.getAttrank().get(position).getPrised())
+        viewHolder.ranking_tv.setText("第"+model.getAttrank().get(position).getRank()+"名");
+        if (model.getAttrank().get(position).getPrised() ||
+                (MyApplication.getInstance().mLoginUser.getUserId().equals(model.getAttrank().get(position).getAs_userid())  //自己获赞数 > 0
+                        && CommonUtil.getNumByString(model.getAttrank().get(position).getAs_prise()) > 0))
             viewHolder.prise_im.setImageResource(R.drawable.praised);
         else
             viewHolder.prise_im.setImageResource(R.drawable.praise);
-/*
-        //点赞后的红色图标显示
-        if (!ListUtils.isEmpty(model.getPricelist())){
-            for (int i = 0; i < model.getPricelist().size(); i++) {
-                if (model.getPricelist().get(i).getAp_userid().equals(model.getAttrank().get(position).getAs_userid())){
-                    viewHolder.prise_im.setImageResource(R.drawable.praised);
-                    break;//个人的点赞列表id中已经存在当前position的userid 则不点赞
-                }else if (i==model.getPricelist().size()-1){
-                    viewHolder.prise_im.setImageResource(R.drawable.praise);
-                }
-            }
-        }*/
 
         viewHolder.prise_im.setOnClickListener(new View.OnClickListener() {
             @Override

+ 5 - 17
app_modular/appme/src/main/java/com/uas/appme/pedometer/adapter/UURankingAdapter.java

@@ -8,6 +8,7 @@ import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.common.data.ListUtils;
+import com.core.app.MyApplication;
 import com.core.utils.CommonUtil;
 import com.core.utils.helper.AvatarHelper;
 import com.uas.appme.R;
@@ -75,27 +76,14 @@ public class UURankingAdapter extends BaseAdapter{
         viewHolder.steps_tv.setText(model.getToalrank().get(position).getAs_uusteps());
         viewHolder.prise_tv.setText(model.getToalrank().get(position).getAs_prise());
         AvatarHelper.getInstance().display(CommonUtil.getNumByString(model.getToalrank().get(position).getAs_userid()) + "", viewHolder.photo_img, true, false);//显示圆角图片
-//        if (MyApplication.getInstance().mLoginUser.getUserId().equals(model.getToalrank().get(position).getAs_userid())
-//                && Integer.valueOf(model.getToalrank().get(position).getAs_prise()) > 0)  //显示自己是否被赞
-//            viewHolder.prise_im.setImageResource(R.drawable.praised);
-//        else
-//            viewHolder.prise_im.setImageResource(R.drawable.praise);
 
-        if (model.getToalrank().get(position).getPrised())
+        if (model.getToalrank().get(position).getPrised() ||
+                (MyApplication.getInstance().mLoginUser.getUserId().equals(model.getToalrank().get(position).getAs_userid())  //自己获赞数 > 0
+                && CommonUtil.getNumByString(model.getToalrank().get(position).getAs_prise()) > 0))
             viewHolder.prise_im.setImageResource(R.drawable.praised);
         else
             viewHolder.prise_im.setImageResource(R.drawable.praise);
-       /* //点赞后的红色图标显示
-        if (!ListUtils.isEmpty(model.getPricelist())){
-            for (int i = 0; i < model.getPricelist().size(); i++) {
-                if (model.getPricelist().get(i).getAp_userid().equals(model.getToalrank().get(position).getAs_userid())){
-                    viewHolder.prise_im.setImageResource(R.drawable.praised);
-                    break;//个人的点赞列表id中已经存在当前position的userid 则不点赞
-                }else if (i==model.getPricelist().size()-1){
-                    viewHolder.prise_im.setImageResource(R.drawable.praise);
-                }
-            }
-        }*/
+
         viewHolder.prise_im.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {

+ 18 - 5
app_modular/appme/src/main/java/com/uas/appme/pedometer/utils/StepUtils.java

@@ -15,6 +15,7 @@ import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.core.app.AppConstant;
 import com.core.app.MyApplication;
+import com.core.broadcast.MsgBroadcast;
 import com.core.model.Friend;
 import com.core.model.XmppMessage;
 import com.core.utils.CommonUtil;
@@ -172,18 +173,25 @@ public class StepUtils {
      * @param type
      * @param position
      */
-    public static void doStepPriseHttp(StepsRankingBean model, int type, int position) {
+    public static void doStepPriseHttp(StepsRankingBean model, final int type, final int position) {
         Boolean doPrise = true;
         String userid = null;
         switch (type){
             case 2:
                 userid = model.getAttrank().get(position).getAs_userid();
+                if (model.getAttrank().get(position).getPrised()) //已经赞过了
+                    doPrise = false;
                 break;
             case 3:
                 userid = model.getToalrank().get(position).getAs_userid();
+                if (model.getToalrank().get(position).getPrised()) //已经赞过了
+                    doPrise = false;
                 break;
         }
-        if (!ListUtils.isEmpty(model.getPricelist())){
+
+        if (!StringUtil.isEmpty(userid) && MyApplication.getInstance().mLoginUser.getUserId().equals(userid))
+            doPrise = false; //不可以赞自己
+/*        if (!ListUtils.isEmpty(model.getPricelist())){
             for (int i = 0; i < model.getPricelist().size(); i++) {
                 if (model.getPricelist().get(i).getAp_userid().equals(userid)){
                     doPrise = false;
@@ -193,11 +201,11 @@ public class StepUtils {
             }
         }else{
             doPrise = true;
-        }
+        }*/
 
         Log.i("doPrise",doPrise.toString());
         if (!doPrise) return;
-        if (StringUtil.isEmpty(userid) || MyApplication.getInstance().mLoginUser.getUserId().equals(userid)) return;  //不可以赞自己
+
         //点赞操作
         HttpClient httpClient = new HttpClient.Builder(Constant.BASE_STEP_URL).isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
@@ -215,7 +223,12 @@ public class StepUtils {
                 try {
                     //TODO 请求操作成功后发广播更新排行版界面
                     //发送本地广播
-                    LocalBroadcastManager.getInstance(MyApplication.getInstance().getApplicationContext()).sendBroadcast(new Intent(AppConstant.UPDATE_STEPRANKING_PRISE));
+                    Intent intent = new Intent();
+                    intent.putExtra("type", type);
+                    intent.putExtra("position",position);
+                    intent.setAction(AppConstant.UPDATE_STEPRANKING_PRISE);
+                    MsgBroadcast.sendLocalBroadcast(intent);
+//                    LocalBroadcastManager.getInstance(MyApplication.getInstance().getApplicationContext()).sendBroadcast(new Intent(AppConstant.UPDATE_STEPRANKING_PRISE));
                 }catch (Exception e){
                     e.printStackTrace();
                 }

+ 108 - 21
app_modular/appme/src/main/java/com/uas/appme/pedometer/view/UURanking.java

@@ -73,12 +73,6 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
     private StepsRankingBean mStepsRankingBean;
     private int att_position = -1;
     private int all_position = -1;
-    private BroadcastReceiver updateReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            initData();
-        }
-    };
     private int my_rank = -1;
     private CircleImageView first_ranking_im;
     private TextView first_ranking_tv;
@@ -86,6 +80,55 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
     private String first_ranking_name = null; //第一名名字
     private String shareStepStr = "我正在使用UU运动计步功能,你也一起来吧";
     private CoreService mService;
+    private BroadcastReceiver updateReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+//            initData();
+            int brType = intent.getIntExtra("type",-1);
+            int brposition = intent.getIntExtra("position",-1);
+
+
+            LogUtil.prinlnLongMsg("brType,brposition",brType+","+brposition+"");
+            try {
+                if (brType != -1 && brposition != -1){
+                    if (brType == 2){  // 点赞的是AttRank
+                        mStepsRankingBean.getAttrank().get(brposition).setPrised(true);
+                        mStepsRankingBean.getAttrank().get(brposition).setAs_prise(
+                                String.valueOf(CommonUtil.getNumByString(mStepsRankingBean.getAttrank().get(brposition).getAs_prise())+1));
+                        mAttenAdapter.notifyDataSetChanged();
+                        if (ListUtils.isEmpty(mStepsRankingBean.getToalrank())) return;
+                        for (int i = 0; i < mStepsRankingBean.getToalrank().size(); i++) { //去更新AllRank
+                            if (mStepsRankingBean.getAttrank().get(brposition).getAs_userid().equals(mStepsRankingBean.getToalrank().get(i).getAs_userid())){
+                                mStepsRankingBean.getToalrank().get(i).setAs_prise(
+                                        String.valueOf(CommonUtil.getNumByString(mStepsRankingBean.getToalrank().get(i).getAs_prise())+1));
+                                mStepsRankingBean.getToalrank().get(i).setPrised(true);
+                                mRankAdapter.notifyDataSetChanged();
+                                break;
+                            }
+                        }
+                    }else if (brType == 3){  // 点赞的是AllRank人地方
+                        mStepsRankingBean.getToalrank().get(brposition).setPrised(true);
+                        mStepsRankingBean.getToalrank().get(brposition).setAs_prise(
+                                String.valueOf(CommonUtil.getNumByString(mStepsRankingBean.getToalrank().get(brposition).getAs_prise())+1));
+                        mRankAdapter.notifyDataSetChanged();
+                        if (ListUtils.isEmpty(mStepsRankingBean.getAttrank())) return;
+                        for (int i = 0; i < mStepsRankingBean.getAttrank().size(); i++) { //去更新AttRank
+                            if (mStepsRankingBean.getToalrank().get(brposition).getAs_userid().equals(mStepsRankingBean.getAttrank().get(i).getAs_userid())){
+                                mStepsRankingBean.getAttrank().get(i).setAs_prise(
+                                        String.valueOf(CommonUtil.getNumByString(mStepsRankingBean.getAttrank().get(i).getAs_prise())+1));
+                                mStepsRankingBean.getAttrank().get(i).setPrised(true);
+                                mAttenAdapter.notifyDataSetChanged();
+                                break;
+                            }
+                        }
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    };
+
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -183,44 +226,60 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
             mStepsRankingBean = JSON.parseObject(s.toString(),StepsRankingBean.class);
             if (mStepsRankingBean == null) return;
 
+            //getPricelist()有数据不为空,自己点赞过别人
             if (!ListUtils.isEmpty(mStepsRankingBean.getPricelist())){
+
+                //循环从点赞表与关注表对比,getAttrank()的_userid在getPricelist()中存在,则设置setPrised(true),显示红心
                 if (!ListUtils.isEmpty(mStepsRankingBean.getAttrank())){
                     for (int i = 0; i < mStepsRankingBean.getAttrank().size(); i++) {
-                        if (mStepsRankingBean.getPricelist().contains(mStepsRankingBean.getAttrank().get(i).getAs_userid()))
+                        for (int j = 0; j<mStepsRankingBean.getPricelist().size();j++) {
+                            if (mStepsRankingBean.getAttrank().get(i).getAs_userid().equals(mStepsRankingBean.getPricelist().get(j).getAp_userid())) {
+                                mStepsRankingBean.getAttrank().get(i).setPrised(true);
+                                break;
+                            } else
+                                mStepsRankingBean.getAttrank().get(i).setPrised(false);
+                        }
+                        //关心的人中为自己时,看自己的被点赞次数>0 设置setPrised(true)
+                        if (MyApplication.getInstance().mLoginUser.getUserId().equals(mStepsRankingBean.getAttrank().get(i).getAs_userid())
+                                && CommonUtil.getNumByString(mStepsRankingBean.getAttrank().get(i).getAs_prise())>0)
                             mStepsRankingBean.getAttrank().get(i).setPrised(true);
-                        else
-                            mStepsRankingBean.getAttrank().get(i).setPrised(false);
 
                         if (i==mStepsRankingBean.getAttrank().size()-1){
-                            mAttenAdapter.setModel(mStepsRankingBean);
-                            mAttentionPtlv.setAdapter(mAttenAdapter);
-                            mAttenAdapter.notifyDataSetChanged();
+                            handleAttendRank(mStepsRankingBean);
                         }
                     }
                 }
 
+                //循环从点赞表与关注表对比,getToalrank()的_userid在getPricelist()中存在,则设置setPrised(true),显示红心
                 if (!ListUtils.isEmpty(mStepsRankingBean.getToalrank())){
                     for (int i = 0; i < mStepsRankingBean.getToalrank().size(); i++) {
-                        if (mStepsRankingBean.getPricelist().contains(mStepsRankingBean.getToalrank().get(i).getAs_userid()))
+                        for (int j = 0; j < mStepsRankingBean.getPricelist().size();j++) {
+                            if (mStepsRankingBean.getToalrank().get(i).getAs_userid().equals(mStepsRankingBean.getPricelist().get(j).getAp_userid())) {
+                                mStepsRankingBean.getToalrank().get(i).setPrised(true);
+                                break;
+                            } else
+                                mStepsRankingBean.getToalrank().get(i).setPrised(false);
+
+                        }
+                        //所有人中为自己时,看自己的被点赞次数>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);
-                        else
-                            mStepsRankingBean.getToalrank().get(i).setPrised(false);
 
                         if (i==mStepsRankingBean.getToalrank().size()-1){
                             mRankAdapter.setModel(mStepsRankingBean);
                             mAllPtlv.setAdapter(mRankAdapter);
                             mRankAdapter.notifyDataSetChanged();
                         }
+
                     }
                 }
 
-            }else {
+            }else {  //getPricelist()数据为空,自己没点赞过别人
                 for (int i = 0; i < mStepsRankingBean.getAttrank().size(); i++) {
                     mStepsRankingBean.getAttrank().get(i).setPrised(false);
-                    if (i==mStepsRankingBean.getToalrank().size()-1){
-                        mAttenAdapter.setModel(mStepsRankingBean);
-                        mAttentionPtlv.setAdapter(mAttenAdapter);
-                        mAttenAdapter.notifyDataSetChanged();
+                    if (i==mStepsRankingBean.getAttrank().size()-1){
+                        handleAttendRank(mStepsRankingBean);
                     }
                 }
                 for (int i = 0; i < mStepsRankingBean.getToalrank().size(); i++) {
@@ -234,13 +293,41 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
             }
             if (mStepsRankingBean.getAttrank().size()>0)
                 mAttentionLl.setVisibility(View.VISIBLE);
-            showMyInfo();
+            else
+                mAttentionLl.setVisibility(View.GONE);
             LogUtil.prinlnLongMsg("mStepsRankingBean", JSON.toJSONString(mStepsRankingBean)+"");
+            showMyInfo();
         }catch (Exception e){
+            progressDialog.dismiss();
             e.printStackTrace();
         }
     }
 
+
+    //关注的人在排行榜的排名获取
+    private void handleAttendRank(StepsRankingBean mStepsRankingBean) {
+        if (!ListUtils.isEmpty(mStepsRankingBean.getAttrank()) && !ListUtils.isEmpty(mStepsRankingBean.getToalrank())){
+            for (int i = 0; i < mStepsRankingBean.getAttrank().size(); i++) {
+                for (int j=0;j<mStepsRankingBean.getToalrank().size();j++){
+                    if (!StringUtil.isEmpty(mStepsRankingBean.getAttrank().get(i).getAs_userid()) &&
+                            !StringUtil.isEmpty(mStepsRankingBean.getToalrank().get(j).getAs_userid()) &&
+                            mStepsRankingBean.getAttrank().get(i).getAs_userid().equals(mStepsRankingBean.getToalrank().get(j).getAs_userid()) &&
+                            !StringUtil.isEmpty(mStepsRankingBean.getToalrank().get(j).getRank()+"")){
+                        mStepsRankingBean.getAttrank().get(i).setRank(mStepsRankingBean.getToalrank().get(j).getRank());
+                        break;
+                    }
+                }
+                if (i==mStepsRankingBean.getAttrank().size()-1){
+                    mAttenAdapter.setModel(mStepsRankingBean);
+                    mAttentionPtlv.setAdapter(mAttenAdapter);
+                    mAttenAdapter.notifyDataSetChanged();
+
+                    LogUtil.prinlnLongMsg("mStepsRankingBeanhar", JSON.toJSONString(mStepsRankingBean)+"");
+                }
+            }
+        }
+    }
+
     private void showMyInfo() {
         if (mStepsRankingBean == null || ListUtils.isEmpty(mStepsRankingBean.getToalrank())) return;
         //显示当前登录人的步数排名