Commit 0fe734932b8589a487a7ee167c34ffaea4e20fe4

Authored by 杨帅
1 parent 5cf16478

1 路径工具,完成页面逻辑

Showing 17 changed files with 801 additions and 75 deletions
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/commonInfo/CollCommonInfo.java
@@ -155,6 +155,48 @@ public class CollCommonInfo { @@ -155,6 +155,48 @@ public class CollCommonInfo {
155 return MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).getBoolean("CollFirstStepSendTraceTip", true); 155 return MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).getBoolean("CollFirstStepSendTraceTip", true);
156 } 156 }
157 157
  158 + /**
  159 + * 设置用户昵称
  160 + *
  161 + * @param context
  162 + * @param nickName
  163 + */
  164 + public static void setUserNickName(Context context, String nickName) {
  165 + MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).putString("CollRunUserNickName", nickName);
  166 +
  167 + }
  168 +
  169 + /**
  170 + * 获取用户昵称
  171 + *
  172 + * @param context
  173 + */
  174 + public static String getUserNickName(Context context) {
  175 + return MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).getString("CollRunUserNickName", "");
  176 +
  177 + }
  178 +
  179 + /**
  180 + * 设置用户头像
  181 + *
  182 + * @param context
  183 + * @param userIcon
  184 + */
  185 + public static void setUserIcon(Context context, String userIcon) {
  186 + MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).putString("CollRunUserNickIcon", userIcon);
  187 +
  188 + }
  189 +
  190 + /**
  191 + * 获取用户头像
  192 + *
  193 + * @param context
  194 + */
  195 + public static String getUserIcon(Context context) {
  196 + return MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).getString("CollRunUserNickIcon", "");
  197 +
  198 + }
  199 +
158 /*重置 200 /*重置
159 * @param context 201 * @param context
160 */ 202 */
@@ -165,7 +207,6 @@ public class CollCommonInfo { @@ -165,7 +207,6 @@ public class CollCommonInfo {
165 MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).removeKey("CollstepStartTime"); 207 MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).removeKey("CollstepStartTime");
166 MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).removeKey("CollKeepAliveService"); 208 MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).removeKey("CollKeepAliveService");
167 MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).removeKey("CollRunBaiduTraceService"); 209 MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).removeKey("CollRunBaiduTraceService");
168 - MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).removeKey("CollstreetId");  
169 MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).removeKey("CollFirstStepSendTraceTip"); 210 MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).removeKey("CollFirstStepSendTraceTip");
170 } 211 }
171 212
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/frame/view/CollRunningFinishFragmentView.java
1 package com.cnlive.moudle.collectionTrace.frame.view; 1 package com.cnlive.moudle.collectionTrace.frame.view;
2 2
3 import android.content.Context; 3 import android.content.Context;
  4 +import android.support.v7.widget.LinearLayoutManager;
  5 +import android.text.TextUtils;
4 import android.view.View; 6 import android.view.View;
5 7
  8 +import com.cnlive.moudle.collectionTrace.model.CollectPoint;
  9 +import com.cnlive.moudle.collectionTrace.ui.adapter.CollFinishDetaiAdapter;
6 import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunningFinishFragment; 10 import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunningFinishFragment;
  11 +import com.cnlive.moudle.collectionTrace.utils.CollStepUtil;
  12 +import com.cnlive.moudle.pedometer.commonInfo.CommonInfo;
7 import com.cnlive.moudle.pedometer.model.RunningFinishBean; 13 import com.cnlive.moudle.pedometer.model.RunningFinishBean;
  14 +import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity;
8 import com.cnlive.moudle.pedometer.ui.fragment.RunningFinishFragment; 15 import com.cnlive.moudle.pedometer.ui.fragment.RunningFinishFragment;
  16 +import com.cnlive.moudle.pedometer.utils.GsonUtil;
  17 +import com.cnlive.moudle.pedometer.utils.TimeUtil;
  18 +import com.cnlive.strike.application.GlideApp;
9 import com.hannesdorfmann.mosby3.mvp.MvpView; 19 import com.hannesdorfmann.mosby3.mvp.MvpView;
10 20
  21 +import java.util.ArrayList;
  22 +import java.util.List;
  23 +
