Commit 16b86181db382eb34e4412a0ced1d5b6e4caf5dd

Authored by 韩亚云
2 parents e57ec000 b3f8d752

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

moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/presenter/OnGoingFragmentPresenter.java
1 package com.cnlive.moudle.pedometer.frame.presenter; 1 package com.cnlive.moudle.pedometer.frame.presenter;
2 2
  3 +import android.content.Context;
  4 +import android.view.View;
  5 +
  6 +import com.cnlive.libs.base.logic.Logic;
  7 +import com.cnlive.libs.base.logic.callback.DataCallback;
  8 +import com.cnlive.libs.base.logic.callback.FailureCallback;
  9 +import com.cnlive.libs.base.logic.callback.StateCallback;
  10 +import com.cnlive.libs.base.logic.callback.SuccessCallback;
3 import com.cnlive.moudle.pedometer.frame.view.OnGoingFragmentView; 11 import com.cnlive.moudle.pedometer.frame.view.OnGoingFragmentView;
  12 +import com.cnlive.moudle.pedometer.net.ApiServiceRunLin;
  13 +import com.cnlive.moudle.pedometer.net.SubscriptionRequest;
  14 +import com.cnlive.moudle.pedometer.net.bean.BaseInfo;
  15 +import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo;
4 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; 16 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
5 17
  18 +import java.util.HashMap;
  19 +import java.util.Map;
  20 +
  21 +import io.reactivex.disposables.Disposable;
  22 +
  23 +import static com.cnlive.libs.base.logic.Config.STATE_IDLE;
  24 +import static com.cnlive.libs.base.logic.Config.STATE_LOAD;
  25 +
6 public class OnGoingFragmentPresenter extends MvpBasePresenter<OnGoingFragmentView> { 26 public class OnGoingFragmentPresenter extends MvpBasePresenter<OnGoingFragmentView> {
  27 + public void getRunRaceDetailInfo(Context context, String id, String userId, String state) {
  28 + //设置请求参数
  29 + Map<String, String> paramsMap = new HashMap<>();
  30 + //赛事id
  31 + paramsMap.put("id", id);
  32 + paramsMap.put("sid", userId);
  33 +// 0-用户使用 1-运营使用
  34 + paramsMap.put("state", state);
  35 + Logic.create(paramsMap).action(new Logic.Action<Map<String, String>, BaseInfo<RunRaceDetailInfo>>() {
  36 + @Override
  37 + public Disposable action(Map<String, String> stringStringMap, DataCallback<BaseInfo<RunRaceDetailInfo>> dataCallback) {
  38 + return SubscriptionRequest.service(ApiServiceRunLin.class, api -> api.getRunRaceDetail(stringStringMap)).subscribe(context, dataCallback);
  39 + }
  40 + }).<BaseInfo<RunRaceDetailInfo>>event()
  41 + .setStateCallback(new StateCallback() {
  42 + @Override
  43 + public void onState(int i) {
  44 + if (getView() == null) {
  45 + return;
  46 + }
  47 + if (i == STATE_LOAD) {
  48 + getView().showLoadingView();
  49 + } else if (i == STATE_IDLE) {
  50 + getView().hideLoadingView();
  51 + }
  52 + }
  53 + })
  54 + .setFailureCallback(new FailureCallback() {
  55 + @Override
  56 + public void onFailure(int code, String message) {
  57 + if (getView() == null) {
  58 + return;
  59 + }
  60 + getView().hideLoadingView();
  61 + getView().showRetryView(code, new View.OnClickListener() {
  62 + @Override
  63 + public void onClick(View view) {
  64 + getRunRaceDetailInfo(context, id, userId,state);
  65 + }
  66 + });
  67 + }
  68 + }).setSuccessCallback(new SuccessCallback<BaseInfo<RunRaceDetailInfo>>() {
  69 + @Override
  70 + public void onSuccess(BaseInfo<RunRaceDetailInfo> baseInfo) {
  71 + if (getView() == null) {
  72 + return;
  73 + }
  74 + if (baseInfo.getData() != null) {
  75 + getView().initView(baseInfo.getData());
  76 + }
  77 + }
  78 + }).start();
  79 +
  80 + }
7 } 81 }
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/presenter/RunningFinishFragmetPresenter.java
@@ -2,24 +2,17 @@ package com.cnlive.moudle.pedometer.frame.presenter; @@ -2,24 +2,17 @@ package com.cnlive.moudle.pedometer.frame.presenter;
2 2
3 import android.app.Activity; 3 import android.app.Activity;
4 import android.content.Context; 4 import android.content.Context;
5 -import android.graphics.Bitmap;  
6 -import android.os.Handler;  
7 import android.text.TextUtils; 5 import android.text.TextUtils;
8 import android.util.Log; 6 import android.util.Log;
9 -import android.view.View;  
10 import android.widget.Toast; 7 import android.widget.Toast;
11 8
12 -import com.baidu.mapapi.map.BaiduMap;  
13 import com.baidu.mapapi.model.LatLng; 9 import com.baidu.mapapi.model.LatLng;
14 import com.baidu.trace.LBSTraceClient; 10 import com.baidu.trace.LBSTraceClient;
15 import com.baidu.trace.model.SortType; 11 import com.baidu.trace.model.SortType;
16 -import com.cnlive.libs.base.logic.Event;  
17 import com.cnlive.libs.base.logic.Logic; 12 import com.cnlive.libs.base.logic.Logic;
18 import com.cnlive.libs.base.logic.callback.DataCallback; 13 import com.cnlive.libs.base.logic.callback.DataCallback;
19 import com.cnlive.libs.base.logic.callback.FailureCallback; 14 import com.cnlive.libs.base.logic.callback.FailureCallback;
20 -import com.cnlive.libs.base.logic.callback.StateCallback;  
21 import com.cnlive.libs.base.logic.callback.SuccessCallback; 15 import com.cnlive.libs.base.logic.callback.SuccessCallback;
22 -import com.cnlive.libs.base.util.ToastUtil;  
23 import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; 16 import com.cnlive.moudle.pedometer.commonInfo.CommonInfo;
24 import com.cnlive.moudle.pedometer.frame.view.RunningFinishFragmentView; 17 import com.cnlive.moudle.pedometer.frame.view.RunningFinishFragmentView;
25 import com.cnlive.moudle.pedometer.model.Constant; 18 import com.cnlive.moudle.pedometer.model.Constant;
@@ -27,36 +20,24 @@ import com.cnlive.moudle.pedometer.model.RunningFinishBean; @@ -27,36 +20,24 @@ import com.cnlive.moudle.pedometer.model.RunningFinishBean;
27 import com.cnlive.moudle.pedometer.net.ApiServiceRunLin; 20 import com.cnlive.moudle.pedometer.net.ApiServiceRunLin;
28 import com.cnlive.moudle.pedometer.net.SubscriptionRequest; 21 import com.cnlive.moudle.pedometer.net.SubscriptionRequest;
29 import com.cnlive.moudle.pedometer.net.bean.BaseInfo; 22 import com.cnlive.moudle.pedometer.net.bean.BaseInfo;
30 -import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo;  
31 -import com.cnlive.moudle.pedometer.service.StepService;  
32 import com.cnlive.moudle.pedometer.sql.entity.FailedEntity; 23 import com.cnlive.moudle.pedometer.sql.entity.FailedEntity;
33 import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity; 24 import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity;
34 import com.cnlive.moudle.pedometer.ui.activity.LineUpAgainActivity; 25 import com.cnlive.moudle.pedometer.ui.activity.LineUpAgainActivity;
35 import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; 26 import com.cnlive.moudle.pedometer.ui.widget.SelectDialog;
36 -import com.cnlive.moudle.pedometer.ui.widget.TipDialog;  
37 -import com.cnlive.moudle.pedometer.upload.UploadLogic;  
38 import com.cnlive.moudle.pedometer.utils.GsonUtil; 27 import com.cnlive.moudle.pedometer.utils.GsonUtil;
39 import com.cnlive.moudle.pedometer.utils.MyMapUtil; 28 import com.cnlive.moudle.pedometer.utils.MyMapUtil;
40 import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil; 29 import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil;
41 import com.cnlive.moudle.pedometer.utils.StepUtil; 30 import com.cnlive.moudle.pedometer.utils.StepUtil;
42 -import com.cnlive.moudle.pedometer.utils.TimeUtil;  
43 import com.example.moudle_pedometer.R; 31 import com.example.moudle_pedometer.R;
44 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; 32 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
45 33
46 -import java.io.File;  
47 -import java.io.FileOutputStream;  
48 -import java.text.SimpleDateFormat;  
49 import java.util.ArrayList; 34 import java.util.ArrayList;
50 -import java.util.Date;  
51 import java.util.HashMap; 35 import java.util.HashMap;
52 import java.util.List; 36 import java.util.List;
53 import java.util.Map; 37 import java.util.Map;
54 38
55 import io.reactivex.disposables.Disposable; 39 import io.reactivex.disposables.Disposable;
56 40
57 -import static com.cnlive.libs.base.logic.Config.STATE_IDLE;  
58 -import static com.cnlive.libs.base.logic.Config.STATE_LOAD;  
59 -  
60 public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinishFragmentView> { 41 public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinishFragmentView> {
61 private LBSTraceClient mClient = null; 42 private LBSTraceClient mClient = null;
62 private List<LatLng> importPoints; 43 private List<LatLng> importPoints;
@@ -88,8 +69,7 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter&lt;RunningFinis @@ -88,8 +69,7 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter&lt;RunningFinis
88 pace = runningFinishBean.getSpeed(); 69 pace = runningFinishBean.getSpeed();
89 } 70 }
90 // 路线图 71 // 路线图
91 - String roadmap = runningFinishBean.getRoadmap();  
92 - roadmap = ""; 72 + String roadmap = "";
93 //经纬度 73 //经纬度
94 String latLongitude = ""; 74 String latLongitude = "";
95 // 开始时间 75 // 开始时间
@@ -104,7 +84,7 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter&lt;RunningFinis @@ -104,7 +84,7 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter&lt;RunningFinis
104 isPause = "1"; 84 isPause = "1";
105 } 85 }
106 //继续时间 86 //继续时间
107 - String continueTime = ""; 87 + String continueTime = userStepEntity.getContinueTime() + "";
108 //是否完成 88 //是否完成
109 String completeStatus = runningFinishBean.getIsFinish(); 89 String completeStatus = runningFinishBean.getIsFinish();
110 //设置步数 90 //设置步数
@@ -202,7 +182,14 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter&lt;RunningFinis @@ -202,7 +182,14 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter&lt;RunningFinis
202 //查询当前用户的历史轨迹 182 //查询当前用户的历史轨迹
203 long startTime = userStepEntity.getStartTimeStamp(); 183 long startTime = userStepEntity.getStartTimeStamp();
204 //获取当前的时间戳(秒) 184 //获取当前的时间戳(秒)
205 - long endTime = userStepEntity.getFinishTimeStamp(); 185 + long endTime = 0;
  186 + if (userStepEntity.getPauseCount() == 0) {
  187 + //没有暂停
  188 + endTime = userStepEntity.getFinishTimeStamp();
  189 + } else {
  190 + //暂停了
  191 + endTime = userStepEntity.getUserPauseTimeStamp();
  192 + }
