FANGLH 8 лет назад
Родитель
Сommit
2dfe8ab7f2

+ 0 - 1
app_core/network/src/main/java/com/me/network/app/http/HttpClient.java

@@ -120,7 +120,6 @@ public class HttpClient {
         public Builder() {
             this.method = Method.GET;
             this.params.put("client","Android Client");
-            this.headers.put("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
         }
 
         public Builder(String url) {

+ 3 - 3
app_core/network/src/main/java/com/me/network/app/http/interceptor/LogInterceptor.java

@@ -29,8 +29,8 @@ public class LogInterceptor implements Interceptor {
 	@Override
 	public Response intercept(Chain chain) throws IOException {
 		  Request request = chain.request();
-		  Map<String, Object> headers;
-		  Map<String, Object> params;
+		  Map<String, Object> headers=new HashMap<>();;
+		  Map<String, Object> params=new HashMap<>();;
 		  Map<String,Object> postParam=new HashMap<>();
 		  //添加公共Header,公共参数
 		  if (builder!=null) {
@@ -43,7 +43,7 @@ public class LogInterceptor implements Interceptor {
 						  .build();
 				  }
 			}
-			if (!params.isEmpty()) {
+			if (params!=null) {
 				  //get请求    添加公共参数
 				  if(request.method().equals("GET")){
 					  for (Map.Entry<String, Object> entry : params.entrySet()) {

+ 18 - 12
app_modular/appme/src/main/java/com/uas/appme/pedometer/adapter/UUAttentionAdapter.java

@@ -9,9 +9,7 @@ import android.widget.TextView;
 
 import com.common.data.ListUtils;
 import com.uas.appme.R;
-import com.uas.appme.pedometer.bean.StepEntity;
-
-import java.util.List;
+import com.uas.appme.pedometer.bean.StepsRankingBean;
 
 import de.hdodenhof.circleimageview.CircleImageView;
 
@@ -21,20 +19,25 @@ import de.hdodenhof.circleimageview.CircleImageView;
  */
 
 public class UUAttentionAdapter extends BaseAdapter{
-    private List<StepEntity> mList;
     private Context mContext;
+    private StepsRankingBean model;
+
+    public StepsRankingBean getModel() {
+        return model;
+    }
 
-    public List<StepEntity> getmList() {return mList;}
-    public void setmList(List<StepEntity> mList) {this.mList = mList;}
+    public void setModel(StepsRankingBean model) {
+        this.model = model;
+    }
     public UUAttentionAdapter(Context mContext){this.mContext = mContext;}
     @Override
     public int getCount() {
-        return ListUtils.isEmpty(mList) ? 0 : mList.size();
+        return ListUtils.isEmpty(model.getAttrank()) ? 0 : model.getAttrank().size();
     }
 
     @Override
     public Object getItem(int position) {
-        return mList.get(position);
+        return model.getAttrank().get(position);
     }
 
     @Override
@@ -58,10 +61,13 @@ public class UUAttentionAdapter extends BaseAdapter{
         }else {
             viewHolder = (ViewHolder) convertView.getTag();
         }
-        viewHolder.ranking_tv.setText(position+"");
-        viewHolder.name_tv.setText("方龙海");
-        viewHolder.steps_tv.setText(mList.get(position).getSteps());
-        viewHolder.prise_tv.setText("0");
+//        if(!MyApplication.getInstance().mLoginUser.getUserId().equals(model.getAttrank().get(position).getAs_userid())){  //关注的人不应该显示自己,但是数据返回了自己,这里要判断一下不显示
+            viewHolder.ranking_tv.setText("第"+model.getAttrank().get(position).getRank()+"名");
+            viewHolder.name_tv.setText(model.getAttrank().get(position).getAs_username());
+            viewHolder.steps_tv.setText(model.getAttrank().get(position).getAs_uusteps());
+//            viewHolder.prise_tv.setText("0");
+//        }
+
         return convertView;
     }
 

+ 15 - 13
app_modular/appme/src/main/java/com/uas/appme/pedometer/adapter/UURankingAdapter.java

@@ -6,13 +6,10 @@ import android.view.ViewGroup;
 import android.widget.BaseAdapter;
 import android.widget.ImageView;
 import android.widget.TextView;
-import android.widget.Toast;
 
 import com.common.data.ListUtils;
 import com.uas.appme.R;
-import com.uas.appme.pedometer.bean.StepEntity;
-
-import java.util.List;
+import com.uas.appme.pedometer.bean.StepsRankingBean;
 
 import de.hdodenhof.circleimageview.CircleImageView;
 
@@ -22,20 +19,26 @@ import de.hdodenhof.circleimageview.CircleImageView;
  */
 
 public class UURankingAdapter extends BaseAdapter{
-    private List<StepEntity> mList;
     private Context mContext;
+    private StepsRankingBean model;
+
+    public StepsRankingBean getModel() {
+        return model;
+    }
+
+    public void setModel(StepsRankingBean model) {
+        this.model = model;
+    }
 
-    public List<StepEntity> getmList() {return mList;}
-    public void setmList(List<StepEntity> mList) {this.mList = mList;}
     public UURankingAdapter(Context mContext){this.mContext = mContext;}
     @Override
     public int getCount() {
-        return ListUtils.isEmpty(mList) ? 0 : mList.size();
+        return ListUtils.isEmpty(model.getToalrank()) ? 0 : model.getToalrank().size();
     }
 
     @Override
     public Object getItem(int position) {
-        return mList.get(position);
+        return model.getToalrank().get(position);
     }
 
     @Override
@@ -59,10 +62,9 @@ public class UURankingAdapter extends BaseAdapter{
         }else {
             viewHolder = (ViewHolder) convertView.getTag();
         }
-        viewHolder.ranking_tv.setText(position+"");
-        viewHolder.name_tv.setText("hihi");
-        viewHolder.steps_tv.setText(mList.get(position).getSteps());
-        viewHolder.prise_tv.setText("0");
+        viewHolder.ranking_tv.setText(model.getToalrank().get(position).getRank()+"");
+        viewHolder.name_tv.setText(model.getToalrank().get(position).getAs_username());
+        viewHolder.steps_tv.setText(model.getToalrank().get(position).getAs_uusteps());
         return convertView;
     }
 

+ 82 - 0
app_modular/appme/src/main/java/com/uas/appme/pedometer/bean/PersonalStepBean.java

@@ -0,0 +1,82 @@
+package com.uas.appme.pedometer.bean;
+
+import java.util.List;
+
+/**
+ * Created by FANGlh on 2017/9/22.
+ * function: 个人历史周/月步数
+ */
+
+public class PersonalStepBean  {
+
+    private List<MonthStepsBean> monthSteps;
+    private List<WeekStepsBean> weekSteps;
+
+    public List<MonthStepsBean> getMonthSteps() {
+        return monthSteps;
+    }
+
+    public void setMonthSteps(List<MonthStepsBean> monthSteps) {
+        this.monthSteps = monthSteps;
+    }
+
+    public List<WeekStepsBean> getWeekSteps() {
+        return weekSteps;
+    }
+
+    public void setWeekSteps(List<WeekStepsBean> weekSteps) {
+        this.weekSteps = weekSteps;
+    }
+
+    public static class MonthStepsBean {
+        /**
+         * as_date : 2017-09-21
+         * as_uusteps : 21
+         */
+
+        private String as_date;
+        private String as_uusteps;
+
+        public String getAs_date() {
+            return as_date;
+        }
+
+        public void setAs_date(String as_date) {
+            this.as_date = as_date;
+        }
+
+        public String getAs_uusteps() {
+            return as_uusteps;
+        }
+
+        public void setAs_uusteps(String as_uusteps) {
+            this.as_uusteps = as_uusteps;
+        }
+    }
+
+    public static class WeekStepsBean {
+        /**
+         * as_date : 2017-09-21
+         * as_uusteps : 21
+         */
+
+        private String as_date;
+        private String as_uusteps;
+
+        public String getAs_date() {
+            return as_date;
+        }
+
+        public void setAs_date(String as_date) {
+            this.as_date = as_date;
+        }
+
+        public String getAs_uusteps() {
+            return as_uusteps;
+        }
+
+        public void setAs_uusteps(String as_uusteps) {
+            this.as_uusteps = as_uusteps;
+        }
+    }
+}

+ 155 - 1
app_modular/appme/src/main/java/com/uas/appme/pedometer/bean/StepsRankingBean.java

@@ -1,9 +1,163 @@
 package com.uas.appme.pedometer.bean;
 
+import java.util.List;
+
 /**
  * Created by FANGlh on 2017/9/21.
- * function:
+ * function: 当天排行榜步数实体类
  */
 
 public class StepsRankingBean {
+
+
+    private List<AttrankBean> attrank;
+    private List<ToalrankBean> toalrank;
+
+    public List<AttrankBean> getAttrank() {
+        return attrank;
+    }
+
+    public void setAttrank(List<AttrankBean> attrank) {
+        this.attrank = attrank;
+    }
+
+    public List<ToalrankBean> getToalrank() {
+        return toalrank;
+    }
+
+    public void setToalrank(List<ToalrankBean> toalrank) {
+        this.toalrank = toalrank;
+    }
+
+    public static class AttrankBean {
+        /**
+         * as_date : 2017-09-22 00:00:00.0
+         * as_id : 6
+         * as_userid : 109079
+         * as_username : 陈爱平
+         * as_uusteps : 50
+         * rank : 1
+         */
+
+        private String as_date;
+        private String as_id;
+        private String as_userid;
+        private String as_username;
+        private String as_uusteps;
+        private int rank;
+
+        public String getAs_date() {
+            return as_date;
+        }
+
+        public void setAs_date(String as_date) {
+            this.as_date = as_date;
+        }
+
+        public String getAs_id() {
+            return as_id;
+        }
+
+        public void setAs_id(String as_id) {
+            this.as_id = as_id;
+        }
+
+        public String getAs_userid() {
+            return as_userid;
+        }
+
+        public void setAs_userid(String as_userid) {
+            this.as_userid = as_userid;
+        }
+
+        public String getAs_username() {
+            return as_username;
+        }
+
+        public void setAs_username(String as_username) {
+            this.as_username = as_username;
+        }
+
+        public String getAs_uusteps() {
+            return as_uusteps;
+        }
+
+        public void setAs_uusteps(String as_uusteps) {
+            this.as_uusteps = as_uusteps;
+        }
+
+        public int getRank() {
+            return rank;
+        }
+
+        public void setRank(int rank) {
+            this.rank = rank;
+        }
+    }
+
+    public static class ToalrankBean {
+        /**
+         * as_date : 2017-09-22 00:00:00.0
+         * as_id : 6
+         * as_userid : 109079
+         * as_username : 陈爱平
+         * as_uusteps : 50
+         * rank : 1
+         */
+
+        private String as_date;
+        private String as_id;
+        private String as_userid;
+        private String as_username;
+        private String as_uusteps;
+        private int rank;
+
+        public String getAs_date() {
+            return as_date;
+        }
+
+        public void setAs_date(String as_date) {
+            this.as_date = as_date;
+        }
+
+        public String getAs_id() {
+            return as_id;
+        }
+
+        public void setAs_id(String as_id) {
+            this.as_id = as_id;
+        }
+
+        public String getAs_userid() {
+            return as_userid;
+        }
+
+        public void setAs_userid(String as_userid) {
+            this.as_userid = as_userid;
+        }
+
+        public String getAs_username() {
+            return as_username;
+        }
+
+        public void setAs_username(String as_username) {
+            this.as_username = as_username;
+        }
+
+        public String getAs_uusteps() {
+            return as_uusteps;
+        }
+
+        public void setAs_uusteps(String as_uusteps) {
+            this.as_uusteps = as_uusteps;
+        }
+
+        public int getRank() {
+            return rank;
+        }
+
+        public void setRank(int rank) {
+            this.rank = rank;
+        }
+    }
 }

+ 7 - 0
app_modular/appme/src/main/java/com/uas/appme/pedometer/service/StepService.java

@@ -41,6 +41,7 @@ import com.uas.appme.R;
 import com.uas.appme.pedometer.bean.StepEntity;
 import com.uas.appme.pedometer.constant.Constant;
 import com.uas.appme.pedometer.db.StepDataDao;
+import com.uas.appme.pedometer.utils.StepUtils;
 import com.uas.appme.pedometer.utils.TimeUtil;
 import com.uas.appme.pedometer.utils.TrackUtils;
 import com.uas.appme.pedometer.view.StepSplashActivity;
@@ -197,14 +198,20 @@ public class StepService extends Service implements SensorEventListener {
                     case Intent.ACTION_SCREEN_OFF:
                         //屏幕熄灭改为10秒一存储
                         saveDuration = 10000;
+                        //将本地的UU运动步数更新至服务器
+                        StepUtils.doSaveLocalStepsToHttps();
                         break;
                     //关机广播,保存好当前数据
                     case Intent.ACTION_SHUTDOWN:
                         saveStepData();
+                        //将本地的UU运动步数更新至服务器
+                        StepUtils.doSaveLocalStepsToHttps();
                         break;
                     // 屏幕解锁广播
                     case Intent.ACTION_USER_PRESENT:
                         saveDuration = 3000;
+                        //将本地的UU运动步数更新至服务器
+                        StepUtils.doSaveLocalStepsToHttps();
                         break;
                     // 当长按电源键弹出“关机”对话或者锁屏时系统会发出这个广播
                     // example:有时候会用到系统对话框,权限可能很高,会覆盖在锁屏界面或者“关机”对话框之上,

+ 2 - 1
app_modular/appme/src/main/java/com/uas/appme/pedometer/utils/StepUtils.java

@@ -30,6 +30,7 @@ public class StepUtils {
         //获取当前时间
         String CURRENT_DATE = TimeUtil.getCurrentDate();
         StepEntity entity = stepDataDao.getCurDataByDate(CURRENT_DATE);
+        if (entity == null) return;
         String steps = entity.getSteps();
         String date = TimeUtils.s_long_2_str(DateFormatUtil.str2Long(entity.getCurDate(), "yyyy年MM月dd日"));
 
@@ -46,7 +47,7 @@ public class StepUtils {
                 .url("appUUsteps")
                 .add("map",map)
                 .add("token",MyApplication.getInstance().mAccessToken)
-                .method(Method.GET)
+                .method(Method.POST)
                 .build(),new ResultSubscriber<>(new ResultListener<Object>() {
             @Override
             public void onResponse(Object o) {

+ 175 - 9
app_modular/appme/src/main/java/com/uas/appme/pedometer/view/PersonalPageActivity.java

@@ -2,31 +2,55 @@ package com.uas.appme.pedometer.view;
 
 import android.content.Intent;
 import android.os.Bundle;
-import android.widget.Toast;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Button;
+import android.widget.LinearLayout;
+import android.widget.PopupWindow;
+import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.common.LogUtil;
+import com.common.data.DateFormatUtil;
+import com.common.data.ListUtils;
 import com.common.data.StringUtil;
+import com.common.system.DisplayUtil;
 import com.core.app.MyApplication;
 import com.core.base.BaseActivity;
+import com.core.utils.CommonUtil;
+import com.core.utils.TimeUtils;
 import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
 import com.me.network.app.http.rx.ResultListener;
 import com.me.network.app.http.rx.ResultSubscriber;
 import com.uas.appme.R;
+import com.uas.appme.pedometer.bean.PersonalStepBean;
 import com.uas.appme.pedometer.constant.Constant;
+import com.uas.appme.pedometer.utils.TimeUtil;
+
+import java.text.DecimalFormat;
 
 /**
  * Created by FANGlh on 2017/9/21.
  * function:
  */
 
-public class PersonalPageActivity extends BaseActivity {
+public class PersonalPageActivity extends BaseActivity implements View.OnClickListener{
 
     private String title;
     private String userid;
     private String em_name;
     private int type;
+    private TextView mMovementTotalKmTv;
+    private TextView mMovementTotalKmTimeTv;
+    private TextView mMovementTotalStepsTv;
+    private TextView mMovementTotalStepsTimeTv;
+    private PersonalStepBean mPersonalStepBean;
+    private Button mbtnAttention;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -37,29 +61,171 @@ public class PersonalPageActivity extends BaseActivity {
         initData();
     }
 
+
     private void initView() {
         Intent intent = getIntent();
         title = intent.getStringExtra("title");
         userid = intent.getStringExtra("userid");
         em_name = intent.getStringExtra("em_name");
-        type = intent.getIntExtra("type",-1);
+        type = intent.getIntExtra("type", -1);
         getSupportActionBar().setTitle(title);
+
+        LogUtil.i("userid",userid);
+        mMovementTotalKmTv = (TextView) findViewById(R.id.movement_total_km_tv);
+        mMovementTotalKmTimeTv = (TextView) findViewById(R.id.movement_total_km_time_tv);
+        mMovementTotalStepsTv = (TextView) findViewById(R.id.movement_total_steps_tv);
+        mMovementTotalStepsTimeTv = (TextView) findViewById(R.id.movement_total_steps_time_tv);
+        mbtnAttention = (Button) findViewById(R.id.btn_attention);
+        mbtnAttention.setOnClickListener(this);
+        mPersonalStepBean = new PersonalStepBean();
+
+        if (type == 3)  // type 1、2 我、已关注的人
+            mbtnAttention.setVisibility(View.VISIBLE);
+        else
+            mbtnAttention.setVisibility(View.GONE);
     }
 
     private void initData() {
+        if (!CommonUtil.isNetWorkConnected(this)) {
+            ToastMessage(getString(R.string.common_notlinknet));
+            return;
+        }
         if (StringUtil.isEmpty(userid)) return;
-        HttpClient httpClient = new HttpClient.Builder(Constant.BASE_STEP_URL).build();
+        HttpClient httpClient = new HttpClient.Builder(Constant.BASE_STEP_URL).isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
                 .url("appSteps")
-                .add("userid",userid)
-                .add("token",MyApplication.getInstance().mAccessToken)
+                .add("userid", userid)
+                .add("token", MyApplication.getInstance().mAccessToken)
                 .method(Method.GET)
-                .build(),new ResultSubscriber<>(new ResultListener<Object>() {
+                .build(), new ResultSubscriber<>(new ResultListener<Object>() {
             @Override
             public void onResponse(Object o) {
-               LogUtil.prinlnLongMsg("appSteps", JSON.toJSONString(o)+"");
-                Toast.makeText(MyApplication.getInstance(),JSON.toJSONString(o)+"",Toast.LENGTH_LONG).show();
+                LogUtil.prinlnLongMsg("appSteps", o.toString());
+                mPersonalStepBean = JSON.parseObject(o.toString(),PersonalStepBean.class);
+                showStepsInfo();            }
+        }));
+    }
+
+    private void showStepsInfo() {
+        if (mPersonalStepBean == null || ListUtils.isEmpty(mPersonalStepBean.getWeekSteps()))  return;
+        int weekSteps_size = mPersonalStepBean.getWeekSteps().size();
+        int monthSteps_size = mPersonalStepBean.getMonthSteps().size();
+        String curDate = TimeUtils.s_long_2_str(DateFormatUtil.str2Long(TimeUtil.getCurrentDate(), "yyyy年MM月dd日"));
+        String curSteps = "";
+        Log.i("curDate",curDate);
+        for (int i = 0; i < monthSteps_size; i++) {
+            if (mPersonalStepBean.getWeekSteps().get(i).getAs_date().equals(curDate)){
+                curSteps = mPersonalStepBean.getMonthSteps().get(i).getAs_uusteps();
+                break;
+            }
+        }
+        mMovementTotalStepsTv.setText(curSteps);
+        mMovementTotalKmTv.setText(countTotalKM(CommonUtil.getNumByString(curSteps)));
+
+        String now_time = TimeUtil.getWeekStr(TimeUtil.getCurrentDate());
+        mMovementTotalKmTimeTv.setText(now_time);
+        mMovementTotalStepsTimeTv.setText(now_time);
+    }
+
+    private void doAttendHandle(int attention_type) {
+        HttpClient httpClient = new HttpClient.Builder(Constant.BASE_STEP_URL).isDebug(true).build(true);
+        httpClient.Api().send(new HttpClient.Builder()
+                .url("appUUSet")
+                .add("userids", userid)
+                .add("id",MyApplication.getInstance().mLoginUser.getUserId())
+                .add("type", attention_type)
+                .add("token", MyApplication.getInstance().mAccessToken)
+                .method(Method.POST)
+                .build(), new ResultSubscriber<>(new ResultListener<Object>() {
+            @Override
+            public void onResponse(Object o) {
+                LogUtil.prinlnLongMsg("appUUSet", o.toString());
+                finish();
             }
         }));
     }
+
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.menu_outoffice, menu);
+        return super.onCreateOptionsMenu(menu);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == R.id.title) {
+            showPopupWindow();
+        }
+        return super.onOptionsItemSelected(item);
+    }
+    private PopupWindow setWindow = null;//
+    private void showPopupWindow() {
+        if (setWindow == null) initPopupWindow();
+        setWindow.showAtLocation(getWindow().getDecorView().
+                findViewById(android.R.id.content), Gravity.BOTTOM, 0, 0);
+        DisplayUtil.backgroundAlpha(this, 0.4f);
+    }
+
+    private void initPopupWindow() {
+        View viewContext = LayoutInflater.from(ct).inflate(R.layout.step_person_page_setting, null);
+        if (type == 1){  //自己
+            viewContext.findViewById(R.id.share_friend_tv).setVisibility(View.VISIBLE);
+            viewContext.findViewById(R.id.share_monments_tv).setVisibility(View.VISIBLE);
+        }else if (type == 2){ //关注的人
+            viewContext.findViewById(R.id.cancel_attention_tv).setVisibility(View.VISIBLE);
+        }else if (type == 3){  //普通好友
+            viewContext.findViewById(R.id.not_rankingwith_tv).setVisibility(View.VISIBLE);
+        }
+
+        viewContext.findViewById(R.id.share_friend_tv).setOnClickListener(this);
+        viewContext.findViewById(R.id.share_monments_tv).setOnClickListener(this);
+        viewContext.findViewById(R.id.cancel_attention_tv).setOnClickListener(this);
+        viewContext.findViewById(R.id.not_rankingwith_tv).setOnClickListener(this);
+
+        setWindow = new PopupWindow(viewContext,
+                LinearLayout.LayoutParams.MATCH_PARENT,
+                LinearLayout.LayoutParams.WRAP_CONTENT, true);
+        setWindow.setAnimationStyle(R.style.MenuAnimationFade);
+        setWindow.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.bg_popuwin));
+        setWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
+            @Override
+            public void onDismiss() {
+                closePopupWindow();
+            }
+        });
+    }
+    private void closePopupWindow() {
+        if (setWindow != null)
+            setWindow.dismiss();
+        DisplayUtil.backgroundAlpha(this, 1f);
+    }
+    /**
+     * 简易计算公里数,假设一步大约有0.7米
+     *
+     * @param steps 用户当前步数
+     * @return
+     */
+    private String countTotalKM(int steps) {
+        DecimalFormat df = new DecimalFormat("#.##");
+        double totalMeters = steps * 0.7;
+        //保留两位有效数字
+        return df.format(totalMeters / 1000);
+    }
+
+    @Override
+    public void onClick(View v) {
+        if (v.getId() == R.id.btn_attention){
+            doAttendHandle(1);
+        }else if (v.getId() == R.id.cancel_attention_tv){
+            doAttendHandle(0);
+        }else if (v.getId() == R.id.share_friend_tv){
+            ToastMessage("share_friend_tv");
+        }else if (v.getId() == R.id.share_monments_tv){
+            ToastMessage("share_monments_tv");
+        }else if (v.getId() == R.id.not_rankingwith_tv){
+            ToastMessage("not_rankingwith_tv");
+        }
+
+    }
 }

+ 83 - 20
app_modular/appme/src/main/java/com/uas/appme/pedometer/view/UURanking.java

@@ -3,24 +3,27 @@ package com.uas.appme.pedometer.view;
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.View;
+import android.widget.AdapterView;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
 import com.common.LogUtil;
 import com.core.app.MyApplication;
 import com.core.base.BaseActivity;
 import com.core.utils.CommonUtil;
 import com.core.utils.helper.AvatarHelper;
 import com.core.widget.MyListView;
-import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
 import com.me.network.app.http.rx.ResultListener;
 import com.me.network.app.http.rx.ResultSubscriber;
 import com.uas.appme.R;
+import com.uas.appme.pedometer.adapter.UUAttentionAdapter;
 import com.uas.appme.pedometer.adapter.UURankingAdapter;
 import com.uas.appme.pedometer.bean.StepEntity;
+import com.uas.appme.pedometer.bean.StepsRankingBean;
 import com.uas.appme.pedometer.constant.Constant;
 import com.uas.appme.pedometer.db.StepDataDao;
 import com.uas.appme.pedometer.utils.TimeUtil;
@@ -42,17 +45,17 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
     private TextView mStepsTv;
     private TextView mPriseTv;
     private ImageView mPriseIm;
-    private View mHideAboveAf;
     private LinearLayout mAttentionLl;
-    private PullToRefreshListView mAttentionPtlv;
+    private MyListView mAttentionPtlv;
     private MyListView mAllPtlv;
     private TextView mInviteFriendsTv;
-    private StepDataDao stepDataDao;
     private String curSelDate;
     private String myem_name;
     private List<StepEntity> stepEntityList;
     private UURankingAdapter mRankAdapter;
+    private UUAttentionAdapter mAttenAdapter;
     private ImageView mHeaderImg;
+    private StepsRankingBean mStepsRankingBean;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -60,10 +63,11 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
         setContentView(R.layout.uu_ranking_activity);
         initView();
         initData();
+        initEvents();
     }
 
-    private void initView() {
 
+    private void initView() {
         mHeaderImg = (ImageView) findViewById(R.id.header_background_im);
         mPhotoImg = (CircleImageView) findViewById(R.id.photo_img);
         mNameTv = (TextView) findViewById(R.id.name_tv);
@@ -71,25 +75,24 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
         mStepsTv = (TextView) findViewById(R.id.steps_tv);
         mPriseTv = (TextView) findViewById(R.id.prise_tv);
         mPriseIm = (ImageView) findViewById(R.id.prise_im);
-        mHideAboveAf = (View) findViewById(R.id.hide_above_af);
         mAttentionLl = (LinearLayout) findViewById(R.id.attention_ll);
-        mAttentionPtlv = (PullToRefreshListView) findViewById(R.id.attention_ptlv);
+        mAttentionPtlv = (MyListView) findViewById(R.id.attention_ptlv);
         mAllPtlv = (MyListView) findViewById(R.id.all_ptlv);
         mInviteFriendsTv = (TextView) findViewById(R.id.invite_friends_tv);
-        stepDataDao = new StepDataDao(this);
         curSelDate = TimeUtil.getCurrentDate();
         stepEntityList = new ArrayList<>();
         mRankAdapter = new UURankingAdapter(this);
-        mAllPtlv.setAdapter(mRankAdapter);
+        mAttenAdapter = new UUAttentionAdapter(this);
         findViewById(R.id.my_info_rl).setOnClickListener(this);
 
         mHeaderImg.requestFocus();
-        mAttentionLl.setVisibility(View.GONE);
+        mStepsRankingBean = new StepsRankingBean();
 
         myem_name = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_emname");
         mNameTv.setText(myem_name+"");
         String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
         AvatarHelper.getInstance().display(loginUserId, mPhotoImg, true, false);
+        StepDataDao stepDataDao = new StepDataDao(this);
         StepEntity stepEntity = stepDataDao.getCurDataByDate(curSelDate);
         if (stepEntity != null) {
             int steps = Integer.parseInt(stepEntity.getSteps());
@@ -100,14 +103,15 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
             mStepsTv.setText("0");
         }
 
-        stepEntityList.clear();
-        stepEntityList.addAll(stepDataDao.getAllDatas());
-        mRankAdapter.setmList(stepEntityList);
-        mRankAdapter.notifyDataSetChanged();
     }
 
     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).build();
         httpClient.Api().send(new HttpClient.Builder()
@@ -119,21 +123,80 @@ public class UURanking extends BaseActivity implements View.OnClickListener {
             @Override
             public void onResponse(Object o) {
                 LogUtil.prinlnLongMsg("appStepsrank", o.toString()+"");
+                try {
+                    mStepsRankingBean = JSON.parseObject(o.toString(),StepsRankingBean.class);
+                    mRankAdapter.setModel(mStepsRankingBean);
+                    mAllPtlv.setAdapter(mRankAdapter);
+                    mRankAdapter.notifyDataSetChanged();
+
+                    mAttenAdapter.setModel(mStepsRankingBean);
+                    mAttentionPtlv.setAdapter(mAttenAdapter);
+                    mAttenAdapter.notifyDataSetChanged();
+                    if (mStepsRankingBean.getAttrank().size()>1)
+                        mAttentionLl.setVisibility(View.VISIBLE);
+                    progressDialog.dismiss();
+                    LogUtil.prinlnLongMsg("mStepsRankingBean", JSON.toJSONString(mStepsRankingBean)+"");
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
             }
         }));
 
     }
 
+    private void initEvents() {
+        mAttentionPtlv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                inTentToPersonal(2,position);
+            }
+        });
+        mAllPtlv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                inTentToPersonal(3,position);
+            }
+        });
+    }
+
+    private void inTentToPersonal(int type, int position) {
+        Intent intent = new Intent(this,PersonalPageActivity.class);
+        String title = "";
+        String userid = "";
+        String em_name = "";
+
+        switch (type){
+            case 1:
+                title = "我";
+                userid = MyApplication.getInstance().mLoginUser.getUserId();
+                em_name = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_emname");
+                break;
+            case 2:
+                title = mStepsRankingBean.getAttrank().get(position).getAs_username();
+                userid = mStepsRankingBean.getAttrank().get(position).getAs_userid();
+                em_name = mStepsRankingBean.getAttrank().get(position).getAs_username();
+                break;
+            case 3:
+                title = mStepsRankingBean.getToalrank().get(position).getAs_username();
+                userid = mStepsRankingBean.getToalrank().get(position).getAs_userid();
+                em_name = mStepsRankingBean.getToalrank().get(position).getAs_username();
+                break;
+        }
+        if (MyApplication.getInstance().mLoginUser.getUserId().equals(userid)) {
+            type = 1;
+            title = "我";
+        }
+        intent.putExtra("type",type);
+        intent.putExtra("title",title+"的主页");
+        intent.putExtra("userid",userid);
+        intent.putExtra("em_name",em_name);
+        startActivity(intent);
+    }
 
     @Override
     public void onClick(View v) {
         if (v.getId() == R.id.my_info_rl){
-            Intent intent = new Intent(this,PersonalPageActivity.class);
-            intent.putExtra("type",1);
-            intent.putExtra("title","我的主页");
-            intent.putExtra("userid",MyApplication.getInstance().mLoginUser.getUserId());
-            intent.putExtra("em_name",CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_emname"));
-            startActivity(intent);
+            inTentToPersonal(1,0);
         }
     }
 }

BIN
app_modular/appme/src/main/res/drawable-xxhdpi/rankb.jpg


+ 8 - 9
app_modular/appme/src/main/res/layout/item_uuattention.xml

@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:background="@color/bg_main"
+    >
     <RelativeLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:padding="5dp"
         android:layout_marginLeft="20dp"
         android:layout_marginRight="10dp"
-        android:background="@color/bg_main"
         >
 
         <de.hdodenhof.circleimageview.CircleImageView
@@ -18,7 +18,8 @@
             android:contentDescription="@string/app_name"
             android:layout_marginTop="5dp"
             android:layout_marginBottom="5dp"
-            android:src="@drawable/common_header_boy"/>
+            android:src="@drawable/common_header_boy"
+            android:layout_marginLeft="10dp"/>
 
         <TextView
             android:id="@+id/name_tv"
@@ -29,7 +30,6 @@
             android:textColor="@color/black"
             android:textSize="@dimen/text_hine"
             android:layout_marginTop="10dp"
-            android:text="张三"
 
             />
         <TextView
@@ -42,7 +42,7 @@
             android:textColor="@color/gray"
             android:textSize="@dimen/text_hine"
             android:layout_marginTop="4dp"
-            android:text="第一名"/>
+            />
 
         <TextView
             android:id="@+id/steps_tv"
@@ -51,7 +51,6 @@
             android:layout_marginTop="20dp"
             android:layout_marginBottom="0dp"
             android:textSize="@dimen/BigTextSize"
-            android:text="9999"
             android:textColor="@color/green"
             android:layout_toLeftOf="@+id/prise_tv"
             android:layout_marginRight="20dp"
@@ -65,7 +64,6 @@
             android:layout_marginTop="5dp"
             android:layout_marginBottom="0dp"
             android:textSize="@dimen/text_hine"
-            android:text="1"
             android:textColor="@color/text_hine"
             android:layout_marginRight="5dp"/>
         <ImageView
@@ -75,6 +73,7 @@
             android:src="@drawable/uuu"
             android:layout_alignParentRight="true"
             android:layout_below="@+id/prise_tv"
-            android:layout_marginTop="5dp"/>
+            android:layout_marginTop="5dp"
+            android:visibility="invisible"/>
     </RelativeLayout>
 </LinearLayout>

+ 2 - 3
app_modular/appme/src/main/res/layout/item_uuranking.xml

@@ -20,7 +20,6 @@
         android:layout_toRightOf="@+id/ranking_tv"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:padding="5dp"
         android:layout_marginRight="10dp"
         android:layout_marginLeft="10dp"
         >
@@ -67,7 +66,6 @@
             android:layout_marginTop="5dp"
             android:layout_marginBottom="0dp"
             android:textSize="@dimen/text_hine"
-            android:text="1"
             android:textColor="@color/text_hine"
             android:layout_marginRight="5dp"/>
         <ImageView
@@ -77,6 +75,7 @@
             android:src="@drawable/uuu"
             android:layout_alignParentRight="true"
             android:layout_below="@+id/prise_tv"
-            android:layout_marginTop="5dp"/>
+            android:layout_marginTop="5dp"
+            android:visibility="invisible"/>
     </RelativeLayout>
 </RelativeLayout>

+ 164 - 1
app_modular/appme/src/main/res/layout/personal_page_activity.xml

@@ -1,7 +1,170 @@
-<?xml version="1.0" encoding="utf-8"?>
+
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
 
+    <LinearLayout
+        android:layout_marginLeft="20dp"
+        android:layout_marginRight="20dp"
+        android:orientation="vertical"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="15sp"
+            android:layout_marginTop="15dp"
+            android:layout_marginBottom="15dp"
+            android:textColor="@color/main_text_color"
+            android:text="@string/sports_recode"/>
+
+        <RelativeLayout
+            android:background="@drawable/ic_small_blue_rectangular"
+            android:layout_width="match_parent"
+            android:layout_height="100dp">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textColor="@color/white"
+                android:textSize="18sp"
+                android:layout_margin="10dp"
+                android:text="@string/sports_recode_distance"/>
+
+            <LinearLayout
+                android:layout_margin="10dp"
+                android:layout_alignParentRight="true"
+                android:layout_alignParentBottom="true"
+                android:orientation="vertical"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content">
+
+                <LinearLayout
+                    android:layout_gravity="end"
+                    android:orientation="horizontal"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content">
+
+                    <TextView
+                        android:id="@+id/movement_total_km_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="30sp"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:textColor="@color/white" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="16sp"
+                        android:textColor="@color/white"
+                        android:text="@string/sports_kilometre"/>
+
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_gravity="end"
+                    android:orientation="horizontal"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content">
+
+                    <TextView
+                        android:id="@+id/movement_total_km_time_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="end"
+                        android:textSize="12sp"
+                        android:textColor="@color/white"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp" />
+
+
+                </LinearLayout>
+            </LinearLayout>
+        </RelativeLayout>
+
+        <RelativeLayout
+            android:layout_marginTop="10dp"
+            android:background="@drawable/ic_small_blue_rectangular"
+            android:layout_width="match_parent"
+            android:layout_height="100dp">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textColor="@color/white"
+                android:textSize="18sp"
+                android:layout_margin="10dp"
+                android:text="@string/sports_step_tody"/>
+
+            <LinearLayout
+                android:layout_margin="10dp"
+                android:layout_alignParentRight="true"
+                android:layout_alignParentBottom="true"
+                android:orientation="vertical"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content">
+
+                <LinearLayout
+                    android:layout_gravity="end"
+                    android:orientation="horizontal"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content">
+
+                    <TextView
+                        android:id="@+id/movement_total_steps_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="30sp"
+                        android:layout_marginLeft="5dp"
+                        android:layout_marginRight="5dp"
+                        android:textColor="@color/white"/>
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="16sp"
+                        android:textColor="@color/white"
+                        android:text="@string/sports_step"/>
+
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_gravity="end"
+                    android:orientation="horizontal"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content">
+
+                    <TextView
+                        android:id="@+id/movement_total_steps_time_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="end"
+                        android:textSize="12sp"
+                        android:textColor="@color/white"
+                        android:layout_marginLeft="5dp"
+                        android:layout_marginRight="5dp" />
+
+                </LinearLayout>
+            </LinearLayout>
+        </RelativeLayout>
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:visibility="visible">
+            <Button
+                android:id="@+id/btn_attention"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="10dp"
+                android:background="@drawable/bg_bule_btn"
+                android:padding="10dp"
+                android:text="关  注"
+                android:textColor="@color/white"
+                android:textSize="@dimen/text_main" />
+        </LinearLayout>
+    </LinearLayout>
 </LinearLayout>

+ 68 - 0
app_modular/appme/src/main/res/layout/step_person_page_setting.xml

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@color/white"
+    android:orientation="vertical">
+
+    <TextView
+        android:id="@+id/cancel_attention_tv"
+        android:layout_width="match_parent"
+        android:layout_height="45dp"
+        android:background="@drawable/text_click_bg"
+        android:gravity="center"
+        android:text="取消关注"
+        android:textColor="@color/text_main"
+        android:textSize="15sp"
+        android:visibility="gone"/>
+
+    <TextView
+        android:id="@+id/not_rankingwith_tv"
+        android:layout_width="match_parent"
+        android:layout_height="45dp"
+        android:background="@drawable/text_click_bg"
+        android:gravity="center"
+        android:text="不与他(她)排行"
+        android:textColor="@color/text_main"
+        android:textSize="15sp"
+        android:visibility="gone"/>
+
+    <TextView
+        android:id="@+id/share_friend_tv"
+        android:layout_width="match_parent"
+        android:layout_height="45dp"
+        android:background="@drawable/text_click_bg"
+        android:gravity="center"
+        android:text="分享给朋友"
+        android:textColor="@color/text_main"
+        android:textSize="15sp"
+        android:visibility="gone"/>
+
+    <TextView
+        android:id="@+id/share_monments_tv"
+        android:layout_width="match_parent"
+        android:layout_height="45dp"
+        android:background="@drawable/text_click_bg"
+        android:gravity="center"
+        android:text="分享到工作圈"
+        android:textColor="@color/text_main"
+        android:textSize="15sp"
+        android:visibility="gone"/>
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="4dp"
+        android:background="@color/black_gray"
+        android:visibility="gone"/>
+
+    <TextView
+        android:id="@+id/cancel_tv"
+        android:layout_width="match_parent"
+        android:layout_height="45dp"
+        android:background="@drawable/text_click_bg"
+        android:gravity="center"
+        android:text="@string/common_cancel"
+        android:textColor="@color/red"
+        android:textSize="15sp"
+        android:visibility="gone"/>
+
+</LinearLayout>

+ 12 - 8
app_modular/appme/src/main/res/layout/uu_ranking_activity.xml

@@ -20,7 +20,7 @@
               android:focusableInTouchMode="true"
               android:layout_width="match_parent"
               android:layout_height="200dp"
-              android:background="@drawable/uuu"/>
+              android:background="@drawable/rankb"/>
 
 
           <RelativeLayout
@@ -90,6 +90,7 @@
                   android:text="1"
                   android:textColor="@color/text_hine"
                   android:layout_marginRight="15dp"
+                  android:visibility="invisible"
                   />
               <ImageView
                   android:id="@+id/prise_im"
@@ -99,7 +100,8 @@
                   android:layout_alignParentRight="true"
                   android:layout_below="@+id/prise_tv"
                   android:layout_marginTop="5dp"
-                  android:layout_marginRight="10dp"/>
+                  android:layout_marginRight="10dp"
+                  android:visibility="invisible"/>
           </RelativeLayout>
           <View
               android:id="@+id/hide_above_af"
@@ -113,8 +115,9 @@
             android:id="@+id/attention_ll"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:orientation="vertical">
-            <com.handmark.pulltorefresh.library.PullToRefreshListView
+            android:orientation="vertical"
+           android:visibility="gone">
+            <com.core.widget.MyListView
                 android:id="@+id/attention_ptlv"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
@@ -128,6 +131,7 @@
                 android:layout_marginTop="1dp"
                 android:visibility="visible"/>
         </LinearLayout>
+
               <com.core.widget.MyListView
                   android:id="@+id/all_ptlv"
                   android:layout_width="match_parent"
@@ -135,10 +139,10 @@
                   android:background="@color/item_line"
                   android:dividerHeight="2px"
                   />
-          <View
-              android:layout_width="match_parent"
-              android:layout_height="@dimen/line"
-              android:background="@color/item_line"/>
+              <View
+                  android:layout_width="match_parent"
+                  android:layout_height="@dimen/line"
+                  android:background="@color/item_line"/>
           <TextView
               android:id="@+id/invite_friends_tv"
               android:textColor="@color/green"