Commit ee74c27b85a61f3a478ebfbecee6b122a391f6dd

Authored by 韩亚云
2 parents ba34a038 67a0c3c5

Merge branch 'master' of bj.gitlab.cnlive.com:cnlive-team/ModulePedometer

moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/presenter/ALLScoreDetailFragmentPresenter.java
1 1 package com.cnlive.moudle.pedometer.frame.presenter;
2 2  
  3 +import android.app.Activity;
  4 +import android.text.TextUtils;
  5 +import android.widget.Toast;
  6 +
  7 +import com.baidu.mapapi.model.LatLng;
  8 +import com.baidu.trace.LBSTraceClient;
  9 +import com.baidu.trace.model.SortType;
  10 +import com.cnlive.moudle.pedometer.commonInfo.CommonInfo;
3 11 import com.cnlive.moudle.pedometer.frame.view.ALLScoreDetailFragmentView;
  12 +import com.cnlive.moudle.pedometer.model.Constant;
  13 +import com.cnlive.moudle.pedometer.model.RunningFinishBean;
  14 +import com.cnlive.moudle.pedometer.sql.entity.FailedEntity;
  15 +import com.cnlive.moudle.pedometer.ui.widget.SelectDialog;
  16 +import com.cnlive.moudle.pedometer.utils.GsonUtil;
  17 +import com.cnlive.moudle.pedometer.utils.MyMapUtil;
  18 +import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil;
  19 +import com.example.moudle_pedometer.R;
4 20 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
5 21  
  22 +import java.util.List;
  23 +
6 24 public class ALLScoreDetailFragmentPresenter extends MvpBasePresenter<ALLScoreDetailFragmentView> {
  25 + private LBSTraceClient mClient = null;
  26 + private SelectDialog uploadFailDialog;
  27 + private SelectDialog failTraceDialog;
  28 +
  29 + /**
  30 + * 查询当前用户历史轨迹
  31 + */
  32 + public void queryHistoryTrace(Activity context, RunningFinishBean runningFinishBean) {
  33 + QMUITipDialogUtil.loadingDialog(context, "正在获取轨迹信息,请稍后", false);
  34 + //查询当前用户的历史轨迹
  35 + long startTime = 0;
  36 + if (!TextUtils.isEmpty(runningFinishBean.getUserStartTime())) {
  37 + startTime = Long.parseLong(runningFinishBean.getUserStartTime());
  38 + }
  39 + //获取当前的时间戳(秒)
  40 + long endTime = 0;
  41 + if (!TextUtils.isEmpty(runningFinishBean.getUserFinishTime())){
  42 + endTime = Long.parseLong(runningFinishBean.getUserFinishTime());
  43 + }
  44 + //获取当前的实体名称
  45 + String entityName = CommonInfo.getUserId(context);
  46 + if (mClient == null) {
  47 + mClient = new LBSTraceClient(context);
  48 + }
  49 + MyMapUtil.queryHistoryTrace(context, mClient, entityName, startTime, endTime, new MyMapUtil.CallBack() {
  50 + @Override
  51 + public void success(List<LatLng> resultPoints) {
  52 + if (resultPoints != null) {
  53 + if (getView() != null) {
  54 + QMUITipDialogUtil.dismessDialog();
  55 + if (resultPoints.size() > 1) {
  56 + MyMapUtil.drawHistoryTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, R.drawable.icon_start, R.drawable.icon_end);
  57 + //设置地图自动缩放
  58 + MyMapUtil.setMapAutoZoom(getView().baiduMap, resultPoints, -2f);
  59 + }
  60 +
  61 + }
  62 + }
  63 + //查询失败
  64 + else {
  65 + if (getView() == null) {
  66 + return;
  67 + }
  68 + QMUITipDialogUtil.dismessDialog();
  69 +
  70 + if (failTraceDialog == null) {
  71 + failTraceDialog = new SelectDialog(context, "获取轨迹失败,是否重试?", "重试", new SelectDialog.DialogInterface() {
  72 + @Override
  73 + public void onClick(SelectDialog dialog) {
  74 + dialog.dismiss();
  75 + queryHistoryTrace(context, runningFinishBean);
  76 + }
  77 + }, "取消", new SelectDialog.DialogInterface() {
  78 + @Override
  79 + public void onClick(SelectDialog dialog) {
  80 + dialog.dismiss();
  81 +
  82 + }
  83 + });
  84 + failTraceDialog.setCanceledOnTouchOutside(false);
  85 + failTraceDialog.setCancelable(false);
  86 + if (!failTraceDialog.isShowing()) {
  87 + failTraceDialog.show();
  88 + }
  89 +
  90 + } else {
  91 + if (!failTraceDialog.isShowing()) {
  92 + failTraceDialog.show();
  93 + }
  94 + }
  95 + }
  96 + }
  97 + });
  98 +
  99 + }