11 public class CollRunningFinishFragmentView implements MvpView { 24 public class CollRunningFinishFragmentView implements MvpView {
12 private CollRunningFinishFragment fragment; 25 private CollRunningFinishFragment fragment;
  26 + private CollFinishDetaiAdapter adapter;
13 27
14 public CollRunningFinishFragmentView(CollRunningFinishFragment fragment) { 28 public CollRunningFinishFragmentView(CollRunningFinishFragment fragment) {
15 this.fragment = fragment; 29 this.fragment = fragment;
@@ -19,23 +33,56 @@ public class CollRunningFinishFragmentView implements MvpView { @@ -19,23 +33,56 @@ public class CollRunningFinishFragmentView implements MvpView {
19 return fragment == null ? null : fragment.getActivity(); 33 return fragment == null ? null : fragment.getActivity();
20 } 34 }
21 35
22 - public void initView(RunningFinishBean runningFinishBean) { 36 + public void initView(CollUserStepEntity collUserStepEntity) {
  37 + //设置用户昵称
  38 + String nickName = CommonInfo.getUserNickName(getContext());
  39 + fragment.binding.includeFinishUserInfo.tvUserNickName.setText(nickName);
  40 + //设置用户头像
  41 + String faceUrl = CommonInfo.getUserIcon(getContext());
  42 + if (!TextUtils.isEmpty(faceUrl)) {
  43 + GlideApp.with(getContext()).load(faceUrl).into(fragment.binding.includeFinishUserInfo.qmIvIcon);
  44 + }
  45 + //设置标题
  46 + if (!TextUtils.isEmpty(collUserStepEntity.getStreetTitle())) {
  47 + fragment.binding.includeFinishUserInfo.tvStreetName.setText(collUserStepEntity.getStreetTitle());
  48 + }
23 //设置距离 49 //设置距离
24 - fragment.binding.includeFinishUserInfo.tvDistance.setText(runningFinishBean.getRunDistance());  
25 - //设置配速  
26 - fragment.binding.includeFinishUserInfo.tvSpeed.setText(runningFinishBean.getSpeed());  
27 - //设置用时  
28 - fragment.binding.includeFinishUserInfo.tvTimer.setText(runningFinishBean.getTime());  
29 - //设置日期  
30 - fragment.binding.includeFinishUserInfo.tvDate.setText(runningFinishBean.getDate());  
31 - //设置步数  
32 - fragment.binding.includeFinishStep.tvStep.setText(runningFinishBean.getStep());  
33 - //设置起点位置  
34 - fragment.binding.includeFinishRunRoute.tvStartPoint.setText(runningFinishBean.getStartPoint());  
35 - //设置终点位置  
36 - fragment.binding.includeFinishRunRoute.tvEndPoint.setText(runningFinishBean.getEndPoint());  
37 - //设置时间  
38 - fragment.binding.includeFinishRunRoute.tvTimer.setText(runningFinishBean.getTime()); 50 + if (!TextUtils.isEmpty(collUserStepEntity.getStepCount())) {
  51 + fragment.binding.includeFinishUserInfo.tvDistance.setText(CollStepUtil.getWalkDistanceKM(Long.parseLong(collUserStepEntity.getStepCount())) + "");
  52 + } else {
  53 + fragment.binding.includeFinishUserInfo.tvDistance.setText("0");
  54 + }
  55 + if (0 != collUserStepEntity.getFinishTimeStamp()) {
  56 + //设置日期
  57 + fragment.binding.includeFinishUserInfo.tvDate.setText(TimeUtil.getStampToTime(collUserStepEntity.getFinishTimeStamp() * 1000, "yyyy-MM-dd HH:mm"));
  58 + }
  59 + //设置适配器
  60 + if (!TextUtils.isEmpty(collUserStepEntity.getImportPoint())) {
  61 + List<CollectPoint> collectPoints = GsonUtil.jsonToList(collUserStepEntity.getImportPoint(), CollectPoint.class);
  62 + //添加起点
  63 + CollectPoint startPoint = null;
  64 + if (!TextUtils.isEmpty(collUserStepEntity.getCollStartPointData())) {
  65 + startPoint = GsonUtil.GsonToBean(collUserStepEntity.getCollStartPointData(), CollectPoint.class);
  66 + }
  67 + CollectPoint endPoint = null;
  68 + if (!TextUtils.isEmpty(collUserStepEntity.getCollEndPointData())) {
  69 + endPoint = GsonUtil.GsonToBean(collUserStepEntity.getCollEndPointData(), CollectPoint.class);
  70 + }
  71 + if (null == collectPoints) {
  72 + collectPoints = new ArrayList<>();
  73 + }
  74 + if (null != startPoint) {
  75 + collectPoints.add(0, startPoint);
  76 + }
  77 + if (null != endPoint) {
  78 + collectPoints.add(endPoint);
  79 + }
  80 +
  81 + adapter = new CollFinishDetaiAdapter(fragment.getActivity(), collectPoints);
  82 + //设置
  83 + fragment.binding.includeFinishUserInfo.rvList.setLayoutManager(new LinearLayoutManager(fragment.getActivity()));
  84 + fragment.binding.includeFinishUserInfo.rvList.setAdapter(adapter);
  85 + }
39 //返回按钮点击 86 //返回按钮点击
40 fragment.binding.flBack.setOnClickListener(new View.OnClickListener() { 87 fragment.binding.flBack.setOnClickListener(new View.OnClickListener() {
41 @Override 88 @Override
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/frame/view/CollRunningMapFragmentView.java
@@ -35,6 +35,7 @@ import com.baidu.mapapi.utils.DistanceUtil; @@ -35,6 +35,7 @@ import com.baidu.mapapi.utils.DistanceUtil;
35 import com.baidu.trace.model.SortType; 35 import com.baidu.trace.model.SortType;
36 import com.cnlive.moudle.collectionTrace.model.CollectPoint; 36 import com.cnlive.moudle.collectionTrace.model.CollectPoint;
37 import com.cnlive.moudle.collectionTrace.service.CollStepService; 37 import com.cnlive.moudle.collectionTrace.service.CollStepService;
  38 +import com.cnlive.moudle.collectionTrace.ui.activity.CollRunningFinishActivity;
38 import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunningMapFragment; 39 import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunningMapFragment;
39 import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo; 40 import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo;
40 import com.cnlive.moudle.pedometer.model.Constant; 41 import com.cnlive.moudle.pedometer.model.Constant;
@@ -46,6 +47,7 @@ import com.cnlive.moudle.pedometer.utils.ButtonAnimUtil; @@ -46,6 +47,7 @@ import com.cnlive.moudle.pedometer.utils.ButtonAnimUtil;
46 import com.cnlive.moudle.collectionTrace.utils.CollStepUtil; 47 import com.cnlive.moudle.collectionTrace.utils.CollStepUtil;
47 import com.cnlive.moudle.pedometer.utils.GsonUtil; 48 import com.cnlive.moudle.pedometer.utils.GsonUtil;
48 import com.cnlive.moudle.pedometer.utils.MyMapUtil; 49 import com.cnlive.moudle.pedometer.utils.MyMapUtil;
  50 +import com.cnlive.moudle.pedometer.utils.StepUtil;
49 import com.cnlive.moudle.pedometer.utils.TimeUtil; 51 import com.cnlive.moudle.pedometer.utils.TimeUtil;
50 import com.example.moudle_pedometer.R; 52 import com.example.moudle_pedometer.R;
51 import com.hannesdorfmann.mosby3.mvp.MvpView; 53 import com.hannesdorfmann.mosby3.mvp.MvpView;
@@ -81,9 +83,13 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener @@ -81,9 +83,13 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
81 private RunRaceDetailInfo runRaceDetailInfo; 83 private RunRaceDetailInfo runRaceDetailInfo;
82 private List<Overlay> allMapOverlays; 84 private List<Overlay> allMapOverlays;
83 private SelectDialog selectDialog; 85 private SelectDialog selectDialog;
  86 + private SelectDialog endSelectDialog;
84 private boolean isShowFollowAddress = false;//是否显示跟随地址 87 private boolean isShowFollowAddress = false;//是否显示跟随地址
  88 + private boolean isShowEndFollowAddress = false;//是否显示结束跟随地址
  89 +
85 private String currentAddress; 90 private String currentAddress;
86 private LatLng currentImportLatLng; 91 private LatLng currentImportLatLng;
  92 + private String employTime = "";//用时
87 93
88 public CollRunningMapFragmentView(CollRunningMapFragment fragment) { 94 public CollRunningMapFragmentView(CollRunningMapFragment fragment) {
89 this.fragment = fragment; 95 this.fragment = fragment;
@@ -95,6 +101,7 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener @@ -95,6 +101,7 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
95 101
96 public void initView(RunRaceDetailInfo runRaceDetailInfo) { 102 public void initView(RunRaceDetailInfo runRaceDetailInfo) {
97 initSelectDialog(); 103 initSelectDialog();
  104 + initFinishSelectDialog();
98 this.runRaceDetailInfo = runRaceDetailInfo; 105 this.runRaceDetailInfo = runRaceDetailInfo;
99 uid = CollCommonInfo.getUserId(getContext()); 106 uid = CollCommonInfo.getUserId(getContext());
100 userStepEntity = CollStepUtil.getCollUserStepData(getContext(), uid); 107 userStepEntity = CollStepUtil.getCollUserStepData(getContext(), uid);
@@ -106,7 +113,7 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener @@ -106,7 +113,7 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
106 CollStepUtil.setCollStreetTitle(getContext(), CollCommonInfo.getUserId(getContext()), runRaceDetailInfo.getTitle()); 113 CollStepUtil.setCollStreetTitle(getContext(), CollCommonInfo.getUserId(getContext()), runRaceDetailInfo.getTitle());
107 } 114 }
108 //设置开始时间和赛事id 115 //设置开始时间和赛事id
109 - if (0 == userStepEntity.getStartTimeStamp()) { 116 + if (TextUtils.isEmpty(userStepEntity.getStreetId())) {
110 CollStepUtil.setCollStepStartData(getContext(), uid, TimeUtil.getNowTimeStamp(), CollCommonInfo.getStreetId(getContext())); 117 CollStepUtil.setCollStepStartData(getContext(), uid, TimeUtil.getNowTimeStamp(), CollCommonInfo.getStreetId(getContext()));
111 } 118 }
112 //设置步数 119 //设置步数
@@ -125,6 +132,7 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener @@ -125,6 +132,7 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
125 collectPoint.setLongitude(latLng.longitude); 132 collectPoint.setLongitude(latLng.longitude);
126 collectPoint.setPointName(runRaceDetailInfo.getCollStartLntLngName()); 133 collectPoint.setPointName(runRaceDetailInfo.getCollStartLntLngName());
127 CollStepUtil.setCollStartPointData(getContext(), uid, collectPoint); 134 CollStepUtil.setCollStartPointData(getContext(), uid, collectPoint);
  135 +
128 } 136 }
129 } 137 }
130 } 138 }
@@ -244,11 +252,11 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener @@ -244,11 +252,11 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
244 //更新可打点数量 252 //更新可打点数量
245 int remainNum = updataCanTakePointCount(); 253 int remainNum = updataCanTakePointCount();
246 if (remainNum != 0) { 254 if (remainNum != 0) {
  255 + if (null != followMyLocation) {
  256 + currentImportLatLng = new LatLng(followMyLocation.latitude, followMyLocation.longitude);
  257 + }
247 //获取当前地点 258 //获取当前地点
248 if (!TextUtils.isEmpty(currentAddress)) { 259 if (!TextUtils.isEmpty(currentAddress)) {
249 - if (null != followMyLocation) {  
250 - currentImportLatLng = new LatLng(followMyLocation.latitude, followMyLocation.longitude);  
251 - }  
252 selectDialog.setTipMessage("确定在" + "\"" + currentAddress + "\"" + "打点?"); 260 selectDialog.setTipMessage("确定在" + "\"" + currentAddress + "\"" + "打点?");
253 selectDialog.show(); 261 selectDialog.show();
254 } else { 262 } else {
@@ -261,6 +269,24 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener @@ -261,6 +269,24 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
261 } 269 }
262 }); 270 });
263 271
  272 + //结束按钮点击事件
  273 + fragment.binding.flEndPoint.setOnClickListener(new View.OnClickListener() {
  274 + @Override
  275 + public void onClick(View view) {
  276 + if (null != followMyLocation) {
  277 + currentImportLatLng = new LatLng(followMyLocation.latitude, followMyLocation.longitude);
  278 + //获取当前地点
  279 + if (!TextUtils.isEmpty(currentAddress)) {
  280 + endSelectDialog.setTipMessage("确定将" + "\"" + currentAddress + "\"" + "设为结束地点?");
  281 + endSelectDialog.show();
  282 + } else {
  283 + isShowEndFollowAddress = true;
  284 + Toast.makeText(getContext(), "正在获取当前地点信息,请稍后", Toast.LENGTH_SHORT).show();
  285 + }
  286 + }
  287 + }
  288 + });
  289 +
264 } 290 }
265 291
266 /** 292 /**
@@ -316,6 +342,47 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener @@ -316,6 +342,47 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
316 } 342 }
317 } 343 }
318 344
  345 + /**
  346 + * 结束按钮
  347 + */
  348 + private void initFinishSelectDialog() {
  349 + if (endSelectDialog == null) {
  350 + endSelectDialog = new SelectDialog(getContext(), "标题", "否", new SelectDialog.DialogInterface() {
  351 + @Override
  352 + public void onClick(SelectDialog dialog) {
  353 + dialog.dismiss();
  354 + isShowEndFollowAddress = false;
  355 + }
  356 + }, "是", new SelectDialog.DialogInterface() {
  357 + @Override
  358 + public void onClick(SelectDialog dialog) {
  359 + dialog.dismiss();
  360 + isShowEndFollowAddress = false;
  361 + if (null == currentImportLatLng || TextUtils.isEmpty(currentAddress)) {
  362 + return;
  363 + }
  364 + //保存用户完成时间
  365 + CollStepUtil.setCollUserFinishTimeStamp(getContext(), CollCommonInfo.getUserId(getContext()), TimeUtil.getNowTimeStamp());
  366 + //设置终点信息
  367 + CollectPoint collectPoint = new CollectPoint();
  368 + collectPoint.setLatitude(currentImportLatLng.latitude);
  369 + collectPoint.setLongitude(currentImportLatLng.longitude);
  370 + collectPoint.setPointName(currentAddress);
  371 + //设置用户用时
  372 + if (!TextUtils.isEmpty(employTime)) {
  373 + CollStepUtil.setEmployTimeStamp(getContext(), CollCommonInfo.getUserId(getContext()), employTime);
  374 + }
  375 + //将终点数据保存在数据库中
  376 + CollStepUtil.setCollEndPointData(getContext(), CollCommonInfo.getUserId(getContext()), collectPoint);
  377 + //跳转界面
  378 + CollRunningFinishActivity.startActivity(fragment.getActivity());
  379 + }
  380 + });
  381 + endSelectDialog.setCancelable(false);
  382 + endSelectDialog.setCanceledOnTouchOutside(false);
  383 + }
  384 + }
  385 +
319 private void initChrom() { 386 private void initChrom() {
320 //设置计时监听 387 //设置计时监听
321 fragment.binding.chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { 388 fragment.binding.chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@@ -324,6 +391,8 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener @@ -324,6 +391,8 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
324 int hour = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 / 60 / 60); 391 int hour = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 / 60 / 60);
325 int minute = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 / 60) % 60; 392 int minute = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 / 60) % 60;
326 int second = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000) % 60; 393 int second = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000) % 60;
  394 + employTime = (hour * 3600 + minute * 60 + second) + "";
  395 +