206 //获取当前的实体名称 193 //获取当前的实体名称
207 String entityName = CommonInfo.getUserId(context); 194 String entityName = CommonInfo.getUserId(context);
208 //打的重要点 195 //打的重要点
@@ -213,71 +200,128 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter&lt;RunningFinis @@ -213,71 +200,128 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter&lt;RunningFinis
213 if (mClient == null) { 200 if (mClient == null) {
214 mClient = new LBSTraceClient(context); 201 mClient = new LBSTraceClient(context);
215 } 202 }
  203 + List<LatLng> allResults = new ArrayList<>();
216 MyMapUtil.queryHistoryTrace(context, mClient, entityName, startTime, endTime, new MyMapUtil.CallBack() { 204 MyMapUtil.queryHistoryTrace(context, mClient, entityName, startTime, endTime, new MyMapUtil.CallBack() {
217 @Override 205 @Override
218 public void success(List<LatLng> resultPoints) { 206 public void success(List<LatLng> resultPoints) {
219 if (resultPoints != null) { 207 if (resultPoints != null) {
220 if (getView() != null) { 208 if (getView() != null) {
  209 + allResults.addAll(resultPoints);
221 QMUITipDialogUtil.dismessDialog(); 210 QMUITipDialogUtil.dismessDialog();
222 - MyMapUtil.drawHistoryTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, R.drawable.icon_start, R.drawable.icon_end);  
223 - //先判断是否到达终点  
224 - if (!userStepEntity.getIsArriveEndPoint()) {  
225 - runningFinishBean.setIsFinish("0"); 211 + //判断用户是否点击暂停按钮
  212 + if (userStepEntity.getPauseCount() == 0) {
  213 + MyMapUtil.drawHistoryTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, R.drawable.icon_start, R.drawable.icon_end);
  214 + //没有点击暂停
  215 + //先判断是否到达终点
  216 + checkUserIsFinish(resultPoints, userStepEntity, runningFinishBean, context);
  217 + saveRouteData(context, userStepEntity, runningFinishBean);
226 } else { 218 } else {
227 - if (importPoints != null) {  
228 - //判断是否完成  
229 - boolean isFinish = MyMapUtil.checkIsFinishTrace(importPoints, resultPoints, Constant.PASS_RATE);  
230 - if (isFinish) {  
231 - Toast.makeText(context, "完成", Toast.LENGTH_LONG).show();  
232 - runningFinishBean.setIsFinish("1");  
233 - } else {  
234 - Toast.makeText(context, "没有完成", Toast.LENGTH_LONG).show();  
235 - runningFinishBean.setIsFinish("0");  
236 - }  
237 - } 219 + MyMapUtil.drawHistoryTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, R.drawable.icon_start, 0);
238 } 220 }
239 - saveRouteData(context, userStepEntity, runningFinishBean);  
240 221
  222 + //如果点击暂停
  223 + if (userStepEntity.getPauseCount() != 0) {
  224 + long contineTime = userStepEntity.getContinueTime();
  225 + long finishTime = userStepEntity.getFinishTimeStamp();
  226 + //开始查询
  227 + MyMapUtil.queryHistoryTrace(context, mClient, entityName, contineTime, finishTime, new MyMapUtil.CallBack() {
  228 + @Override
  229 + public void success(List<LatLng> resultPoints) {
  230 + if (null != resultPoints) {
  231 + allResults.addAll(resultPoints);
  232 + //判断用户是否完成
  233 + if (importPoints != null) {
  234 + //先判断是否到达终点
  235 + checkUserIsFinish(resultPoints, userStepEntity, runningFinishBean, context);
  236 + saveRouteData(context, userStepEntity, runningFinishBean);
  237 + }
  238 +
  239 + } else {
  240 + //查询失败
  241 + QMUITipDialogUtil.dismessDialog();
  242 + queryTraceFaile(context, userStepEntity, runningFinishBean);
  243 + //
  244 + }
  245 + }
  246 + });
  247 + }
241 } 248 }
242 } 249 }
243 //查询失败 250 //查询失败
244 else { 251 else {
245 QMUITipDialogUtil.dismessDialog(); 252 QMUITipDialogUtil.dismessDialog();
246 - if (failTraceDialog == null) {  
247 - failTraceDialog = new SelectDialog(context, "获取轨迹失败,是否重试?", "重试", new SelectDialog.DialogInterface() {  
248 - @Override  
249 - public void onClick(SelectDialog dialog) {  
250 - dialog.dismiss();  
251 - queryHistoryTrace(context, userStepEntity, runningFinishBean);  
252 - }  
253 - }, "暂存", new SelectDialog.DialogInterface() {  
254 - @Override  
255 - public void onClick(SelectDialog dialog) {  
256 - dialog.dismiss();  
257 - StepUtil.clearRunData(context, CommonInfo.getUserId(context));  
258 - CommonInfo.reset(context);  
259 - //跳转到上传失败列表  
260 - LineUpAgainActivity.newInstance(context);  
261 - //关闭当前窗口  
262 - context.finish(); 253 + queryTraceFaile(context, userStepEntity, runningFinishBean);
  254 + }
  255 + }
  256 + });
263 257
264 - }  
265 - });  
266 - failTraceDialog.setCanceledOnTouchOutside(false);  
267 - failTraceDialog.setCancelable(false);  
268 - if (!failTraceDialog.isShowing()) {  
269 - failTraceDialog.show();  
270 - } 258 + }
271 259
272 - } else {  
273 - if (!failTraceDialog.isShowing()) {  
274 - failTraceDialog.show();  
275 - }  
276 - } 260 + /**
  261 + * 判断用户是否完成
  262 + *
  263 + * @param resultPoints
  264 + * @param userStepEntity
  265 + * @param runningFinishBean
  266 + * @param context
  267 + */
  268 + public void checkUserIsFinish(List<LatLng> resultPoints, UserStepEntity userStepEntity, RunningFinishBean runningFinishBean, Activity context) {
  269 + if (!userStepEntity.getIsArriveEndPoint()) {
  270 + runningFinishBean.setIsFinish("0");
  271 + } else {
  272 + if (importPoints != null) {
  273 + //判断是否完成
  274 + boolean isFinish = MyMapUtil.checkIsFinishTrace(importPoints, resultPoints, Constant.PASS_RATE);
  275 + if (isFinish) {
  276 + Toast.makeText(context, "完成", Toast.LENGTH_LONG).show();
  277 + runningFinishBean.setIsFinish("1");
  278 + } else {
  279 + Toast.makeText(context, "没有完成", Toast.LENGTH_LONG).show();
  280 + runningFinishBean.setIsFinish("0");
277 } 281 }
278 } 282 }
279 - }); 283 + }
  284 + }