7 100 }
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/presenter/RunningFinishFragmetPresenter.java
... ... @@ -81,7 +81,9 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter&lt;RunningFinis
81 81 //配速
82 82 String pace = "";
83 83 if ("--".equals(runningFinishBean.getSpeed())) {
84   - pace = "0";
  84 +// pace = "0";
  85 + //开始计算配速
  86 + pace = StepUtil.getPaceSpeed(Double.parseDouble(employTime), Double.parseDouble(mileage));
85 87 } else {
86 88 pace = runningFinishBean.getSpeed();
87 89 }
... ... @@ -125,7 +127,6 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter&lt;RunningFinis
125 127 paramsMap.put("step", step);
126 128  
127 129  
128   -
129 130 Logic.create(paramsMap).action(new Logic.Action<Map<String, String>, BaseInfo>() {
130 131 @Override
131 132 public Disposable action(Map<String, String> stringStringMap, DataCallback<BaseInfo> dataCallback) {
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/ALLScoreDetailFragmentView.java
... ... @@ -10,6 +10,7 @@ import com.baidu.mapapi.map.UiSettings;
10 10 import com.cnlive.moudle.pedometer.model.RunningFinishBean;
11 11 import com.cnlive.moudle.pedometer.ui.fragment.ALLScoreDetailFragment;
12 12 import com.cnlive.moudle.pedometer.utils.TimeUtil;
  13 +import com.example.moudle_pedometer.R;
13 14 import com.hannesdorfmann.mosby3.mvp.MvpView;
14 15  
15 16 /**
... ... @@ -50,6 +51,25 @@ public class ALLScoreDetailFragmentView implements MvpView {
50 51  
51 52 fragment.binding.includeFinishRunRoute.tvTimer.setText(TimeUtil.stampToChronometer(Long.parseLong(runningFinishBean.getEmployTime())));
52 53 }
  54 + //设置完成时间
  55 + if (!TextUtils.isEmpty(runningFinishBean.getUserFinishTime())) {
  56 + fragment.binding.includeFinishUserInfo.tvDate.setText(TimeUtil.getStampToTime(Long.parseLong(runningFinishBean.getUserFinishTime())*1000, "yyyy/MM/dd HH:mm"));
  57 + }
  58 + //设置起点
  59 + fragment.binding.includeFinishRunRoute.tvStartPoint.setText(runningFinishBean.getStartPoint());
  60 + //设置终点
  61 + fragment.binding.includeFinishRunRoute.tvEndPoint.setText(runningFinishBean.getEndPoint());
  62 + //设置是否完成
  63 + //未完成
  64 + if ("1".equals(runningFinishBean.getIsFinish())) {
  65 + fragment.binding.includeFinishRunRoute.tvFinishState.setText("路线完成");
  66 + fragment.binding.includeFinishRunRoute.tvFinishState.setTextColor(getContext().getResources().getColor(R.color.green_round));
  67 + }
  68 + //完成
  69 + else if ("0".equals(runningFinishBean.getIsFinish())){
  70 + fragment.binding.includeFinishRunRoute.tvFinishState.setText("路线未完成");
  71 + fragment.binding.includeFinishRunRoute.tvFinishState.setTextColor(getContext().getResources().getColor(R.color.red));
  72 + }
53 73 //设置日期
54 74 //点击返回按钮
55 75 fragment.binding.flBack.setOnClickListener(new View.OnClickListener() {
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/RaceRecorView.java
... ... @@ -86,8 +86,19 @@ public class RaceRecorView implements MvpView {
86 86 runningFinishBean.setRunDistance(bean.getMileage());
87 87 //设置配速
88 88 runningFinishBean.setSpeed(bean.getPace());
89   - //设置用
  89 + //设置用
90 90 runningFinishBean.setEmployTime(bean.getEmployTime());
  91 + //设置开始位置
  92 + runningFinishBean.setStartPoint(bean.getStartLocation());
  93 + //设置结束位置
  94 + runningFinishBean.setEndPoint(bean.getEndLocation());
  95 + //设置用户轨迹开始时间
  96 + runningFinishBean.setUserStartTime(bean.getStartTime());
  97 + //设置用户轨迹结束时间
  98 + runningFinishBean.setUserFinishTime(bean.getEndTime());
  99 + //设置用户是否完成
  100 + runningFinishBean.setIsFinish(bean.getCompleteStatus() + "");
  101 +
91 102 //设置起点
92 103 ALLScoreDetailActivity.startActivity(fragment.getActivity(), runningFinishBean);
93 104  
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/RunMainFragmentView.java
... ... @@ -237,8 +237,10 @@ public class RunMainFragmentView implements MvpView {
237 237 fragment.binding.chronometer.setFormat("00:00:01");
238 238 fragment.binding.chronometer.setBase(SystemClock.elapsedRealtime());
239 239 }
240   - //设置继续运动时间
241   - StepUtil.setContinueTime(getContext(), uid, TimeUtil.getNowTimeStamp());
  240 + if (userStepEntity.getContinueTime() == 0) {
  241 + //设置继续运动时间
  242 + StepUtil.setContinueTime(getContext(), uid, TimeUtil.getNowTimeStamp());
  243 + }
242 244 //因为进来以后就运动了,所以需要改变状态
243 245 CommonInfo.setIsPauseState(getContext(), false);
244 246 //重新设置开始时间
... ... @@ -290,8 +292,10 @@ public class RunMainFragmentView implements MvpView {
290 292 fragment.binding.flContinue.setOnClickListener(new View.OnClickListener() {
291 293 @Override
292 294 public void onClick(View view) {
293   - //设置继续运动时间
294   - StepUtil.setContinueTime(getContext(), uid, TimeUtil.getNowTimeStamp());
  295 + if (userStepEntity.getContinueTime() == 0) {
  296 + //设置继续运动时间
  297 + StepUtil.setContinueTime(getContext(), uid, TimeUtil.getNowTimeStamp());
  298 + }
295 299 //设置继续标志
296 300 CommonInfo.setIsPauseState(getContext(), false);
297 301 //继续记录轨迹
... ... @@ -371,8 +375,17 @@ public class RunMainFragmentView implements MvpView {
371 375 runningFinishBean.setStartPoint(userStepEntity.getStartPoint());
372 376 runningFinishBean.setEndPoint(userStepEntity.getEndPoint());
373 377 runningFinishBean.setRunDistance(fragment.binding.tvRunDistance.getText().toString());
374   - runningFinishBean.setSpeed(fragment.binding.tvSpeed.getText().toString());
375   - runningFinishBean.setStep(fragment.binding.tvStepCount.getText().toString());
  378 + if ("--".equals(fragment.binding.tvSpeed.getText().toString())) {
  379 + String speed = StepUtil.getPaceSpeed(Double.parseDouble(employTime), Double.parseDouble(fragment.binding.tvRunDistance.getText().toString()));
  380 + runningFinishBean.setSpeed(speed);
  381 + } else {
  382 + runningFinishBean.setSpeed(fragment.binding.tvSpeed.getText().toString());
  383 + }
  384 + if ("--".equals(fragment.binding.tvStepCount.getText().toString())) {
  385 + runningFinishBean.setStep("0");
  386 + } else {
  387 + runningFinishBean.setStep(fragment.binding.tvStepCount.getText().toString());
  388 + }
376 389 runningFinishBean.setTime(fragment.binding.chronometer.getText().toString());
377 390 runningFinishBean.setDate(TimeUtil.getStampToTime(userStepEntity.getFinishTimeStamp() * 1000, "yyyy/MM/dd HH:mm"));
378 391 runningFinishBean.setStreetTitle(userStepEntity.getStreetTitle());
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/RunningFinishFragmentView.java
... ... @@ -17,6 +17,7 @@ import com.cnlive.moudle.pedometer.ui.fragment.RunningFinishFragment;
17 17 import com.cnlive.moudle.pedometer.ui.fragment.RunningMapFragment;
18 18 import com.cnlive.moudle.pedometer.utils.MyMapUtil;
19 19 import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil;
  20 +import com.cnlive.moudle.pedometer.utils.StepUtil;
20 21 import com.example.moudle_pedometer.R;
21 22 import com.hannesdorfmann.mosby3.mvp.MvpView;
22 23 import com.sothree.slidinguppanel.SlidingUpPanelLayout;
... ... @@ -59,21 +60,13 @@ public class RunningFinishFragmentView implements MvpView {
59 60 //设置距离
60 61 fragment.binding.includeFinishUserInfo.tvDistance.setText(runningFinishBean.getRunDistance());
61 62 //设置配速
62   - if ("--".equals(runningFinishBean.getSpeed())) {
63   - fragment.binding.includeFinishUserInfo.tvSpeed.setText("0");
64   - } else {
65   - fragment.binding.includeFinishUserInfo.tvSpeed.setText(runningFinishBean.getSpeed());
66   - }
  63 + fragment.binding.includeFinishUserInfo.tvSpeed.setText(runningFinishBean.getSpeed());
67 64 //设置用时
68 65 fragment.binding.includeFinishUserInfo.tvTimer.setText(runningFinishBean.getTime());
69 66 //设置日期
70 67 fragment.binding.includeFinishUserInfo.tvDate.setText(runningFinishBean.getDate());
71 68 //设置步数
72   - if ("--".equals(runningFinishBean.getStep())) {
73   - fragment.binding.includeFinishStep.tvStep.setText("0");
74   - } else {
75   - fragment.binding.includeFinishStep.tvStep.setText(runningFinishBean.getStep());
76   - }
  69 + fragment.binding.includeFinishStep.tvStep.setText(runningFinishBean.getStep());
77 70 //设置起点位置
78 71 fragment.binding.includeFinishRunRoute.tvStartPoint.setText(runningFinishBean.getStartPoint());
79 72 //设置终点位置
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/RunningMapFragmentView.java
... ... @@ -86,6 +86,50 @@ public class RunningMapFragmentView implements MvpView, SensorEventListener {
86 86  
87 87 public void initView() {
88 88 currentPoints = new ArrayList<>();
  89 + initMap();
  90 + //返回键
  91 + fragment.binding.flBack.setOnTouchListener(new View.OnTouchListener() {
  92 + @Override
  93 + public boolean onTouch(View view, MotionEvent motionEvent) {
  94 + if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
  95 + ButtonAnimUtil.setViewZoomIn(fragment.binding.flBack);
  96 + } else if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
  97 + ButtonAnimUtil.setViewZoomOut(fragment.binding.flBack);
  98 + }
  99 + return false;
  100 + }
  101 + });
  102 + //返回键点击事件
  103 + fragment.binding.flBack.setOnClickListener(new View.OnClickListener() {
  104 + @Override
  105 + public void onClick(View view) {
  106 + fragment.getActivity().finish();
  107 + }
  108 + });
  109 + //重新定位
  110 + fragment.binding.flLocation.setOnTouchListener(new View.OnTouchListener() {
  111 + @Override
  112 + public boolean onTouch(View view, MotionEvent motionEvent) {
  113 + if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
  114 + ButtonAnimUtil.setViewZoomIn(fragment.binding.flLocation);
  115 + } else if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
  116 + ButtonAnimUtil.setViewZoomOut(fragment.binding.flLocation);
  117 + }
  118 + return false;
  119 + }
  120 + });
  121 + //重新定位功能
  122 + fragment.binding.flLocation.setOnClickListener(new View.OnClickListener() {
  123 + @Override
  124 + public void onClick(View view) {
  125 + mLocClient.restart();
  126 + isFirstLoc = true;
  127 + }
  128 + });
  129 +
  130 + }
  131 +
  132 + public void initMap() {
89 133 this.mMapView = fragment.binding.mapView;
90 134 if (baiduMap == null) {
91 135 baiduMap = mMapView.getMap();
... ... @@ -158,46 +202,6 @@ public class RunningMapFragmentView implements MvpView, SensorEventListener {
158 202 public void onMapLoaded() {
159 203 }
160 204 });
161   - //返回键
162   - fragment.binding.flBack.setOnTouchListener(new View.OnTouchListener() {
163   - @Override
164   - public boolean onTouch(View view, MotionEvent motionEvent) {
165   - if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
166   - ButtonAnimUtil.setViewZoomIn(fragment.binding.flBack);
167   - } else if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
168   - ButtonAnimUtil.setViewZoomOut(fragment.binding.flBack);
169   - }
170   - return false;
171   - }
172   - });
173   - //返回键点击事件
174   - fragment.binding.flBack.setOnClickListener(new View.OnClickListener() {
175   - @Override
176   - public void onClick(View view) {
177   - fragment.getActivity().finish();
178   - }
179   - });
180   - //重新定位
181   - fragment.binding.flLocation.setOnTouchListener(new View.OnTouchListener() {
182   - @Override
183   - public boolean onTouch(View view, MotionEvent motionEvent) {
184   - if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
185   - ButtonAnimUtil.setViewZoomIn(fragment.binding.flLocation);
186   - } else if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
187   - ButtonAnimUtil.setViewZoomOut(fragment.binding.flLocation);
188   - }
189   - return false;
190   - }
191   - });
192   - //重新定位功能
193   - fragment.binding.flLocation.setOnClickListener(new View.OnClickListener() {
194   - @Override
195   - public void onClick(View view) {
196   - mLocClient.restart();
197   - isFirstLoc = true;
198   - }
199   - });
200   -
201 205 }
202 206  
203 207 public void drawServerStreetTrace(List<LatLng> trackPoints) {
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/SelfRecordView.java
... ... @@ -11,6 +11,7 @@ import com.cnlive.moudle.pedometer.model.RunningFinishBean;
11 11 import com.cnlive.moudle.pedometer.net.bean.BaseInfo;
12 12 import com.cnlive.moudle.pedometer.net.bean.EventRouteRecordBeanVoListBean;
13 13 import com.cnlive.moudle.pedometer.net.bean.SelfRecordInfo;
  14 +import com.cnlive.moudle.pedometer.ui.activity.ALLScoreDetailActivity;
14 15 import com.cnlive.moudle.pedometer.ui.activity.LineUpAgainActivity;
15 16 import com.cnlive.moudle.pedometer.ui.activity.RunLineActivity;
16 17 import com.cnlive.moudle.pedometer.ui.adapter.RaceRecordAdapter;
... ... @@ -66,8 +67,34 @@ public class SelfRecordView implements MvpView {
66 67 adapter.setOnClickListener(new RaceRecordAdapter.OnClickListener() {
67 68 @Override
68 69 public void onClickListener(EventRouteRecordBeanVoListBean bean, int position) {
69   - CollRunningFinishActivity.startActivity(fragment.getActivity(), new RunningFinishBean());
70   - }
  70 + if (null != bean) {
  71 + //设置数据
  72 + RunningFinishBean runningFinishBean = new RunningFinishBean();
  73 + //设置赛事标题
  74 + runningFinishBean.setStreetTitle(bean.getEventTitle());
  75 + //设置步数
  76 + runningFinishBean.setStep(bean.getStep());
  77 + //设置距离
  78 + runningFinishBean.setRunDistance(bean.getMileage());
  79 + //设置配速
  80 + runningFinishBean.setSpeed(bean.getPace());
  81 + //设置用时
  82 + runningFinishBean.setEmployTime(bean.getEmployTime());
  83 + //设置开始位置
  84 + runningFinishBean.setStartPoint(bean.getStartLocation());
  85 + //设置结束位置
  86 + runningFinishBean.setEndPoint(bean.getEndLocation());
  87 + //设置用户轨迹开始时间
  88 + runningFinishBean.setUserStartTime(bean.getStartTime());
  89 + //设置用户轨迹结束时间
  90 + runningFinishBean.setUserFinishTime(bean.getEndTime());
  91 + //设置用户是否完成
  92 + runningFinishBean.setIsFinish(bean.getCompleteStatus() + "");
  93 +
  94 + //设置起点
  95 + ALLScoreDetailActivity.startActivity(fragment.getActivity(), runningFinishBean);
  96 +
  97 + } }
71 98 });
72 99 } else {
73 100 adapter.notifyDataSetChanged();
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/model/RunningFinishBean.java
... ... @@ -21,6 +21,24 @@ public class RunningFinishBean implements Serializable {
21 21 private String isFinish;
22 22 private String roadmap;
23 23 private String streetTitle;
  24 + private String userStartTime;
  25 + private String userFinishTime;
  26 +
  27 + public String getUserStartTime() {
  28 + return userStartTime;
  29 + }
  30 +
  31 + public void setUserStartTime(String userStartTime) {
  32 + this.userStartTime = userStartTime;
  33 + }
  34 +
  35 + public String getUserFinishTime() {
  36 + return userFinishTime;
  37 + }
  38 +
  39 + public void setUserFinishTime(String userFinishTime) {
  40 + this.userFinishTime = userFinishTime;
  41 + }
24 42  
25 43 public String getStreetTitle() {
26 44 return streetTitle;
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/net/bean/EventRouteRecordBeanVoListBean.java
... ... @@ -25,6 +25,51 @@ public class EventRouteRecordBeanVoListBean {
25 25 private int recordId;
26 26 private String roadmap;
27 27 private String step;
  28 + private String startTime;
  29 + private String endTime;
  30 + private String startLocation;
  31 + private String endLocation;
  32 + private int completeStatus;
  33 +
  34 + public String getStartTime() {
  35 + return startTime;
  36 + }
  37 +
  38 + public void setStartTime(String startTime) {
  39 + this.startTime = startTime;
  40 + }
  41 +
  42 + public String getEndTime() {
  43 + return endTime;
  44 + }
  45 +
  46 + public void setEndTime(String endTime) {
  47 + this.endTime = endTime;
  48 + }
  49 +
  50 + public String getStartLocation() {
  51 + return startLocation;
  52 + }
  53 +
  54 + public void setStartLocation(String startLocation) {
  55 + this.startLocation = startLocation;
  56 + }
  57 +
  58 + public String getEndLocation() {
  59 + return endLocation;
  60 + }
  61 +
  62 + public void setEndLocation(String endLocation) {
  63 + this.endLocation = endLocation;
  64 + }
  65 +
  66 + public int getCompleteStatus() {
  67 + return completeStatus;
  68 + }
  69 +
  70 + public void setCompleteStatus(int completeStatus) {
  71 + this.completeStatus = completeStatus;
  72 + }
28 73  
29 74 public long getCreateTime() {
30 75 return createTime;
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/service/StepService.java
... ... @@ -184,6 +184,8 @@ public class StepService extends Service implements SensorEventListener {
184 184 showStartForegroundNotification();
185 185 }
186 186  
  187 + private static int retryIndex = 0;
  188 +
187 189 private void initTrace() {
188 190 if (mClient == null) {
189 191 mClient = new LBSTraceClient(getApplicationContext());
... ... @@ -243,6 +245,7 @@ public class StepService extends Service implements SensorEventListener {
243 245 if (StatusCodes.SUCCESS == errorNo || StatusCodes.START_TRACE_NETWORK_CONNECT_FAILED <= errorNo) {
244 246 //开始进行采集
245 247 if (mClient != null) {
  248 + retryIndex = 0;
246 249 mClient.startGather(traceListener);
247 250 Toast.makeText(getApplicationContext(), "开启轨迹服务", Toast.LENGTH_LONG).show();
248 251 boolean isFirstSendNotification = CommonInfo.getIsFirstStepSendTraceTip(getApplicationContext());
... ... @@ -262,6 +265,14 @@ public class StepService extends Service implements SensorEventListener {
262 265 CommonInfo.setIsFirstStepSendTraceTip(getApplicationContext(), false);
263 266 EventBus.getDefault().post(new MessageEvent(Constant.START_TRACE_GATHER_FAIL, ""));
264 267 }
  268 + if (retryIndex < 4) {
  269 + //重新开启服务
  270 + if (mClient != null) {
  271 + mClient.startTrace(mTrace, traceListener);
  272 + retryIndex++;
  273 + }
  274 + }
  275 +
265 276 }
266 277 }
267 278  
... ... @@ -300,7 +311,16 @@ public class StepService extends Service implements SensorEventListener {
300 311 @Override
301 312 public void onStartGatherCallback(int errorNo, String message) {
302 313 if (StatusCodes.SUCCESS == errorNo || StatusCodes.GATHER_STARTED == errorNo) {
  314 + retryIndex = 0;
303 315 Toast.makeText(getApplicationContext(), "开始采集", Toast.LENGTH_LONG).show();
  316 + } else {
  317 + //重新开启采集
  318 + if (retryIndex < 4) {
  319 + if (null != mClient) {
  320 + mClient.startGather(traceListener);
  321 + }
  322 + retryIndex++;
  323 + }
304 324 }
305 325 }
306 326  
... ... @@ -703,7 +723,7 @@ public class StepService extends Service implements SensorEventListener {
703 723 CURRENT_STEP = Integer.parseInt(userStepEntity.getStepCount());
704 724 }
705 725 }
706   - Log.e(TAG, "initTodayData: 初始化当前步数" + CURRENT_STEP);
  726 +// Log.e(TAG, "initTodayData: 初始化当前步数" + CURRENT_STEP);
707 727 if (mStepCount != null) {
708 728 mStepCount.setSteps(CURRENT_STEP);
709 729 }
... ... @@ -711,7 +731,7 @@ public class StepService extends Service implements SensorEventListener {
711 731 }
712 732  
713 733 private void updateNotification() {
714   - Log.e(TAG, "updateNotification: 当前步数:" + CURRENT_STEP);
  734 +// Log.e(TAG, "updateNotification: 当前步数:" + CURRENT_STEP);
715 735 EventBus.getDefault().post(new MessageEvent(Constant.SERVICE_STEP_COUNT_UPDATE, CURRENT_STEP));
716 736 updateSpeedStepFlag = false;
717 737 // remoteViews = new RemoteViews(getPackageName(), R.layout.custom_step_notification);
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/adapter/RaceRecordAdapter.java
... ... @@ -43,14 +43,18 @@ public class RaceRecordAdapter extends RecyclerView.Adapter&lt;RaceRecordAdapter.My
43 43 @NonNull
44 44 @Override
45 45 public MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
46   - View view = LayoutInflater.from(context).inflate(R.layout.item_race_record,viewGroup,false);
  46 + View view = LayoutInflater.from(context).inflate(R.layout.item_race_record, viewGroup, false);
47 47 return new MyHolder(view);
48 48 }
49 49  
50 50 @Override
51 51 public void onBindViewHolder(@NonNull MyHolder myHolder, int i) {
52   - myHolder.record_time_day.setText(TimeUtil.getStampToTime(list.get(i).getCreateTime(), "MM月dd日"));
53   - myHolder.record_time.setText(TimeUtil.getStampToTime(list.get(i).getCreateTime(), "HH:mm"));
  52 + if (!TextUtils.isEmpty(list.get(i).getStartTime())) {
  53 + myHolder.record_time_day.setText(TimeUtil.getStampToTime(Long.parseLong(list.get(i).getStartTime()) * 1000, "MM月dd日"));
  54 + }
  55 + if (!TextUtils.isEmpty(list.get(i).getStartTime())) {
  56 + myHolder.record_time.setText(TimeUtil.getStampToTime(Long.parseLong(list.get(i).getStartTime()) * 1000, "HH:mm"));
  57 + }
54 58 myHolder.item_title.setText(list.get(i).getEventTitle());
55 59 myHolder.record_kli.setText(list.get(i).getMileage());
56 60 //设置时间
... ... @@ -62,7 +66,8 @@ public class RaceRecordAdapter extends RecyclerView.Adapter&lt;RaceRecordAdapter.My
62 66 if (onClickListener != null)
63 67 myHolder.ry_re.setOnClickListener(v -> onClickListener.onClickListener(list.get(i), i));
64 68 // Glide.with(context).load(list.get(i).getRoadmap()).into(myHolder.item_img);
65   - if(onClickListener != null) myHolder.ry_re.setOnClickListener(v -> onClickListener.onClickListener(list.get(i),i));
  69 + if (onClickListener != null)
  70 + myHolder.ry_re.setOnClickListener(v -> onClickListener.onClickListener(list.get(i), i));
66 71 }
67 72  
68 73 @Override
... ... @@ -70,7 +75,7 @@ public class RaceRecordAdapter extends RecyclerView.Adapter&lt;RaceRecordAdapter.My
70 75 return list.size();
71 76 }
72 77  
73   - class MyHolder extends RecyclerView.ViewHolder{
  78 + class MyHolder extends RecyclerView.ViewHolder {
74 79  
75 80 TextView record_time_day;
76 81 TextView record_time;
... ... @@ -97,7 +102,7 @@ public class RaceRecordAdapter extends RecyclerView.Adapter&lt;RaceRecordAdapter.My
97 102 }
98 103  
99 104  
100   - public interface OnClickListener{
  105 + public interface OnClickListener {
101 106 void onClickListener(EventRouteRecordBeanVoListBean bean, int position);
102 107 }
103 108 }
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/fragment/ALLScoreDetailFragment.java
... ... @@ -49,6 +49,9 @@ public class ALLScoreDetailFragment extends QMUIFragment&lt;ALLScoreDetailFragmentV
49 49 if (getMvpView() != null) {
50 50 getMvpView().initMap();
51 51 getMvpView().initView(runningFinishBean);
  52 + if (getPresenter() != null) {
  53 + getPresenter().queryHistoryTrace(getActivity(), runningFinishBean);
  54 + }
52 55 }
53 56 }
54 57 }
... ...
moudle_pedometer/src/main/res/layout/fragment_self_record.xml
... ... @@ -17,29 +17,27 @@
17 17 android:layout_height="wrap_content"
18 18 android:layout_centerVertical="true"
19 19 android:padding="10dp"
20   - android:src="@drawable/top_back_black"/>
  20 + android:src="@drawable/top_back_black" />
21 21  
22 22 <TextView
23 23 android:layout_width="wrap_content"
24 24 android:layout_height="wrap_content"
25   - android:layout_centerVertical="true"
26   - android:textColor="#333333"
27   - android:textSize="18sp"
28 25 android:layout_centerInParent="true"
  26 + android:layout_centerVertical="true"
29 27 android:text="@string/myrecord"
30   - />
  28 + android:textColor="#333333"
  29 + android:textSize="18sp" />
31 30  
32 31 <TextView
33 32 android:id="@+id/again_up"
34 33 android:layout_width="wrap_content"
35 34 android:layout_height="wrap_content"
  35 + android:layout_alignParentRight="true"
36 36 android:layout_centerVertical="true"
37 37 android:padding="10dp"
38   - android:textColor="#333333"
39   - android:textSize="15sp"
40   - android:layout_alignParentRight="true"
41 38 android:text="@string/again_up"
42   - />
  39 + android:textColor="#333333"
  40 + android:textSize="15sp" />
43 41 </RelativeLayout>
44 42  
45 43 <RelativeLayout
... ... @@ -75,18 +73,17 @@
75 73 android:textColor="@color/white"
76 74 android:textSize="50sp" />
77 75  
78   - <RelativeLayout
  76 + <LinearLayout
79 77 android:id="@+id/ry_finish"
80 78 android:layout_width="match_parent"
81 79 android:layout_height="wrap_content"
82   - android:layout_below="@id/kilometer_num"
83   - android:layout_marginLeft="20dp"
84   - android:layout_marginTop="10dp"
85   - android:layout_marginRight="20dp">
86   -
  80 + android:layout_below="@id/kilometer_num">
  81 + <!---->
87 82 <LinearLayout
88   - android:layout_width="wrap_content"
89   - android:layout_height="wrap_content"
  83 + android:layout_width="0dp"
  84 + android:layout_height="match_parent"
  85 + android:layout_weight="1"
  86 + android:gravity="center"
90 87 android:orientation="vertical">
91 88  
92 89 <TextView
... ... @@ -107,12 +104,11 @@
107 104 android:textColor="@color/white"
108 105 android:textSize="20sp" />
109 106 </LinearLayout>
110   -
111   -
  107 + <!---->
112 108 <LinearLayout
113   - android:layout_width="wrap_content"
114   - android:layout_height="wrap_content"
115   - android:layout_centerInParent="true"
  109 + android:layout_width="0dp"
  110 + android:layout_height="match_parent"
  111 + android:layout_weight="1"
116 112 android:orientation="vertical">
117 113  
118 114 <TextView
... ... @@ -133,11 +129,11 @@
133 129 android:textColor="@color/white"
134 130 android:textSize="20sp" />
135 131 </LinearLayout>
136   -
  132 + <!---->
137 133 <LinearLayout
138   - android:layout_width="wrap_content"
139   - android:layout_height="wrap_content"
140   - android:layout_alignParentRight="true"
  134 + android:layout_width="0dp"
  135 + android:layout_height="match_parent"
  136 + android:layout_weight="1"
141 137 android:orientation="vertical">
142 138  
143 139 <TextView
... ... @@ -158,19 +154,21 @@
158 154 android:textColor="@color/white"
159 155 android:textSize="20sp" />
160 156 </LinearLayout>
161   - </RelativeLayout>
162   -
163   - <RelativeLayout
  157 + <!---->
  158 + </LinearLayout>
  159 + <!---->
  160 + <!--未完成-->
  161 + <LinearLayout
164 162 android:layout_width="match_parent"
165 163 android:layout_height="wrap_content"
166 164 android:layout_below="@id/ry_finish"
167   - android:layout_marginLeft="20dp"
168   - android:layout_marginTop="10dp"
169   - android:layout_marginRight="20dp">
170   -
  165 + android:layout_marginTop="10dp">
  166 + <!---->
171 167 <LinearLayout
172   - android:layout_width="wrap_content"
173   - android:layout_height="wrap_content"
  168 + android:layout_width="0dp"
  169 + android:layout_height="match_parent"
  170 + android:layout_weight="1"
  171 + android:gravity="center"
174 172 android:orientation="vertical">
175 173  
176 174 <TextView
... ... @@ -191,12 +189,11 @@
191 189 android:textColor="@color/white"
192 190 android:textSize="20sp" />
193 191 </LinearLayout>
194   -
195   -
  192 + <!---->
196 193 <LinearLayout
197   - android:layout_width="wrap_content"
198   - android:layout_height="wrap_content"
199   - android:layout_centerInParent="true"
  194 + android:layout_width="0dp"
  195 + android:layout_height="match_parent"
  196 + android:layout_weight="1"
200 197 android:orientation="vertical">
201 198  
202 199 <TextView
... ... @@ -217,11 +214,11 @@
217 214 android:textColor="@color/white"
218 215 android:textSize="20sp" />
219 216 </LinearLayout>
220   -
  217 + <!---->
221 218 <LinearLayout
222   - android:layout_width="wrap_content"
223   - android:layout_height="wrap_content"
224   - android:layout_alignParentRight="true"
  219 + android:layout_width="0dp"
  220 + android:layout_height="match_parent"
  221 + android:layout_weight="1"
225 222 android:orientation="vertical">
226 223  
227 224 <TextView
... ... @@ -242,7 +239,8 @@
242 239 android:textColor="@color/white"
243 240 android:textSize="20sp" />
244 241 </LinearLayout>
245   - </RelativeLayout>
  242 + <!---->
  243 + </LinearLayout>
246 244  
247 245 </RelativeLayout>
248 246  
... ... @@ -260,7 +258,7 @@
260 258 android:text="@string/has_take_part_line"
261 259 android:textColor="#333333"
262 260 android:textSize="18sp" />
263   -
  261 +
264 262 <LinearLayout
265 263 android:layout_width="wrap_content"
266 264 android:layout_height="wrap_content"
... ... @@ -271,19 +269,18 @@
271 269 android:id="@+id/has_finish"
272 270 android:layout_width="wrap_content"
273 271 android:layout_height="wrap_content"
274   - android:textSize="18sp"
  272 + android:text="@string/finish"
275 273 android:textColor="#36C28D"
276   - android:text="@string/finish" />
  274 + android:textSize="18sp" />
277 275  
278 276 <TextView
279 277 android:id="@+id/no_finish"
280 278 android:layout_width="wrap_content"
281 279 android:layout_height="wrap_content"
282   - android:text="@string/no_finish"
283 280 android:layout_marginLeft="20dp"
  281 + android:text="@string/no_finish"
284 282 android:textColor="#333333"
285   - android:textSize="15sp"
286   - />
  283 + android:textSize="15sp" />
287 284 </LinearLayout>
288 285 </RelativeLayout>
289 286  
... ...