327 if (hour < 1) { 396 if (hour < 1) {
328 if (minute == 59 && second == 59) { 397 if (minute == 59 && second == 59) {
329 chronometer.setFormat("0" + "%s"); 398 chronometer.setFormat("0" + "%s");
@@ -523,8 +592,6 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener @@ -523,8 +592,6 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
523 } 592 }
524 593
525 if (isShowFollowAddress && !TextUtils.isEmpty(currentAddress)) { 594 if (isShowFollowAddress && !TextUtils.isEmpty(currentAddress)) {
526 - //设置当前打点经纬度  
527 - currentImportLatLng = new LatLng(location.getLatitude(), location.getLongitude());  
528 if (isShowFollowAddress && selectDialog != null && !selectDialog.isShowing()) { 595 if (isShowFollowAddress && selectDialog != null && !selectDialog.isShowing()) {
529 if (!TextUtils.isEmpty(currentAddress)) { 596 if (!TextUtils.isEmpty(currentAddress)) {
530 selectDialog.setTipMessage("确定将" + "\"" + currentAddress + "\"" + "设置开始地点?"); 597 selectDialog.setTipMessage("确定将" + "\"" + currentAddress + "\"" + "设置开始地点?");
@@ -535,6 +602,18 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener @@ -535,6 +602,18 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
535 } 602 }
536 } 603 }
537 } 604 }
  605 + //结束按钮
  606 + if (isShowEndFollowAddress && !TextUtils.isEmpty(currentAddress)) {
  607 + if (isShowEndFollowAddress && endSelectDialog != null && !endSelectDialog.isShowing()) {
  608 + if (!TextUtils.isEmpty(currentAddress)) {
  609 + endSelectDialog.setTipMessage("确定将" + "\"" + currentAddress + "\"" + "设为结束地点?");
  610 + if (!endSelectDialog.isShowing()) {
  611 + endSelectDialog.show();
  612 + }
  613 + isShowEndFollowAddress = false;
  614 + }
  615 + }
  616 + }
538 617
539 //正在搜索GPS信号 618 //正在搜索GPS信号
540 if (location.getGpsAccuracyStatus() == BDLocation.GPS_ACCURACY_UNKNOWN) { 619 if (location.getGpsAccuracyStatus() == BDLocation.GPS_ACCURACY_UNKNOWN) {
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/frame/view/StartTraceFragmentView.java
@@ -29,11 +29,15 @@ import com.baidu.mapapi.map.UiSettings; @@ -29,11 +29,15 @@ import com.baidu.mapapi.map.UiSettings;
29 import com.baidu.mapapi.model.LatLng; 29 import com.baidu.mapapi.model.LatLng;
30 import com.cnlive.moudle.collectionTrace.service.CollKeepLiveService; 30 import com.cnlive.moudle.collectionTrace.service.CollKeepLiveService;
31 import com.cnlive.moudle.collectionTrace.service.CollStepService; 31 import com.cnlive.moudle.collectionTrace.service.CollStepService;
  32 +import com.cnlive.moudle.collectionTrace.ui.activity.CollRunRaceDetailActivity;
32 import com.cnlive.moudle.collectionTrace.ui.activity.CollRunningMapActivity; 33 import com.cnlive.moudle.collectionTrace.ui.activity.CollRunningMapActivity;
33 import com.cnlive.moudle.collectionTrace.ui.fragment.StartTraceFragment; 34 import com.cnlive.moudle.collectionTrace.ui.fragment.StartTraceFragment;
34 import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo; 35 import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo;
  36 +import com.cnlive.moudle.collectionTrace.utils.CollStepUtil;
  37 +import com.cnlive.moudle.pedometer.commonInfo.CommonInfo;
35 import com.cnlive.moudle.pedometer.model.Constant; 38 import com.cnlive.moudle.pedometer.model.Constant;
36 import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo; 39 import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo;
  40 +import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity;
37 import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; 41 import com.cnlive.moudle.pedometer.ui.widget.SelectDialog;
38 import com.cnlive.moudle.pedometer.utils.BitmapUtil; 42 import com.cnlive.moudle.pedometer.utils.BitmapUtil;
39 import com.cnlive.moudle.pedometer.utils.GsonUtil; 43 import com.cnlive.moudle.pedometer.utils.GsonUtil;
@@ -122,6 +126,71 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { @@ -122,6 +126,71 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener {
122 } 126 }
123 127
124 /** 128 /**
  129 + * 检查是否又在正在运行的活动
  130 + */
  131 + public void checkIsHasRunningRace() {
  132 + //先判断有没有数据
  133 + CollUserStepEntity userStepEntity = CollStepUtil.getCollUserStepData(getContext(), CommonInfo.getUserId(getContext()));
  134 + if (null != userStepEntity) {
  135 + String eventId = CollCommonInfo.getStreetId(getContext());
  136 + //判断赛事id是否相同
  137 + String runStreetId = userStepEntity.getStreetId();
  138 + //是相同赛事id
  139 + if (eventId.equals(runStreetId)) {
  140 + //赛事相同(询问用户是否继续
  141 + SelectDialog selectDialog = new SelectDialog(getContext(), "是否继续运动", "否", new SelectDialog.DialogInterface() {
  142 + @Override
  143 + public void onClick(SelectDialog dialog) {
  144 + //删除数据
  145 + CollStepUtil.clearRunData(getContext(), CollCommonInfo.getUserId(getContext()));
  146 + stopStepService();
  147 + //清除数据
  148 + CollCommonInfo.reset(getContext());
  149 + dialog.dismiss();
  150 + }
  151 + }, "是", new SelectDialog.DialogInterface() {
  152 + @Override
  153 + public void onClick(SelectDialog dialog) {
  154 + //继续运动
  155 + dialog.dismiss();
  156 + //检查百度是否正在运行
  157 + checkBaiduServiceState();
  158 + }
  159 + });
  160 + selectDialog.setCancelable(false);
  161 + selectDialog.setCanceledOnTouchOutside(false);
  162 + selectDialog.show();
  163 + }
  164 + //赛事id不同,但是有正在进行的赛事
  165 + else {
  166 + //询问用户
  167 + SelectDialog selectDialog = new SelectDialog(getContext(), "你正在进行另一赛事,是否回到该赛事?", "否", new SelectDialog.DialogInterface() {
  168 + @Override
  169 + public void onClick(SelectDialog dialog) {
  170 + //删除数据
  171 + CollStepUtil.clearRunData(getContext(), CollCommonInfo.getUserId(getContext()));
  172 + stopStepService();
  173 + //清除数据
  174 + CollCommonInfo.reset(getContext());
  175 + dialog.dismiss();
  176 + }
  177 + }, "是", new SelectDialog.DialogInterface() {
  178 + @Override
  179 + public void onClick(SelectDialog dialog) {
  180 + //继续运动
  181 + dialog.dismiss();
  182 + //检查百度是否正在运行
  183 + checkBaiduServiceState();
  184 + }
  185 + });
  186 + selectDialog.setCancelable(false);
  187 + selectDialog.setCanceledOnTouchOutside(false);
  188 + selectDialog.show();
  189 + }
  190 + }
  191 + }
  192 +
  193 + /**
125 * 启动计步服务 194 * 启动计步服务
126 */ 195 */
127 public void startStepService(Context context) { 196 public void startStepService(Context context) {
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/activity/CollRunRaceDetailActivity.java
@@ -11,8 +11,13 @@ import com.cnlive.libs.base.ui.QMUIFragment; @@ -11,8 +11,13 @@ import com.cnlive.libs.base.ui.QMUIFragment;
11 import com.cnlive.libs.base.ui.QMUIFragmentActivity; 11 import com.cnlive.libs.base.ui.QMUIFragmentActivity;
12 import com.cnlive.libs.base.util.StatusBarUtil; 12 import com.cnlive.libs.base.util.StatusBarUtil;
13 import com.cnlive.libs.base.util.StatusBarUtil2; 13 import com.cnlive.libs.base.util.StatusBarUtil2;
  14 +import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo;
14 import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunMainFragment; 15 import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunMainFragment;
15 import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunRaceDetailFragment; 16 import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunRaceDetailFragment;
  17 +import com.cnlive.moudle.collectionTrace.utils.CollStepUtil;
  18 +import com.cnlive.moudle.pedometer.commonInfo.CommonInfo;
  19 +import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity;
  20 +import com.cnlive.moudle.pedometer.ui.widget.SelectDialog;
16 import com.cnlive.moudle.pedometer.utils.CheckUtil; 21 import com.cnlive.moudle.pedometer.utils.CheckUtil;
17 import com.example.moudle_pedometer.R; 22 import com.example.moudle_pedometer.R;
18 23
@@ -26,9 +31,11 @@ public class CollRunRaceDetailActivity extends QMUIFragmentActivity { @@ -26,9 +31,11 @@ public class CollRunRaceDetailActivity extends QMUIFragmentActivity {
26 private final String TAG = "CollRunRaceDetail"; 31 private final String TAG = "CollRunRaceDetail";
27 private QMUIFragment fragment; 32 private QMUIFragment fragment;
28 33
29 - public static void newInstance(Context context,String eventId){  
30 - Intent intent = new Intent(context,CollRunRaceDetailActivity.class);  
31 - intent.putExtra("eventId",eventId); 34 + public static void newInstance(Context context, String eventId) {
  35 + CollCommonInfo.setStreetId(context, eventId);
  36 + //先判断有没有数据
  37 + Intent intent = new Intent(context, CollRunRaceDetailActivity.class);
  38 + intent.putExtra("eventId", eventId);
32 context.startActivity(intent); 39 context.startActivity(intent);
33 } 40 }
34 41
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/activity/CollRunningFinishActivity.java
@@ -31,15 +31,13 @@ public class CollRunningFinishActivity extends QMUIFragmentActivity { @@ -31,15 +31,13 @@ public class CollRunningFinishActivity extends QMUIFragmentActivity {
31 protected void onCreate(Bundle savedInstanceState) { 31 protected void onCreate(Bundle savedInstanceState) {
32 super.onCreate(savedInstanceState); 32 super.onCreate(savedInstanceState);
33 StatusBarUtil2.setColor(this, getResources().getColor(R.color.run_main_bg), 0); 33 StatusBarUtil2.setColor(this, getResources().getColor(R.color.run_main_bg), 0);
34 - if (getIntent().getSerializableExtra("runningFinishBean") != null) {  
35 - addFragment((RunningFinishBean) getIntent().getSerializableExtra("runningFinishBean"));  
36 - } 34 + addFragment();
37 35
38 36
39 } 37 }
40 38
41 - private void addFragment(RunningFinishBean runningFinishBean) {  
42 - QMUIFragment fragment =RunningFinishFragment.instance(runningFinishBean); 39 + private void addFragment() {
  40 + QMUIFragment fragment =new CollRunningFinishFragment();
43 getSupportFragmentManager().beginTransaction() 41 getSupportFragmentManager().beginTransaction()
44 .add(getContextViewId(), fragment, fragment.getClass().getSimpleName()) 42 .add(getContextViewId(), fragment, fragment.getClass().getSimpleName())
45 .addToBackStack(fragment.getClass().getSimpleName()) 43 .addToBackStack(fragment.getClass().getSimpleName())
@@ -54,9 +52,8 @@ public class CollRunningFinishActivity extends QMUIFragmentActivity { @@ -54,9 +52,8 @@ public class CollRunningFinishActivity extends QMUIFragmentActivity {
54 } 52 }
55 } 53 }
56 54
57 - public static void startActivity(Activity activity, RunningFinishBean runningFinishBean) { 55 + public static void startActivity(Activity activity) {
58 Intent intent = new Intent(activity, CollRunningFinishActivity.class); 56 Intent intent = new Intent(activity, CollRunningFinishActivity.class);
59 - intent.putExtra("runningFinishBean", runningFinishBean);  
60 activity.startActivity(intent); 57 activity.startActivity(intent);
61 } 58 }
62 } 59 }
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/adapter/CollFinishDetaiAdapter.java 0 → 100644
  1 +package com.cnlive.moudle.collectionTrace.ui.adapter;
  2 +
  3 +import android.app.Activity;
  4 +import android.support.annotation.NonNull;
  5 +import android.support.v7.widget.RecyclerView;
  6 +import android.view.LayoutInflater;
  7 +import android.view.View;
  8 +import android.view.ViewGroup;
  9 +import android.widget.TextView;
  10 +
  11 +import com.cnlive.moudle.collectionTrace.model.CollectPoint;
  12 +import com.example.moudle_pedometer.R;
  13 +
  14 +import java.util.ArrayList;
  15 +import java.util.List;
  16 +
  17 +/**
  18 + * @author ShinnyYang
  19 + */
  20 +public class CollFinishDetaiAdapter extends RecyclerView.Adapter<CollFinishDetaiAdapter.MyViewHolder> {
  21 +
  22 + private List<CollectPoint> list = new ArrayList<>();
  23 + private Activity context;
  24 +
  25 + public CollFinishDetaiAdapter(Activity context, List<CollectPoint> list) {
  26 + this.list = list;
  27 + this.context = context;
  28 + }
  29 +
  30 + @NonNull
  31 + @Override
  32 + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
  33 + View view = LayoutInflater.from(context).inflate(R.layout.item_coll_take_point, viewGroup, false);
  34 + return new MyViewHolder(view);
  35 + }
  36 +
  37 + @Override
  38 + public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
  39 + //设置打点名称
  40 + if (null == myViewHolder) {
  41 + return;
  42 + }
  43 + if (0 == i) {
  44 + //起点
  45 + myViewHolder.view_circle.setBackground(context.getResources().getDrawable(R.drawable.shape_circle_green));
  46 + myViewHolder.tv_point_type_tip.setText(context.getResources().getString(R.string.layout_street_start_point));
  47 + } else if (list.size() - 1 == i) {
  48 + //终点
  49 + myViewHolder.view_circle.setBackground(context.getResources().getDrawable(R.drawable.shape_circle_red));
  50 + myViewHolder.tv_point_type_tip.setText(context.getResources().getString(R.string.layout_street_end_point));
  51 + myViewHolder.view_line.setVisibility(View.GONE);
  52 + } else {
  53 + //打点
  54 + myViewHolder.view_circle.setBackground(context.getResources().getDrawable(R.drawable.shape_circle_gray));
  55 +// myViewHolder.tv_point_type_tip.setText(context.getResources().getString(R.string.layout_coll_take_point_text));
  56 + if (i > 0) {
  57 + myViewHolder.tv_point_type_tip.setText("(打点" + i + ")");
  58 + }
  59 +
  60 + }
  61 + myViewHolder.tv_take_point.setText(list.get(i).getPointName());
  62 + }
  63 +
  64 + @Override
  65 + public int getItemCount() {
  66 + return list.size();
  67 + }
  68 +
  69 + class MyViewHolder extends RecyclerView.ViewHolder {
  70 +
  71 + public View view_circle;
  72 + public TextView tv_point_type_tip;
  73 + public TextView tv_take_point;
  74 + public View view_line;
  75 +
  76 +
  77 + public MyViewHolder(@NonNull View itemView) {
  78 + super(itemView);
  79 + this.view_circle = (View) itemView.findViewById(R.id.view_circle);
  80 + this.tv_point_type_tip = (TextView) itemView.findViewById(R.id.tv_point_type_tip);
  81 + this.tv_take_point = (TextView) itemView.findViewById(R.id.tv_take_point);
  82 + this.view_line = (View) itemView.findViewById(R.id.view_line);
  83 + }
  84 + }
  85 +
  86 +}
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/fragment/CollRunningFinishFragment.java
@@ -7,24 +7,28 @@ import android.view.View; @@ -7,24 +7,28 @@ import android.view.View;
7 import com.cnlive.libs.base.ui.QMUIFragment; 7 import com.cnlive.libs.base.ui.QMUIFragment;
8 import com.cnlive.moudle.collectionTrace.frame.presenter.CollRunningFinishFragmetPresenter; 8 import com.cnlive.moudle.collectionTrace.frame.presenter.CollRunningFinishFragmetPresenter;
9 import com.cnlive.moudle.collectionTrace.frame.view.CollRunningFinishFragmentView; 9 import com.cnlive.moudle.collectionTrace.frame.view.CollRunningFinishFragmentView;
  10 +import com.cnlive.moudle.collectionTrace.utils.CollStepUtil;
  11 +import com.cnlive.moudle.pedometer.commonInfo.CommonInfo;
10 import com.cnlive.moudle.pedometer.frame.presenter.RunningFinishFragmetPresenter; 12 import com.cnlive.moudle.pedometer.frame.presenter.RunningFinishFragmetPresenter;
11 import com.cnlive.moudle.pedometer.model.RunningFinishBean; 13 import com.cnlive.moudle.pedometer.model.RunningFinishBean;
  14 +import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity;
12 import com.example.moudle_pedometer.R; 15 import com.example.moudle_pedometer.R;
  16 +import com.example.moudle_pedometer.databinding.FragmentCollFinishRunMapBinding;
13 import com.example.moudle_pedometer.databinding.FragmentFinishRunMapBinding; 17 import com.example.moudle_pedometer.databinding.FragmentFinishRunMapBinding;
14 18
15 -public class CollRunningFinishFragment extends QMUIFragment<CollRunningFinishFragmentView, CollRunningFinishFragmetPresenter, FragmentFinishRunMapBinding> {  
16 - private RunningFinishBean runningFinishBean; 19 +public class CollRunningFinishFragment extends QMUIFragment<CollRunningFinishFragmentView, CollRunningFinishFragmetPresenter, FragmentCollFinishRunMapBinding> {
  20 +// private RunningFinishBean runningFinishBean;
17 21
18 - public static CollRunningFinishFragment instance(RunningFinishBean runningFinishBean) {  
19 - CollRunningFinishFragment fragment = new CollRunningFinishFragment();  
20 - Bundle bundle = null;  
21 - if (runningFinishBean != null) {  
22 - bundle = new Bundle();  
23 - bundle.putSerializable("runningFinishBean", runningFinishBean);  
24 - }  
25 - fragment.setArguments(bundle);  
26 - return fragment;  
27 - } 22 +// public static CollRunningFinishFragment instance(RunningFinishBean runningFinishBean) {
  23 +// CollRunningFinishFragment fragment = new CollRunningFinishFragment();
  24 +// Bundle bundle = null;
  25 +// if (runningFinishBean != null) {
  26 +// bundle = new Bundle();
  27 +// bundle.putSerializable("runningFinishBean", runningFinishBean);
  28 +// }
  29 +// fragment.setArguments(bundle);
  30 +// return fragment;
  31 +// }
28 32
29 @Override 33 @Override
30 protected int getToolbarId() { 34 protected int getToolbarId() {
@@ -38,21 +42,20 @@ public class CollRunningFinishFragment extends QMUIFragment&lt;CollRunningFinishFra @@ -38,21 +42,20 @@ public class CollRunningFinishFragment extends QMUIFragment&lt;CollRunningFinishFra
38 42
39 @Override 43 @Override
40 protected int getLayoutId() { 44 protected int getLayoutId() {
41 - return R.layout.fragment_finish_run_map; 45 + return R.layout.fragment_coll_finish_run_map;
42 } 46 }
43 47
44 @Override 48 @Override
45 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 49 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
46 super.onViewCreated(view, savedInstanceState); 50 super.onViewCreated(view, savedInstanceState);
47 - if (getArguments() != null) {  
48 - runningFinishBean = (RunningFinishBean) getArguments().getSerializable("runningFinishBean");  
49 - if (runningFinishBean != null) {  
50 - if (getMvpView() != null) {  
51 - getMvpView().initView(runningFinishBean);  
52 - } 51 + CollUserStepEntity collUserStepEntity = CollStepUtil.getCollUserStepData(getContext(), CommonInfo.getUserId(getContext()));
  52 + if (collUserStepEntity != null) {
  53 + if (getMvpView() != null) {
  54 + getMvpView().initView(collUserStepEntity);
53 } 55 }
54 } 56 }
55 } 57 }
  58 +
56 /** 59 /**
57 * 屏蔽边缘返回 60 * 屏蔽边缘返回
58 * 杨帅 61 * 杨帅
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/fragment/StartTraceFragment.java
@@ -77,6 +77,7 @@ public class StartTraceFragment extends QMUIFragment&lt;StartTraceFragmentView, Sta @@ -77,6 +77,7 @@ public class StartTraceFragment extends QMUIFragment&lt;StartTraceFragmentView, Sta
77 //为系统的方向传感器注册监听器 77 //为系统的方向传感器注册监听器
78 mSensorManager.registerListener(getMvpView(), mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), 78 mSensorManager.registerListener(getMvpView(), mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
79 SensorManager.SENSOR_DELAY_UI); 79 SensorManager.SENSOR_DELAY_UI);
  80 + getMvpView().checkIsHasRunningRace();
80 } 81 }
81 } 82 }
82 83
@@ -118,7 +119,8 @@ public class StartTraceFragment extends QMUIFragment&lt;StartTraceFragmentView, Sta @@ -118,7 +119,8 @@ public class StartTraceFragment extends QMUIFragment&lt;StartTraceFragmentView, Sta
118 if (getMvpView() != null) { 119 if (getMvpView() != null) {
119 QMUITipDialogUtil.dismessDialog(); 120 QMUITipDialogUtil.dismessDialog();
120 if (null != getMvpView()) { 121 if (null != getMvpView()) {
121 - CollRunningMapActivity.startActivity(getActivity(),getMvpView().runRaceDetailInfo); 122 + CollRunningMapActivity.startActivity(getActivity(), getMvpView().runRaceDetailInfo);
  123 + getActivity().finish();
122 } 124 }
123 } 125 }
124 } 126 }
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/utils/CollStepUtil.java
@@ -12,6 +12,7 @@ import com.cnlive.moudle.pedometer.sql.db.DbCore; @@ -12,6 +12,7 @@ import com.cnlive.moudle.pedometer.sql.db.DbCore;
12 import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity; 12 import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity;
13 import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity; 13 import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity;
14 import com.cnlive.moudle.pedometer.utils.GsonUtil; 14 import com.cnlive.moudle.pedometer.utils.GsonUtil;
  15 +import com.cnlive.moudle.pedometer.utils.TimeUtil;
15 16
16 import java.text.SimpleDateFormat; 17 import java.text.SimpleDateFormat;
17 import java.util.ArrayList; 18 import java.util.ArrayList;
@@ -33,6 +34,66 @@ public class CollStepUtil { @@ -33,6 +34,66 @@ public class CollStepUtil {
33 } 34 }
34 35
35 /** 36 /**
  37 + * 设置用户整个赛事用时
  38 + *
  39 + * @param context
  40 + * @param uid
  41 + */
  42 + public static void setEmployTimeStamp(Context context, String uid, String employTime) {
  43 + //先获取有没有
  44 + if (getCollUserStepData(context, uid) != null) {
  45 + CollUserStepEntity entity = getCollUserStepData(context, uid);
  46 + if (null != entity) {
  47 + //设置用户完成时间
  48 + entity.setEmployTime(employTime);
  49 + //更新数据
  50 + updateCollStepData(context, entity);
  51 + }
  52 + }
  53 + }
  54 +
  55 + /**
  56 + * 设置用户结束地点数据
  57 + *
  58 + * @param context
  59 + * @param uid
  60 + * @param collectPoint
  61 + */
  62 + public static void setCollEndPointData(Context context, String uid, CollectPoint collectPoint) {
  63 + //先获取有没有
  64 + if (getCollUserStepData(context, uid) != null) {
  65 + CollUserStepEntity entity = getCollUserStepData(context, uid);
  66 + if (null != entity) {
  67 + //设置用户结束数据
  68 + entity.setCollEndPointData(GsonUtil.GsonString(collectPoint));
  69 + //更新数据
  70 + updateCollStepData(context, entity);
  71 + }
  72 + }
  73 + }
  74 +
  75 +
  76 + /**
  77 + * 设置用户结束时间
  78 + *
  79 + * @param context
  80 + * @param uid
  81 + * @param userFinishTime
  82 + */
  83 + public static void setCollUserFinishTimeStamp(Context context, String uid, long userFinishTime) {
  84 + //先获取有没有
  85 + if (getCollUserStepData(context, uid) != null) {
  86 + CollUserStepEntity entity = getCollUserStepData(context, uid);
  87 + if (null != entity) {
  88 + //设置用户完成时间
  89 + entity.setFinishTimeStamp(userFinishTime);
  90 + //更新数据
  91 + updateCollStepData(context, entity);
  92 + }
  93 + }
  94 + }
  95 +
  96 + /**
36 * 获取打点详细 97 * 获取打点详细
37 * 98 *
38 * @param context 99 * @param context
@@ -304,7 +365,7 @@ public class CollStepUtil { @@ -304,7 +365,7 @@ public class CollStepUtil {
304 public static void clearRunData(Context context, String uid) { 365 public static void clearRunData(Context context, String uid) {
305 DbCore.init(context, dbName); 366 DbCore.init(context, dbName);
306 String CURRENT_DATE = getTodayDate(); 367 String CURRENT_DATE = getTodayDate();
307 - List<CollUserStepEntity> list = DbCore.getDaoSession().getCollUserStepEntityDao().queryBuilder().where(CollUserStepEntityDao.Properties.UserId.eq(uid), CollUserStepEntityDao.Properties.Date.eq(CURRENT_DATE)).list(); 368 + List<CollUserStepEntity> list = DbCore.getDaoSession().getCollUserStepEntityDao().queryBuilder().where(CollUserStepEntityDao.Properties.UserId.eq(uid)).list();
308 if (list != null && list.size() > 0) { 369 if (list != null && list.size() > 0) {
309 Log.e(TAG, "clearRunData: " + list.size()); 370 Log.e(TAG, "clearRunData: " + list.size());
310 DbCore.getDaoSession().getCollUserStepEntityDao().deleteByKey(list.get(0).getUserId()); 371 DbCore.getDaoSession().getCollUserStepEntityDao().deleteByKey(list.get(0).getUserId());
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/sql/dao/CollUserStepEntityDao.java
@@ -46,6 +46,8 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin @@ -46,6 +46,8 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin
46 public final static Property EndLatLng = new Property(19, String.class, "endLatLng", false, "END_LAT_LNG"); 46 public final static Property EndLatLng = new Property(19, String.class, "endLatLng", false, "END_LAT_LNG");
47 public final static Property IsArriveEndPoint = new Property(20, boolean.class, "isArriveEndPoint", false, "IS_ARRIVE_END_POINT"); 47 public final static Property IsArriveEndPoint = new Property(20, boolean.class, "isArriveEndPoint", false, "IS_ARRIVE_END_POINT");
48 public final static Property CollStartPointData = new Property(21, String.class, "collStartPointData", false, "COLL_START_POINT_DATA"); 48 public final static Property CollStartPointData = new Property(21, String.class, "collStartPointData", false, "COLL_START_POINT_DATA");
  49 + public final static Property CollEndPointData = new Property(22, String.class, "collEndPointData", false, "COLL_END_POINT_DATA");
  50 + public final static Property EmployTime = new Property(23, String.class, "employTime", false, "EMPLOY_TIME");
49 } 51 }
50 52
51 53
@@ -82,7 +84,9 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin @@ -82,7 +84,9 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin
82 "\"STREET_TITLE\" TEXT," + // 18: streetTitle 84 "\"STREET_TITLE\" TEXT," + // 18: streetTitle
83 "\"END_LAT_LNG\" TEXT," + // 19: endLatLng 85 "\"END_LAT_LNG\" TEXT," + // 19: endLatLng
84 "\"IS_ARRIVE_END_POINT\" INTEGER NOT NULL ," + // 20: isArriveEndPoint 86 "\"IS_ARRIVE_END_POINT\" INTEGER NOT NULL ," + // 20: isArriveEndPoint
85 - "\"COLL_START_POINT_DATA\" TEXT);"); // 21: collStartPointData 87 + "\"COLL_START_POINT_DATA\" TEXT," + // 21: collStartPointData
  88 + "\"COLL_END_POINT_DATA\" TEXT," + // 22: collEndPointData
  89 + "\"EMPLOY_TIME\" TEXT);"); // 23: employTime
86 } 90 }
87 91
88 /** Drops the underlying database table. */ 92 /** Drops the underlying database table. */
@@ -156,6 +160,16 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin @@ -156,6 +160,16 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin
156 if (collStartPointData != null) { 160 if (collStartPointData != null) {
157 stmt.bindString(22, collStartPointData); 161 stmt.bindString(22, collStartPointData);
158 } 162 }
  163 +
  164 + String collEndPointData = entity.getCollEndPointData();
  165 + if (collEndPointData != null) {
  166 + stmt.bindString(23, collEndPointData);
  167 + }
  168 +
  169 + String employTime = entity.getEmployTime();
  170 + if (employTime != null) {
  171 + stmt.bindString(24, employTime);
  172 + }
159 } 173 }
160 174
161 @Override 175 @Override
@@ -223,6 +237,16 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin @@ -223,6 +237,16 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin
223 if (collStartPointData != null) { 237 if (collStartPointData != null) {
224 stmt.bindString(22, collStartPointData); 238 stmt.bindString(22, collStartPointData);
225 } 239 }
  240 +
  241 + String collEndPointData = entity.getCollEndPointData();
  242 + if (collEndPointData != null) {
  243 + stmt.bindString(23, collEndPointData);
  244 + }
  245 +
  246 + String employTime = entity.getEmployTime();
  247 + if (employTime != null) {
  248 + stmt.bindString(24, employTime);
  249 + }
226 } 250 }
227 251
228 @Override 252 @Override
@@ -254,7 +278,9 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin @@ -254,7 +278,9 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin
254 cursor.isNull(offset + 18) ? null : cursor.getString(offset + 18), // streetTitle 278 cursor.isNull(offset + 18) ? null : cursor.getString(offset + 18), // streetTitle
255 cursor.isNull(offset + 19) ? null : cursor.getString(offset + 19), // endLatLng 279 cursor.isNull(offset + 19) ? null : cursor.getString(offset + 19), // endLatLng
256 cursor.getShort(offset + 20) != 0, // isArriveEndPoint 280 cursor.getShort(offset + 20) != 0, // isArriveEndPoint
257 - cursor.isNull(offset + 21) ? null : cursor.getString(offset + 21) // collStartPointData 281 + cursor.isNull(offset + 21) ? null : cursor.getString(offset + 21), // collStartPointData
  282 + cursor.isNull(offset + 22) ? null : cursor.getString(offset + 22), // collEndPointData
  283 + cursor.isNull(offset + 23) ? null : cursor.getString(offset + 23) // employTime
258 ); 284 );
259 return entity; 285 return entity;
260 } 286 }
@@ -283,6 +309,8 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin @@ -283,6 +309,8 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin
283 entity.setEndLatLng(cursor.isNull(offset + 19) ? null : cursor.getString(offset + 19)); 309 entity.setEndLatLng(cursor.isNull(offset + 19) ? null : cursor.getString(offset + 19));
284 entity.setIsArriveEndPoint(cursor.getShort(offset + 20) != 0); 310 entity.setIsArriveEndPoint(cursor.getShort(offset + 20) != 0);
285 entity.setCollStartPointData(cursor.isNull(offset + 21) ? null : cursor.getString(offset + 21)); 311 entity.setCollStartPointData(cursor.isNull(offset + 21) ? null : cursor.getString(offset + 21));
  312 + entity.setCollEndPointData(cursor.isNull(offset + 22) ? null : cursor.getString(offset + 22));
  313 + entity.setEmployTime(cursor.isNull(offset + 23) ? null : cursor.getString(offset + 23));