280 285
  286 + /**
  287 + * 查询历史轨迹失败
  288 + *
  289 + * @param context
  290 + * @param userStepEntity
  291 + * @param runningFinishBean
  292 + */
  293 + public void queryTraceFaile(Activity context, UserStepEntity userStepEntity, RunningFinishBean runningFinishBean) {
  294 + if (failTraceDialog == null) {
  295 + failTraceDialog = new SelectDialog(context, "获取轨迹失败,是否重试?", "重试", new SelectDialog.DialogInterface() {
  296 + @Override
  297 + public void onClick(SelectDialog dialog) {
  298 + dialog.dismiss();
  299 + queryHistoryTrace(context, userStepEntity, runningFinishBean);
  300 + }
  301 + }, "暂存", new SelectDialog.DialogInterface() {
  302 + @Override
  303 + public void onClick(SelectDialog dialog) {
  304 + dialog.dismiss();
  305 + StepUtil.clearRunData(context, CommonInfo.getUserId(context));
  306 + CommonInfo.reset(context);
  307 + //跳转到上传失败列表
  308 + LineUpAgainActivity.newInstance(context);
  309 + //关闭当前窗口
  310 + context.finish();
  311 +
  312 + }
  313 + });
  314 + failTraceDialog.setCanceledOnTouchOutside(false);
  315 + failTraceDialog.setCancelable(false);
  316 + if (!failTraceDialog.isShowing()) {
  317 + failTraceDialog.show();
  318 + }
  319 +
  320 + } else {
  321 + if (!failTraceDialog.isShowing()) {
  322 + failTraceDialog.show();
  323 + }
  324 + }
281 } 325 }
282 326
283 327
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/MyRecordView.java
@@ -7,6 +7,7 @@ import com.cnlive.libs.base.util.AlertUtil; @@ -7,6 +7,7 @@ import com.cnlive.libs.base.util.AlertUtil;
7 import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; 7 import com.cnlive.moudle.pedometer.commonInfo.CommonInfo;
8 import com.cnlive.moudle.pedometer.net.bean.BaseInfo; 8 import com.cnlive.moudle.pedometer.net.bean.BaseInfo;
9 import com.cnlive.moudle.pedometer.net.bean.MyRecordInfo; 9 import com.cnlive.moudle.pedometer.net.bean.MyRecordInfo;
  10 +import com.cnlive.moudle.pedometer.ui.activity.OnGoingActivity;
10 import com.cnlive.moudle.pedometer.ui.activity.RunRaceDetailActivity; 11 import com.cnlive.moudle.pedometer.ui.activity.RunRaceDetailActivity;
11 import com.cnlive.moudle.pedometer.ui.adapter.MyRecordAdapter; 12 import com.cnlive.moudle.pedometer.ui.adapter.MyRecordAdapter;
12 import com.cnlive.moudle.pedometer.ui.fragment.MyRecordFragment; 13 import com.cnlive.moudle.pedometer.ui.fragment.MyRecordFragment;
@@ -28,6 +29,7 @@ public class MyRecordView implements MvpView { @@ -28,6 +29,7 @@ public class MyRecordView implements MvpView {
28 public QMUITipDialog loadingDiaog; 29 public QMUITipDialog loadingDiaog;
29 private List<MyRecordInfo.ListBean> list = new ArrayList<>(); 30 private List<MyRecordInfo.ListBean> list = new ArrayList<>();
30 private MyRecordAdapter adapter; 31 private MyRecordAdapter adapter;
  32 +
31 public MyRecordView(MyRecordFragment fragment) { 33 public MyRecordView(MyRecordFragment fragment) {
32 this.fragment = fragment; 34 this.fragment = fragment;
33 loadingDiaog = new QMUITipDialog.Builder(fragment.getActivity()) 35 loadingDiaog = new QMUITipDialog.Builder(fragment.getActivity())
@@ -37,39 +39,44 @@ public class MyRecordView implements MvpView { @@ -37,39 +39,44 @@ public class MyRecordView implements MvpView {
37 } 39 }
38 40
39 41
40 - public void onSuccess(BaseInfo<MyRecordInfo> myRecordInfoBaseInfo){ 42 + public void onSuccess(BaseInfo<MyRecordInfo> myRecordInfoBaseInfo) {
41 hideLoading(); 43 hideLoading();
42 - if(fragment.currentPage == 1){ 44 + if (fragment.currentPage == 1) {
43 list.clear(); 45 list.clear();
44 list.addAll(myRecordInfoBaseInfo.getData().getList()); 46 list.addAll(myRecordInfoBaseInfo.getData().getList());
45 - if(adapter == null){  
46 - adapter = new MyRecordAdapter(list,fragment.state,fragment.getActivity()); 47 + if (adapter == null) {
  48 + adapter = new MyRecordAdapter(list, fragment.state, fragment.getActivity());
47 fragment.binding.myRecordRecy.setAdapter(adapter); 49 fragment.binding.myRecordRecy.setAdapter(adapter);
48 adapter.setClickListener(new MyRecordAdapter.OnClickListener() { 50 adapter.setClickListener(new MyRecordAdapter.OnClickListener() {
49 @Override 51 @Override
50 public void onClickListener(MyRecordInfo.ListBean bean, int position) { 52 public void onClickListener(MyRecordInfo.ListBean bean, int position) {
51 - RunRaceDetailActivity.startActivity(fragment.getActivity(),bean.getId()+"",null,null,null,null); 53 + if ("0".equals(fragment.state)) {
  54 + RunRaceDetailActivity.startActivity(fragment.getActivity(), bean.getId() + "", null, null, null, null);
  55 + } else {
  56 + OnGoingActivity.startActivity(fragment.getActivity(), bean.getId() + "", null, null, null, null);
  57 +
  58 + }
52 } 59 }
53 }); 60 });
54 - }else { 61 + } else {
55 adapter.notifyDataSetChanged(); 62 adapter.notifyDataSetChanged();
56 } 63 }
57 } 64 }
58 65
59 - if(list.size() != 0){ 66 + if (list.size() != 0) {
60 fragment.binding.empty.setVisibility(View.GONE); 67 fragment.binding.empty.setVisibility(View.GONE);
61 fragment.binding.emptyRy.setVisibility(View.GONE); 68 fragment.binding.emptyRy.setVisibility(View.GONE);
62 fragment.binding.refreshLayout.setVisibility(View.VISIBLE); 69 fragment.binding.refreshLayout.setVisibility(View.VISIBLE);
63 - }else { 70 + } else {
64 showEmpty(); 71 showEmpty();
65 } 72 }
66 73
67 - if(myRecordInfoBaseInfo.getData().getList().size() < fragment.pageSize){ 74 + if (myRecordInfoBaseInfo.getData().getList().size() < fragment.pageSize) {
68 fragment.binding.refreshLayout.setEnableLoadMore(false); 75 fragment.binding.refreshLayout.setEnableLoadMore(false);
69 - }else { 76 + } else {
70 fragment.binding.refreshLayout.setEnableLoadMore(true); 77 fragment.binding.refreshLayout.setEnableLoadMore(true);
71 } 78 }
72 - if(fragment.currentPage > 1){ 79 + if (fragment.currentPage > 1) {
73 list.addAll(myRecordInfoBaseInfo.getData().getList()); 80 list.addAll(myRecordInfoBaseInfo.getData().getList());
74 adapter.notifyDataSetChanged(); 81 adapter.notifyDataSetChanged();
75 } 82 }
@@ -77,13 +84,13 @@ public class MyRecordView implements MvpView { @@ -77,13 +84,13 @@ public class MyRecordView implements MvpView {
77 fragment.binding.refreshLayout.finishLoadMore(); 84 fragment.binding.refreshLayout.finishLoadMore();
78 } 85 }
79 86
80 - public void initView(){ 87 + public void initView() {
81 fragment.binding.refreshLayout.setRefreshHeader(new ClassicsHeader(fragment.getActivity())); 88 fragment.binding.refreshLayout.setRefreshHeader(new ClassicsHeader(fragment.getActivity()));
82 fragment.binding.refreshLayout.setRefreshFooter(new ClassicsFooter(fragment.getActivity())); 89 fragment.binding.refreshLayout.setRefreshFooter(new ClassicsFooter(fragment.getActivity()));
83 fragment.binding.myRecordRecy.setLayoutManager(new LinearLayoutManager(fragment.getActivity())); 90 fragment.binding.myRecordRecy.setLayoutManager(new LinearLayoutManager(fragment.getActivity()));
84 } 91 }
85 92
86 - public void showErr(String msg){ 93 + public void showErr(String msg) {
87 fragment.binding.refreshLayout.finishRefresh(); 94 fragment.binding.refreshLayout.finishRefresh();
88 fragment.binding.refreshLayout.finishLoadMore(); 95 fragment.binding.refreshLayout.finishLoadMore();
89 if (list.size() == 0) { 96 if (list.size() == 0) {
@@ -96,7 +103,7 @@ public class MyRecordView implements MvpView { @@ -96,7 +103,7 @@ public class MyRecordView implements MvpView {
96 @Override 103 @Override
97 public void onClick(View v) { 104 public void onClick(View v) {
98 fragment.currentPage = 1; 105 fragment.currentPage = 1;
99 - fragment.getPresenter().setData(fragment.getActivity(), CommonInfo.getUserId(fragment.getActivity()),fragment.state,fragment.currentPage,fragment.pageSize); 106 + fragment.getPresenter().setData(fragment.getActivity(), CommonInfo.getUserId(fragment.getActivity()), fragment.state, fragment.currentPage, fragment.pageSize);
100 } 107 }
101 }); 108 });
102 fragment.binding.empty.setLoadingShowing(false); 109 fragment.binding.empty.setLoadingShowing(false);
@@ -114,7 +121,7 @@ public class MyRecordView implements MvpView { @@ -114,7 +121,7 @@ public class MyRecordView implements MvpView {
114 AlertUtil.showDeftToast(fragment.getActivity(), message); 121 AlertUtil.showDeftToast(fragment.getActivity(), message);
115 } 122 }
116 123
117 - public void showEmpty(){ 124 + public void showEmpty() {
118 fragment.binding.empty.setVisibility(View.GONE); 125 fragment.binding.empty.setVisibility(View.GONE);
119 fragment.binding.refreshLayout.setVisibility(View.GONE); 126 fragment.binding.refreshLayout.setVisibility(View.GONE);
120 fragment.binding.emptyRy.setVisibility(View.VISIBLE); 127 fragment.binding.emptyRy.setVisibility(View.VISIBLE);
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/OnGoingFragmentView.java
@@ -2,16 +2,23 @@ package com.cnlive.moudle.pedometer.frame.view; @@ -2,16 +2,23 @@ package com.cnlive.moudle.pedometer.frame.view;
2 2
3 import android.app.Activity; 3 import android.app.Activity;
4 import android.content.Context; 4 import android.content.Context;
  5 +import android.graphics.Bitmap;
  6 +import android.graphics.BitmapFactory;
5 import android.text.TextUtils; 7 import android.text.TextUtils;
6 import android.util.Log; 8 import android.util.Log;
7 import android.view.View; 9 import android.view.View;
8 import android.widget.LinearLayout; 10 import android.widget.LinearLayout;
9 11
10 import com.alibaba.android.arouter.launcher.ARouter; 12 import com.alibaba.android.arouter.launcher.ARouter;
  13 +import com.baidu.location.LocationClient;
  14 +import com.baidu.location.LocationClientOption;
11 import com.baidu.mapapi.map.BaiduMap; 15 import com.baidu.mapapi.map.BaiduMap;
  16 +import com.baidu.mapapi.map.BitmapDescriptorFactory;
12 import com.baidu.mapapi.map.MapView; 17 import com.baidu.mapapi.map.MapView;
  18 +import com.baidu.mapapi.map.MyLocationConfiguration;
13 import com.baidu.mapapi.map.UiSettings; 19 import com.baidu.mapapi.map.UiSettings;
14 import com.baidu.mapapi.model.LatLng; 20 import com.baidu.mapapi.model.LatLng;
  21 +import com.baidu.mapapi.search.route.RoutePlanSearch;
15 import com.baidu.mapapi.utils.DistanceUtil; 22 import com.baidu.mapapi.utils.DistanceUtil;
16 import com.baidu.trace.LBSTraceClient; 23 import com.baidu.trace.LBSTraceClient;
17 import com.baidu.trace.model.SortType; 24 import com.baidu.trace.model.SortType;
@@ -25,6 +32,7 @@ import com.cnlive.moudle.pedometer.ui.activity.TakePartActivity; @@ -25,6 +32,7 @@ import com.cnlive.moudle.pedometer.ui.activity.TakePartActivity;
25 import com.cnlive.moudle.pedometer.ui.fragment.OnGoingFragment; 32 import com.cnlive.moudle.pedometer.ui.fragment.OnGoingFragment;
26 import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; 33 import com.cnlive.moudle.pedometer.ui.widget.SelectDialog;
27 import com.cnlive.moudle.pedometer.ui.widget.TipDialog; 34 import com.cnlive.moudle.pedometer.ui.widget.TipDialog;
  35 +import com.cnlive.moudle.pedometer.utils.BitmapUtil;
28 import com.cnlive.moudle.pedometer.utils.GsonUtil; 36 import com.cnlive.moudle.pedometer.utils.GsonUtil;
29 import com.cnlive.moudle.pedometer.utils.MyMapUtil; 37 import com.cnlive.moudle.pedometer.utils.MyMapUtil;
30 import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil; 38 import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil;
@@ -45,6 +53,7 @@ public class OnGoingFragmentView implements MvpView { @@ -45,6 +53,7 @@ public class OnGoingFragmentView implements MvpView {
45 private MapView mMapView; 53 private MapView mMapView;
46 private UiSettings mUiSettings; 54 private UiSettings mUiSettings;
47 public RunRaceDetailInfo runRaceDetailInfo; 55 public RunRaceDetailInfo runRaceDetailInfo;
  56 + private LBSTraceClient mClient = null;
48 57
49 public OnGoingFragmentView(OnGoingFragment fragment) { 58 public OnGoingFragmentView(OnGoingFragment fragment) {
50 this.fragment = fragment; 59 this.fragment = fragment;
@@ -68,7 +77,22 @@ public class OnGoingFragmentView implements MvpView { @@ -68,7 +77,22 @@ public class OnGoingFragmentView implements MvpView {
68 startTime = Long.parseLong(runRaceDetailInfo.getStartTime()); 77 startTime = Long.parseLong(runRaceDetailInfo.getStartTime());
69 endTime = Long.parseLong(runRaceDetailInfo.getEndTime()); 78 endTime = Long.parseLong(runRaceDetailInfo.getEndTime());
70 //todo 注意后续查询历史轨迹的时候,必须查数据库中的时间,因为涉及到历史运动恢复,所以不能用这个sp文件中的,这里设置,只是为了在服务启动成功后, 79 //todo 注意后续查询历史轨迹的时候,必须查数据库中的时间,因为涉及到历史运动恢复,所以不能用这个sp文件中的,这里设置,只是为了在服务启动成功后,
  80 + mClient = new LBSTraceClient(getContext());
  81 + //获取轨迹
  82 + if (mClient != null) {
  83 + MyMapUtil.queryHistoryTrace(getContext(), mClient, runRaceDetailInfo.getEntityName(), startTime, endTime, new MyMapUtil.CallBack() {
  84 + @Override
  85 + public void success(List<LatLng> resultPoints) {
  86 + if (resultPoints != null && resultPoints.size() > 1) {
  87 + MyMapUtil.drawServerLineTrack(getContext(), baiduMap, resultPoints, SortType.asc, R.color.green_round, R.drawable.icon_start, R.drawable.icon_end);
  88 + //设置地图自动缩放
  89 + MyMapUtil.setMapAutoZoom(baiduMap, resultPoints, -1.5f);
71 90
  91 + }
  92 + }
  93 + });
  94 +
  95 + }
72 //显示地图 96 //显示地图
73 fragment.binding.mapView.setVisibility(View.VISIBLE); 97 fragment.binding.mapView.setVisibility(View.VISIBLE);
74 //显示底部滑动卡片 98 //显示底部滑动卡片
@@ -83,15 +107,16 @@ public class OnGoingFragmentView implements MvpView { @@ -83,15 +107,16 @@ public class OnGoingFragmentView implements MvpView {
83 @Override 107 @Override
84 public void onPanelSlide(View panel, float slideOffset) { 108 public void onPanelSlide(View panel, float slideOffset) {
85 //设置顶层卡片特效 109 //设置顶层卡片特效
86 -// if (slideOffset > 0.6) {  
87 -// fragment.binding.llTop.setVisibility(View.VISIBLE);  
88 -//// ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) fragment.binding.scrollView.getLayoutParams();  
89 -//// params.topMargin = ScreenUtil.dip2px(getContext(), 50);  
90 -//// fragment.binding.scrollView.setLayoutParams(params);  
91 -// } else {  
92 -// fragment.binding.llTop.setVisibility(View.GONE);  
93 -// }  
94 - if (slideOffset <= 0.6) { 110 + if (slideOffset > 0.7) {
  111 + double alpha = (255 / (1 - 0.6)) * (slideOffset - 0.6);
  112 + if (alpha > 60) {
  113 + fragment.binding.flTop.getBackground().setAlpha((int) alpha);
  114 + fragment.binding.flTop.setVisibility(View.VISIBLE);
  115 + QMUIStatusBarHelper.setStatusBarDarkMode(fragment.getActivity());
  116 + StatusBarUtil2.setColor(fragment.getActivity(), getContext().getResources().getColor(R.color.run_main_bg), 0);
  117 +
  118 + }
  119 + } else {
95 if (fragment.binding.flTop.getVisibility() == View.VISIBLE) { 120 if (fragment.binding.flTop.getVisibility() == View.VISIBLE) {
96 QMUIStatusBarHelper.setStatusBarLightMode(fragment.getActivity()); 121 QMUIStatusBarHelper.setStatusBarLightMode(fragment.getActivity());
97 StatusBarUtil2.setColor(fragment.getActivity(), getContext().getResources().getColor(R.color.white), 0); 122 StatusBarUtil2.setColor(fragment.getActivity(), getContext().getResources().getColor(R.color.white), 0);
@@ -147,6 +172,7 @@ public class OnGoingFragmentView implements MvpView { @@ -147,6 +172,7 @@ public class OnGoingFragmentView implements MvpView {
147 172
148 } 173 }
149 } else if (previousState == SlidingUpPanelLayout.PanelState.DRAGGING && newState == SlidingUpPanelLayout.PanelState.EXPANDED) { 174 } else if (previousState == SlidingUpPanelLayout.PanelState.DRAGGING && newState == SlidingUpPanelLayout.PanelState.EXPANDED) {
  175 +
150 if (fragment.binding.flTop.getVisibility() != View.VISIBLE) { 176 if (fragment.binding.flTop.getVisibility() != View.VISIBLE) {
151 QMUIStatusBarHelper.setStatusBarDarkMode(fragment.getActivity()); 177 QMUIStatusBarHelper.setStatusBarDarkMode(fragment.getActivity());
152 StatusBarUtil2.setColor(fragment.getActivity(), getContext().getResources().getColor(R.color.run_main_bg), 0); 178 StatusBarUtil2.setColor(fragment.getActivity(), getContext().getResources().getColor(R.color.run_main_bg), 0);
@@ -156,14 +182,12 @@ public class OnGoingFragmentView implements MvpView { @@ -156,14 +182,12 @@ public class OnGoingFragmentView implements MvpView {
156 } else if (previousState == SlidingUpPanelLayout.PanelState.EXPANDED && newState == SlidingUpPanelLayout.PanelState.DRAGGING) { 182 } else if (previousState == SlidingUpPanelLayout.PanelState.EXPANDED && newState == SlidingUpPanelLayout.PanelState.DRAGGING) {
157 QMUIStatusBarHelper.setStatusBarLightMode(fragment.getActivity()); 183 QMUIStatusBarHelper.setStatusBarLightMode(fragment.getActivity());
158 StatusBarUtil2.setColor(fragment.getActivity(), getContext().getResources().getColor(R.color.white), 0); 184 StatusBarUtil2.setColor(fragment.getActivity(), getContext().getResources().getColor(R.color.white), 0);
159 -  
160 if (fragment.binding.flTop.getVisibility() != View.GONE) { 185 if (fragment.binding.flTop.getVisibility() != View.GONE) {
161 fragment.binding.flTop.setVisibility(View.GONE); 186 fragment.binding.flTop.setVisibility(View.GONE);
162 } 187 }
163 } else if (previousState == SlidingUpPanelLayout.PanelState.DRAGGING && newState == SlidingUpPanelLayout.PanelState.ANCHORED) { 188 } else if (previousState == SlidingUpPanelLayout.PanelState.DRAGGING && newState == SlidingUpPanelLayout.PanelState.ANCHORED) {
164 QMUIStatusBarHelper.setStatusBarLightMode(fragment.getActivity()); 189 QMUIStatusBarHelper.setStatusBarLightMode(fragment.getActivity());
165 StatusBarUtil2.setColor(fragment.getActivity(), getContext().getResources().getColor(R.color.white), 0); 190 StatusBarUtil2.setColor(fragment.getActivity(), getContext().getResources().getColor(R.color.white), 0);
166 -  
167 if (fragment.binding.flTop.getVisibility() != View.GONE) { 191 if (fragment.binding.flTop.getVisibility() != View.GONE) {
168 fragment.binding.flTop.setVisibility(View.GONE); 192 fragment.binding.flTop.setVisibility(View.GONE);
169 } 193 }
@@ -191,9 +215,9 @@ public class OnGoingFragmentView implements MvpView { @@ -191,9 +215,9 @@ public class OnGoingFragmentView implements MvpView {
191 fragment.binding.includeStreet.tvRaceTitle.setText(runRaceDetailInfo.getTitle()); 215 fragment.binding.includeStreet.tvRaceTitle.setText(runRaceDetailInfo.getTitle());
192 //根据标题字数动态设置卡片高度 216 //根据标题字数动态设置卡片高度
193 if (runRaceDetailInfo.getTitle().length() > 19) { 217 if (runRaceDetailInfo.getTitle().length() > 19) {
194 - fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 200)); 218 + fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 162));
195 } else { 219 } else {
196 - fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 181)); 220 + fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 140));
197 } 221 }
198 fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); 222 fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
199 } 223 }
@@ -336,4 +360,75 @@ public class OnGoingFragmentView implements MvpView { @@ -336,4 +360,75 @@ public class OnGoingFragmentView implements MvpView {
336 }); 360 });
337 } 361 }
338 } 362 }
  363 +
  364 + public void initMap() {
  365 + //隐藏底部滑动卡片
  366 + fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.HIDDEN);
  367 + this.mMapView = fragment.binding.mapView;
  368 + if (baiduMap == null) {
  369 + baiduMap = mMapView.getMap();
  370 + }
  371 + if (mUiSettings == null) {
  372 + mUiSettings = baiduMap.getUiSettings();
  373 + }
  374 + //启动所有手势
  375 + mUiSettings.setAllGesturesEnabled(true);
  376 + //通过设置enable为true或false 选择是否显示缩放按钮
  377 + mMapView.showZoomControls(false);
  378 + mUiSettings.setEnlargeCenterWithDoubleClickEnable(true);
  379 + //隐藏自带的指南针,改用自定义指南针 杨帅
  380 + baiduMap.getUiSettings().setCompassEnabled(true);
  381 + //显示定位图层
  382 + baiduMap.setMyLocationEnabled(false);
  383 + }
  384 +
  385 + /**
  386 + * 显示loading
  387 + */
  388 + public void showLoadingView() {
  389 + if (fragment.binding.emptyLayout == null) {
  390 + return;
  391 + }
  392 + fragment.binding.emptyLayout.show(true);
  393 + }
  394 +
  395 + /**
  396 + * 隐藏loading
  397 + */
  398 + public void hideLoadingView() {
  399 + if (fragment.binding.emptyLayout == null) {
  400 + return;
  401 + }
  402 + fragment.binding.emptyLayout.hide();
  403 + }
  404 +
  405 + /**
  406 + * 显示重试页面
  407 + *
  408 + * @param errorCode
  409 + * @param listener
  410 + */
  411 + public void showRetryView(int errorCode, View.OnClickListener listener) {
  412 + if (getContext() == null) {
  413 + return;
  414 + }
  415 + //隐藏地图
  416 + fragment.binding.mapView.setVisibility(View.GONE);
  417 + //显示空视图
  418 + fragment.binding.emptyLayout.setVisibility(View.VISIBLE);
  419 + //隐藏底部卡片
  420 + fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.HIDDEN);
  421 + if (fragment.binding.emptyLayout == null) return;
  422 + String titleText = "";
  423 + String detailText = "";
  424 + if (errorCode == -3) {
  425 + titleText = getContext().getString(R.string.msg_failed_network_title);
  426 + detailText = getContext().getString(R.string.msg_failed_network_detail);
  427 + } else {
  428 + titleText = getContext().getString(R.string.msg_failed_other_title);
  429 + detailText = getContext().getString(R.string.msg_failed_other_detail);
  430 + }
  431 + fragment.binding.emptyLayout.show(false, titleText, detailText, getContext().getString(R.string.retry), R.drawable.wufalianjie, listener);
  432 + }
  433 +
339 } 434 }
340 \ No newline at end of file 435 \ No newline at end of file
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/RunRaceDetailFragmentView.java
@@ -15,6 +15,7 @@ import android.text.TextUtils; @@ -15,6 +15,7 @@ import android.text.TextUtils;
15 import android.util.Log; 15 import android.util.Log;
16 import android.view.View; 16 import android.view.View;
17 import android.view.ViewGroup; 17 import android.view.ViewGroup;
  18 +import android.view.ViewTreeObserver;
18 import android.widget.LinearLayout; 19 import android.widget.LinearLayout;
19 import android.widget.Toast; 20 import android.widget.Toast;
20 21
@@ -353,6 +354,14 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { @@ -353,6 +354,14 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener {
353 //设置标题 354 //设置标题
354 if (!TextUtils.isEmpty(runRaceDetailInfo.getTitle())) { 355 if (!TextUtils.isEmpty(runRaceDetailInfo.getTitle())) {
355 fragment.binding.includeStreet.tvRaceTitle.setText(runRaceDetailInfo.getTitle()); 356 fragment.binding.includeStreet.tvRaceTitle.setText(runRaceDetailInfo.getTitle());
  357 + fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
  358 + @Override
  359 + public boolean onPreDraw() {
  360 + Log.e(TAG, "initView: "+ fragment.binding.includeStreet.tvRaceTitle.getLineCount() );
  361 + fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().removeOnPreDrawListener(this);
  362 + return false;
  363 + }
  364 + });
356 //根据标题字数动态设置卡片高度 365 //根据标题字数动态设置卡片高度
357 if (runRaceDetailInfo.getTitle().length() > 19) { 366 if (runRaceDetailInfo.getTitle().length() > 19) {
358 fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 200)); 367 fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 200));
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/activity/OnGoingActivity.java
1 package com.cnlive.moudle.pedometer.ui.activity; 1 package com.cnlive.moudle.pedometer.ui.activity;
2 2
  3 +import android.app.Activity;
  4 +import android.content.Intent;
  5 +import android.os.Bundle;
  6 +
  7 +import com.cnlive.libs.base.ui.QMUIFragment;
3 import com.cnlive.libs.base.ui.QMUIFragmentActivity; 8 import com.cnlive.libs.base.ui.QMUIFragmentActivity;
  9 +import com.cnlive.moudle.pedometer.ui.fragment.OnGoingFragment;
  10 +import com.cnlive.moudle.pedometer.ui.fragment.RunRaceDetailFragment;
4 import com.example.moudle_pedometer.R; 11 import com.example.moudle_pedometer.R;
5 12
6 /** 13 /**
@@ -11,4 +18,32 @@ public class OnGoingActivity extends QMUIFragmentActivity { @@ -11,4 +18,32 @@ public class OnGoingActivity extends QMUIFragmentActivity {
11 protected int getContextViewId() { 18 protected int getContextViewId() {
12 return R.id.fragment_ongoing; 19 return R.id.fragment_ongoing;
13 } 20 }
  21 +
  22 + @Override
  23 + protected void onCreate(Bundle savedInstanceState) {
  24 + super.onCreate(savedInstanceState);
  25 + String eventId = getIntent().getExtras().getString("eventId");
  26 + if (null != eventId) {
  27 + addFragment(OnGoingFragment.newInstance(eventId));
  28 + }
  29 + }
  30 +
  31 + public static void startActivity(Activity activity, String eventId, String userId, String userIcon, String userName, String userPhone) {
  32 + Intent intent = new Intent(activity, OnGoingActivity.class);
  33 + intent.putExtra("eventId", eventId);
  34 + intent.putExtra("userId", userId);
  35 + intent.putExtra("userIcon", userIcon);
  36 + intent.putExtra("userName", userName);
  37 + intent.putExtra("userPhone", userPhone);
  38 + activity.startActivity(intent);
  39 + }
  40 +
  41 + private void addFragment(QMUIFragment fragment) {
  42 + getSupportFragmentManager().beginTransaction()
  43 + .add(getContextViewId(), fragment, fragment.getClass().getSimpleName())
  44 + .addToBackStack(fragment.getClass().getSimpleName())
  45 + .commit();
  46 + }
  47 +
  48 +
14 } 49 }
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/fragment/OnGoingFragment.java
@@ -2,14 +2,29 @@ package com.cnlive.moudle.pedometer.ui.fragment; @@ -2,14 +2,29 @@ package com.cnlive.moudle.pedometer.ui.fragment;
2 2
3 import android.os.Bundle; 3 import android.os.Bundle;
4 import android.support.annotation.Nullable; 4 import android.support.annotation.Nullable;
  5 +import android.text.TextUtils;
5 import android.view.View; 6 import android.view.View;
6 7
7 import com.cnlive.libs.base.ui.QMUIFragment; 8 import com.cnlive.libs.base.ui.QMUIFragment;
  9 +import com.cnlive.libs.base.util.StatusBarUtil2;
  10 +import com.cnlive.moudle.pedometer.commonInfo.CommonInfo;
8 import com.cnlive.moudle.pedometer.frame.presenter.OnGoingFragmentPresenter; 11 import com.cnlive.moudle.pedometer.frame.presenter.OnGoingFragmentPresenter;
9 import com.cnlive.moudle.pedometer.frame.view.OnGoingFragmentView; 12 import com.cnlive.moudle.pedometer.frame.view.OnGoingFragmentView;
  13 +import com.example.moudle_pedometer.R;
10 import com.example.moudle_pedometer.databinding.FragmentRunRaceDetailBinding; 14 import com.example.moudle_pedometer.databinding.FragmentRunRaceDetailBinding;
  15 +import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
11 16
12 public class OnGoingFragment extends QMUIFragment<OnGoingFragmentView, OnGoingFragmentPresenter, FragmentRunRaceDetailBinding> { 17 public class OnGoingFragment extends QMUIFragment<OnGoingFragmentView, OnGoingFragmentPresenter, FragmentRunRaceDetailBinding> {
  18 + private String eventId;
  19 +
  20 + public static OnGoingFragment newInstance(String eventId) {
  21 + OnGoingFragment fragment = new OnGoingFragment();
  22 + Bundle bundle = new Bundle();
  23 + bundle.putString("eventId", eventId);
  24 + fragment.setArguments(bundle);
  25 + return fragment;
  26 + }
  27 +
13 @Override 28 @Override
14 protected int getToolbarId() { 29 protected int getToolbarId() {
15 return 0; 30 return 0;
@@ -22,11 +37,27 @@ public class OnGoingFragment extends QMUIFragment&lt;OnGoingFragmentView, OnGoingFr @@ -22,11 +37,27 @@ public class OnGoingFragment extends QMUIFragment&lt;OnGoingFragmentView, OnGoingFr
22 37
23 @Override 38 @Override
24 protected int getLayoutId() { 39 protected int getLayoutId() {
25 - return 0; 40 + return R.layout.fragment_run_race_detail;
26 } 41 }
27 42
28 @Override 43 @Override
29 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 44 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
30 super.onViewCreated(view, savedInstanceState); 45 super.onViewCreated(view, savedInstanceState);
  46 + QMUIStatusBarHelper.setStatusBarLightMode(getActivity());
  47 + StatusBarUtil2.setColor(getActivity(), getResources().getColor(R.color.white), 0);
  48 + if (getMvpView() != null) {
  49 + getMvpView().initMap();
  50 + }
  51 + if (null!=getArguments()){
  52 + eventId=getArguments().getString("eventId");
  53 + if (!TextUtils.isEmpty(eventId)){
  54 + if (getPresenter() != null) {
  55 + if (!TextUtils.isEmpty(CommonInfo.getStreetId(getActivity()))) {
  56 + getPresenter().getRunRaceDetailInfo(getActivity(), eventId, CommonInfo.getUserId(getActivity()), "0");
  57 + }
  58 + }
  59 + }
  60 + }
  61 +
31 } 62 }
32 } 63 }
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/utils/StepUtil.java
@@ -181,7 +181,7 @@ public class StepUtil { @@ -181,7 +181,7 @@ public class StepUtil {
181 int miao = (int) (miaoMin * 60); 181 int miao = (int) (miaoMin * 60);
182 return minute + "'" + miao + "''"; 182 return minute + "'" + miao + "''";
183 } else { 183 } else {
184 - return "--"; 184 + return "0";
185 } 185 }
186 } 186 }
187 187