286 } 314 }
287 315
288 @Override 316 @Override
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/sql/entity/CollUserStepEntity.java
@@ -29,13 +29,14 @@ public class CollUserStepEntity { @@ -29,13 +29,14 @@ public class CollUserStepEntity {
29 private String endLatLng;//终点坐标 29 private String endLatLng;//终点坐标
30 private boolean isArriveEndPoint;//是否到达终点 30 private boolean isArriveEndPoint;//是否到达终点
31 private String collStartPointData;//运营打点名称和经纬度 31 private String collStartPointData;//运营打点名称和经纬度
32 -  
33 - @Generated(hash = 1720877205)  
34 - public CollUserStepEntity(String userId, String date, String stepCount, long recordTime, double caloriesCount,  
35 - String serverTraceData, long startTimeStamp, long finishTimeStamp, String streetId, int pauseCount,  
36 - long userPauseTimeStamp, long chronometerBase, long queryTraceStartTime, long queryTraceEndTime,  
37 - String queryEntityName, long continueTime, long fenceId, String importPoint, String streetTitle,  
38 - String endLatLng, boolean isArriveEndPoint, String collStartPointData) { 32 + private String collEndPointData;//运营结束打点名称和经纬度
  33 + private String employTime;//用时时间戳
  34 +
  35 + @Generated(hash = 148375276)
  36 + public CollUserStepEntity(String userId, String date, String stepCount, long recordTime, double caloriesCount, String serverTraceData,
  37 + long startTimeStamp, long finishTimeStamp, String streetId, int pauseCount, long userPauseTimeStamp, long chronometerBase,
  38 + long queryTraceStartTime, long queryTraceEndTime, String queryEntityName, long continueTime, long fenceId, String importPoint,
  39 + String streetTitle, String endLatLng, boolean isArriveEndPoint, String collStartPointData, String collEndPointData, String employTime) {
39 this.userId = userId; 40 this.userId = userId;
40 this.date = date; 41 this.date = date;
41 this.stepCount = stepCount; 42 this.stepCount = stepCount;
@@ -58,6 +59,8 @@ public class CollUserStepEntity { @@ -58,6 +59,8 @@ public class CollUserStepEntity {
58 this.endLatLng = endLatLng; 59 this.endLatLng = endLatLng;
59 this.isArriveEndPoint = isArriveEndPoint; 60 this.isArriveEndPoint = isArriveEndPoint;
60 this.collStartPointData = collStartPointData; 61 this.collStartPointData = collStartPointData;
  62 + this.collEndPointData = collEndPointData;
  63 + this.employTime = employTime;
61 } 64 }
62 65
63 @Generated(hash = 681143087) 66 @Generated(hash = 681143087)
@@ -242,8 +245,21 @@ public class CollUserStepEntity { @@ -242,8 +245,21 @@ public class CollUserStepEntity {
242 this.collStartPointData = collStartPointData; 245 this.collStartPointData = collStartPointData;
243 } 246 }
244 247
  248 + public String getCollEndPointData() {
  249 + return this.collEndPointData;
  250 + }
  251 +
  252 + public void setCollEndPointData(String collEndPointData) {
  253 + this.collEndPointData = collEndPointData;
  254 + }
245 255
  256 + public String getEmployTime() {
  257 + return this.employTime;
  258 + }
246 259
  260 + public void setEmployTime(String employTime) {
  261 + this.employTime = employTime;
  262 + }
247 263
248 264
249 } 265 }
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/utils/MyMapUtil.java
@@ -258,19 +258,19 @@ public class MyMapUtil { @@ -258,19 +258,19 @@ public class MyMapUtil {
258 int total = response.getTotal(); 258 int total = response.getTotal();
259 Log.e(TAG, "onHistoryTrackCallback: " + response.getMessage()); 259 Log.e(TAG, "onHistoryTrackCallback: " + response.getMessage());
260 if (StatusCodes.SUCCESS != response.getStatus()) { 260 if (StatusCodes.SUCCESS != response.getStatus()) {
261 -// if (response.getStatus() == 14004) {  
262 - //给3次重新查询的机会  
263 - if (queryNum < 4) {  
264 - //重新查询  
265 -// new Handler().postDelayed(new Runnable() {  
266 -// @Override  
267 -// public void run() { 261 + if (response.getStatus() == 14004) {
  262 + //给3次重新查询的机会
  263 + if (queryNum < 4) {
  264 + //重新查询
  265 + new Handler().postDelayed(new Runnable() {
  266 + @Override
  267 + public void run() {
268 // //间隔3秒查一次 268 // //间隔3秒查一次
269 - queryHistoryTrace(context, mClient, entityName, startTime, endTime, callBack);  
270 - queryNum++;  
271 -// }  
272 -// }, 1000);  
273 - 269 + queryHistoryTrace(context, mClient, entityName, startTime, endTime, callBack);
  270 + queryNum++;
  271 + }
  272 + }, 1000);
  273 + }
274 } else { 274 } else {
275 if (callBack != null) { 275 if (callBack != null) {
276 callBack.success(null); 276 callBack.success(null);
moudle_pedometer/src/main/res/layout/fragment_coll_finish_run_map.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<layout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:app="http://schemas.android.com/apk/res-auto">
  4 +
  5 + <FrameLayout
  6 + android:layout_width="match_parent"
  7 + android:layout_height="match_parent">
  8 +
  9 + <com.sothree.slidinguppanel.SlidingUpPanelLayout xmlns:sothree="http://schemas.android.com/apk/res-auto"
  10 + android:id="@+id/sliding_layout"
  11 + android:layout_width="match_parent"
  12 + android:layout_height="match_parent"
  13 + android:gravity="bottom"
  14 + sothree:umanoDragView="@+id/dragView"
  15 + sothree:umanoFadeColor="@color/black_20"
  16 + sothree:umanoOverlay="true"
  17 + sothree:umanoPanelHeight="310dp"
  18 + sothree:umanoParallaxOffset="0dp"
  19 + sothree:umanoScrollableView="@+id/rv_list"
  20 + sothree:umanoShadowHeight="0dp">
  21 +
  22 + <!-- MAIN CONTENT -->
  23 + <FrameLayout
  24 + android:layout_width="match_parent"
  25 + android:layout_height="match_parent">
  26 +
  27 + <com.baidu.mapapi.map.MapView
  28 + android:id="@+id/mapView"
  29 + android:layout_width="match_parent"
  30 + android:layout_height="match_parent"></com.baidu.mapapi.map.MapView>
  31 + <!--地图上面加一层类似于全透明黑色蒙版-->
  32 + <LinearLayout
  33 + android:layout_width="match_parent"
  34 + android:layout_height="match_parent"
  35 + android:background="#0D000000"
  36 + android:clickable="false"
  37 + android:focusable="false"
  38 + android:focusableInTouchMode="false"></LinearLayout>
  39 +
  40 + <FrameLayout
  41 + android:id="@+id/fl_back"
  42 + android:layout_width="55dp"
  43 + android:layout_height="55dp"
  44 + android:background="@drawable/button_fab_white"
  45 + android:focusable="true">
  46 +
  47 + <ImageView
  48 + android:layout_width="12dp"
  49 + android:layout_height="20dp"
  50 + android:layout_gravity="center"
  51 + android:layout_marginLeft="-2dp"
  52 + android:background="@drawable/icon_back"
  53 + android:focusable="false" />
  54 + </FrameLayout>
  55 +
  56 + <FrameLayout
  57 + android:layout_width="55dp"
  58 + android:layout_height="55dp"
  59 + android:layout_gravity="right"
  60 + android:background="@drawable/button_fab_white"
  61 + android:focusable="true"
  62 + android:visibility="gone">
  63 +
  64 + <ImageView
  65 + android:layout_width="19dp"
  66 + android:layout_height="18dp"
  67 + android:layout_gravity="center"
  68 + android:background="@drawable/icon_share" />
  69 + </FrameLayout>
  70 + <!---->
  71 +
  72 +
  73 + </FrameLayout>
  74 +
  75 + <!-- SLIDING LAYOUT -->
  76 + <FrameLayout
  77 + android:id="@+id/dragView"
  78 + android:layout_width="match_parent"
  79 + android:layout_height="wrap_content"
  80 + android:clickable="true"
  81 + android:focusable="false"
  82 + android:orientation="vertical">
  83 +
  84 +
  85 + <LinearLayout
  86 + android:id="@+id/ll_root"
  87 + android:layout_width="match_parent"
  88 + android:layout_height="wrap_content"
  89 + android:layout_marginBottom="40dp"
  90 + android:orientation="vertical">
  91 +
  92 +
  93 + <!--用户个人信息-->
  94 + <include
  95 + android:id="@+id/include_finish_user_info"
  96 + layout="@layout/layout_coll_finish_user_info" />
  97 + </LinearLayout>
  98 +
  99 +
  100 + </FrameLayout>
  101 + </com.sothree.slidinguppanel.SlidingUpPanelLayout>
  102 + <!--按钮-->
  103 + <LinearLayout
  104 + android:id="@+id/rl_scrollView_startBtn"
  105 + android:layout_width="match_parent"
  106 + android:layout_height="40sp"
  107 + android:layout_gravity="bottom"
  108 + android:background="@color/green_round"
  109 + android:gravity="center"
  110 + android:tag="0">
  111 +
  112 +
  113 + <TextView
  114 + android:id="@+id/tv_run_now"
  115 + android:layout_width="wrap_content"
  116 + android:layout_height="wrap_content"
  117 + android:layout_centerInParent="true"
  118 + android:layout_marginLeft="5dp"
  119 + android:clickable="false"
  120 + android:focusableInTouchMode="false"
  121 + android:tag="0"
  122 + android:text="确定轨迹"
  123 + android:textColor="@color/white"
  124 + android:textSize="18sp" />
  125 + </LinearLayout>
  126 + </FrameLayout>
  127 +</layout>
0 \ No newline at end of file 128 \ No newline at end of file
moudle_pedometer/src/main/res/layout/item_coll_take_point.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + android:layout_width="match_parent"
  4 + android:layout_height="wrap_content"
  5 + android:orientation="vertical">
  6 +
  7 + <LinearLayout
  8 + android:layout_width="match_parent"
  9 + android:layout_height="wrap_content"
  10 + android:gravity="center_vertical">
  11 +
  12 + <View
  13 + android:id="@+id/view_circle"
  14 + android:layout_width="6dp"
  15 + android:layout_height="6dp"
  16 + android:layout_marginLeft="15dp"
  17 + android:background="@drawable/shape_circle_gray" />
  18 +
  19 + <TextView
  20 + android:id="@+id/tv_point_type_tip"
  21 + android:layout_width="wrap_content"
  22 + android:layout_height="wrap_content"
  23 + android:layout_marginLeft="10dp"
  24 + android:text="@string/layout_coll_take_point_text"
  25 + android:textColor="@color/text_gray"
  26 + android:textSize="12sp" />
  27 +
  28 + <TextView
  29 + android:id="@+id/tv_take_point"
  30 + android:layout_width="wrap_content"
  31 + android:layout_height="wrap_content"
  32 + android:layout_marginLeft="10dp"
  33 + android:text="--"
  34 + android:textColor="@color/black"
  35 + android:textSize="12sp" />
  36 + </LinearLayout>
  37 + <!--竖线-->
  38 + <View
  39 + android:id="@+id/view_line"
  40 + android:layout_width="1dp"
  41 + android:layout_height="18dp"
  42 + android:layout_marginLeft="17dp"
  43 + android:layout_marginTop="-3dp"
  44 + android:background="@color/vertical_line" />
  45 +</LinearLayout>
0 \ No newline at end of file 46 \ No newline at end of file
moudle_pedometer/src/main/res/layout/layout_coll_finish_user_info.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<layout xmlns:android="http://schemas.android.com/apk/res/android">
  3 +
  4 + <FrameLayout xmlns:app="http://schemas.android.com/apk/res-auto"
  5 + android:layout_width="match_parent"
  6 + android:layout_height="match_parent">
  7 +
  8 + <LinearLayout
  9 + android:layout_width="match_parent"
  10 + android:layout_height="match_parent"
  11 + android:layout_marginTop="30dp"
  12 + android:background="@color/white"
  13 + android:orientation="vertical">
  14 +
  15 + <TextView
  16 + android:id="@+id/tv_user_nickName"
  17 + android:layout_width="wrap_content"
  18 + android:layout_height="wrap_content"
  19 + android:layout_marginLeft="80dp"
  20 + android:layout_marginTop="10dp"
  21 + android:text="--"
  22 + android:textColor="@color/text_black"
  23 + android:textSize="13sp" />
  24 + <!---->
  25 + <LinearLayout
  26 + android:layout_width="match_parent"
  27 + android:layout_height="wrap_content"
  28 + android:gravity="center_vertical">
  29 +
  30 + <LinearLayout
  31 + android:layout_width="0dp"
  32 + android:layout_height="wrap_content"
  33 + android:layout_weight="1"
  34 + android:orientation="vertical">
  35 +
  36 + <TextView
  37 + android:id="@+id/tv_street_name"
  38 + android:layout_width="wrap_content"
  39 + android:layout_height="wrap_content"
  40 + android:layout_marginLeft="15dp"
  41 + android:layout_marginTop="15dp"
  42 + android:text="--"
  43 + android:textColor="@color/text_black"
  44 + android:textSize="15sp" />
  45 +
  46 + <TextView
  47 + android:id="@+id/tv_date"
  48 + android:layout_width="wrap_content"
  49 + android:layout_height="wrap_content"
  50 + android:layout_marginLeft="15dp"
  51 + android:layout_marginTop="5dp"
  52 + android:text="--"
  53 + android:textColor="@color/text_gray"
  54 + android:textSize="10sp" />
  55 + </LinearLayout>
  56 + <!---->
  57 + <LinearLayout
  58 + android:layout_width="0dp"
  59 + android:layout_height="wrap_content"
  60 + android:layout_weight="1"
  61 + android:gravity="right|bottom">
  62 +
  63 + <TextView
  64 + android:id="@+id/tv_distance"
  65 + android:layout_width="wrap_content"
  66 + android:layout_height="wrap_content"
  67 + android:layout_marginRight="10dp"
  68 + android:text="--"
  69 + android:textColor="@color/text_black"
  70 + android:textSize="45sp"
  71 + android:textStyle="bold" />
  72 +
  73 + <TextView
  74 + android:layout_width="wrap_content"
  75 + android:layout_height="wrap_content"
  76 + android:layout_marginRight="15dp"
  77 + android:text="公里"
  78 + android:textColor="@color/text_black"
  79 + android:textSize="15sp" />
  80 + </LinearLayout>
  81 + <!---->
  82 + </LinearLayout>
  83 + <!--横线-->
  84 + <View
  85 + android:layout_width="match_parent"
  86 + android:layout_height="1dp"
  87 + android:layout_marginLeft="10dp"
  88 + android:layout_marginTop="10dp"
  89 + android:layout_marginRight="10dp"
  90 + android:background="@color/line" />
  91 + <!--起点-->
  92 + <!--打点-->
  93 + <LinearLayout
  94 + android:layout_width="match_parent"
  95 + android:layout_height="wrap_content"
  96 + android:layout_marginTop="-3dp"
  97 + android:gravity="center_vertical">
  98 +
  99 + <android.support.v7.widget.RecyclerView
  100 + android:id="@+id/rv_list"
  101 + android:layout_width="match_parent"
  102 + android:layout_height="wrap_content"
  103 + android:paddingTop="10dp"
  104 + android:paddingBottom="10dp"></android.support.v7.widget.RecyclerView>
  105 + </LinearLayout>
  106 + <!---->
  107 + </LinearLayout>
  108 +
  109 + <com.qmuiteam.qmui.widget.QMUIRadiusImageView
  110 + android:id="@+id/qm_iv_icon"
  111 + android:layout_width="60dp"
  112 + android:layout_height="60dp"
  113 + android:layout_marginLeft="10dp"
  114 + android:background="@drawable/tc_ic_workout_level_adjust_coach"
  115 + app:qmui_corner_radius="100dp" />
  116 + </FrameLayout>
  117 +</layout>
0 \ No newline at end of file 118 \ No newline at end of file
moudle_pedometer/src/main/res/values/strings.xml
@@ -90,6 +90,7 @@ @@ -90,6 +90,7 @@
90 <string name="no_fail_line_text_tip">没有上传失败的路线哦</string> 90 <string name="no_fail_line_text_tip">没有上传失败的路线哦</string>
91 <string name="run_race_far_tip">您距离起点较远\n请到达起点附近再开始</string> 91 <string name="run_race_far_tip">您距离起点较远\n请到达起点附近再开始</string>
92 <string name="run_race_arrive_end_tip">您已到达终点附近\n可以结束运动了</string> 92 <string name="run_race_arrive_end_tip">您已到达终点附近\n可以结束运动了</string>
  93 + <string name="layout_coll_take_point_text">(打点)</string>
93 94
94 95
95 </resources> 96 </resources>