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 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 201 * @param context
160 202 */
... ... @@ -165,7 +207,6 @@ public class CollCommonInfo {
165 207 MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).removeKey("CollstepStartTime");
166 208 MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).removeKey("CollKeepAliveService");
167 209 MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).removeKey("CollRunBaiduTraceService");
168   - MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).removeKey("CollstreetId");
169 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 1 package com.cnlive.moudle.collectionTrace.frame.view;
2 2  
3 3 import android.content.Context;
  4 +import android.support.v7.widget.LinearLayoutManager;
  5 +import android.text.TextUtils;
4 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 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 13 import com.cnlive.moudle.pedometer.model.RunningFinishBean;
  14 +import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity;
8 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 19 import com.hannesdorfmann.mosby3.mvp.MvpView;
10 20  
  21 +import java.util.ArrayList;
  22 +import java.util.List;
  23 +
11 24 public class CollRunningFinishFragmentView implements MvpView {
12 25 private CollRunningFinishFragment fragment;
  26 + private CollFinishDetaiAdapter adapter;
13 27  
14 28 public CollRunningFinishFragmentView(CollRunningFinishFragment fragment) {
15 29 this.fragment = fragment;
... ... @@ -19,23 +33,56 @@ public class CollRunningFinishFragmentView implements MvpView {
19 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 87 fragment.binding.flBack.setOnClickListener(new View.OnClickListener() {
41 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 35 import com.baidu.trace.model.SortType;
36 36 import com.cnlive.moudle.collectionTrace.model.CollectPoint;
37 37 import com.cnlive.moudle.collectionTrace.service.CollStepService;
  38 +import com.cnlive.moudle.collectionTrace.ui.activity.CollRunningFinishActivity;
38 39 import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunningMapFragment;
39 40 import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo;
40 41 import com.cnlive.moudle.pedometer.model.Constant;
... ... @@ -46,6 +47,7 @@ import com.cnlive.moudle.pedometer.utils.ButtonAnimUtil;
46 47 import com.cnlive.moudle.collectionTrace.utils.CollStepUtil;
47 48 import com.cnlive.moudle.pedometer.utils.GsonUtil;
48 49 import com.cnlive.moudle.pedometer.utils.MyMapUtil;
  50 +import com.cnlive.moudle.pedometer.utils.StepUtil;
49 51 import com.cnlive.moudle.pedometer.utils.TimeUtil;
50 52 import com.example.moudle_pedometer.R;
51 53 import com.hannesdorfmann.mosby3.mvp.MvpView;
... ... @@ -81,9 +83,13 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
81 83 private RunRaceDetailInfo runRaceDetailInfo;
82 84 private List<Overlay> allMapOverlays;
83 85 private SelectDialog selectDialog;
  86 + private SelectDialog endSelectDialog;
84 87 private boolean isShowFollowAddress = false;//是否显示跟随地址
  88 + private boolean isShowEndFollowAddress = false;//是否显示结束跟随地址
  89 +
85 90 private String currentAddress;
86 91 private LatLng currentImportLatLng;
  92 + private String employTime = "";//用时
87 93  
88 94 public CollRunningMapFragmentView(CollRunningMapFragment fragment) {
89 95 this.fragment = fragment;
... ... @@ -95,6 +101,7 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
95 101  
96 102 public void initView(RunRaceDetailInfo runRaceDetailInfo) {
97 103 initSelectDialog();
  104 + initFinishSelectDialog();
98 105 this.runRaceDetailInfo = runRaceDetailInfo;
99 106 uid = CollCommonInfo.getUserId(getContext());
100 107 userStepEntity = CollStepUtil.getCollUserStepData(getContext(), uid);
... ... @@ -106,7 +113,7 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
106 113 CollStepUtil.setCollStreetTitle(getContext(), CollCommonInfo.getUserId(getContext()), runRaceDetailInfo.getTitle());
107 114 }
108 115 //设置开始时间和赛事id
109   - if (0 == userStepEntity.getStartTimeStamp()) {
  116 + if (TextUtils.isEmpty(userStepEntity.getStreetId())) {
110 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 132 collectPoint.setLongitude(latLng.longitude);
126 133 collectPoint.setPointName(runRaceDetailInfo.getCollStartLntLngName());
127 134 CollStepUtil.setCollStartPointData(getContext(), uid, collectPoint);
  135 +
128 136 }
129 137 }
130 138 }
... ... @@ -244,11 +252,11 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
244 252 //更新可打点数量
245 253 int remainNum = updataCanTakePointCount();
246 254 if (remainNum != 0) {
  255 + if (null != followMyLocation) {
  256 + currentImportLatLng = new LatLng(followMyLocation.latitude, followMyLocation.longitude);
  257 + }
247 258 //获取当前地点
248 259 if (!TextUtils.isEmpty(currentAddress)) {
249   - if (null != followMyLocation) {
250   - currentImportLatLng = new LatLng(followMyLocation.latitude, followMyLocation.longitude);
251   - }
252 260 selectDialog.setTipMessage("确定在" + "\"" + currentAddress + "\"" + "打点?");
253 261 selectDialog.show();
254 262 } else {
... ... @@ -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 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 386 private void initChrom() {
320 387 //设置计时监听
321 388 fragment.binding.chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
... ... @@ -324,6 +391,8 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
324 391 int hour = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 / 60 / 60);
325 392 int minute = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 / 60) % 60;
326 393 int second = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000) % 60;
  394 + employTime = (hour * 3600 + minute * 60 + second) + "";
  395 +
327 396 if (hour < 1) {
328 397 if (minute == 59 && second == 59) {
329 398 chronometer.setFormat("0" + "%s");
... ... @@ -523,8 +592,6 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener
523 592 }
524 593  
525 594 if (isShowFollowAddress && !TextUtils.isEmpty(currentAddress)) {
526   - //设置当前打点经纬度
527   - currentImportLatLng = new LatLng(location.getLatitude(), location.getLongitude());
528 595 if (isShowFollowAddress && selectDialog != null && !selectDialog.isShowing()) {
529 596 if (!TextUtils.isEmpty(currentAddress)) {
530 597 selectDialog.setTipMessage("确定将" + "\"" + currentAddress + "\"" + "设置开始地点?");
... ... @@ -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 618 //正在搜索GPS信号
540 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 29 import com.baidu.mapapi.model.LatLng;
30 30 import com.cnlive.moudle.collectionTrace.service.CollKeepLiveService;
31 31 import com.cnlive.moudle.collectionTrace.service.CollStepService;
  32 +import com.cnlive.moudle.collectionTrace.ui.activity.CollRunRaceDetailActivity;
32 33 import com.cnlive.moudle.collectionTrace.ui.activity.CollRunningMapActivity;
33 34 import com.cnlive.moudle.collectionTrace.ui.fragment.StartTraceFragment;
34 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 38 import com.cnlive.moudle.pedometer.model.Constant;
36 39 import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo;
  40 +import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity;
37 41 import com.cnlive.moudle.pedometer.ui.widget.SelectDialog;
38 42 import com.cnlive.moudle.pedometer.utils.BitmapUtil;
39 43 import com.cnlive.moudle.pedometer.utils.GsonUtil;
... ... @@ -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 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 11 import com.cnlive.libs.base.ui.QMUIFragmentActivity;
12 12 import com.cnlive.libs.base.util.StatusBarUtil;
13 13 import com.cnlive.libs.base.util.StatusBarUtil2;
  14 +import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo;
14 15 import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunMainFragment;
15 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 21 import com.cnlive.moudle.pedometer.utils.CheckUtil;
17 22 import com.example.moudle_pedometer.R;
18 23  
... ... @@ -26,9 +31,11 @@ public class CollRunRaceDetailActivity extends QMUIFragmentActivity {
26 31 private final String TAG = "CollRunRaceDetail";
27 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 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 31 protected void onCreate(Bundle savedInstanceState) {
32 32 super.onCreate(savedInstanceState);
33 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 41 getSupportFragmentManager().beginTransaction()
44 42 .add(getContextViewId(), fragment, fragment.getClass().getSimpleName())
45 43 .addToBackStack(fragment.getClass().getSimpleName())
... ... @@ -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 56 Intent intent = new Intent(activity, CollRunningFinishActivity.class);
59   - intent.putExtra("runningFinishBean", runningFinishBean);
60 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 7 import com.cnlive.libs.base.ui.QMUIFragment;
8 8 import com.cnlive.moudle.collectionTrace.frame.presenter.CollRunningFinishFragmetPresenter;
9 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 12 import com.cnlive.moudle.pedometer.frame.presenter.RunningFinishFragmetPresenter;
11 13 import com.cnlive.moudle.pedometer.model.RunningFinishBean;
  14 +import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity;
12 15 import com.example.moudle_pedometer.R;
  16 +import com.example.moudle_pedometer.databinding.FragmentCollFinishRunMapBinding;
13 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 33 @Override
30 34 protected int getToolbarId() {
... ... @@ -38,21 +42,20 @@ public class CollRunningFinishFragment extends QMUIFragment&lt;CollRunningFinishFra
38 42  
39 43 @Override
40 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 48 @Override
45 49 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
46 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 77 //为系统的方向传感器注册监听器
78 78 mSensorManager.registerListener(getMvpView(), mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
79 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 119 if (getMvpView() != null) {
119 120 QMUITipDialogUtil.dismessDialog();
120 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 12 import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity;
13 13 import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity;
14 14 import com.cnlive.moudle.pedometer.utils.GsonUtil;
  15 +import com.cnlive.moudle.pedometer.utils.TimeUtil;
15 16  
16 17 import java.text.SimpleDateFormat;
17 18 import java.util.ArrayList;
... ... @@ -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 99 * @param context
... ... @@ -304,7 +365,7 @@ public class CollStepUtil {
304 365 public static void clearRunData(Context context, String uid) {
305 366 DbCore.init(context, dbName);
306 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 369 if (list != null && list.size() > 0) {
309 370 Log.e(TAG, "clearRunData: " + list.size());
310 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 46 public final static Property EndLatLng = new Property(19, String.class, "endLatLng", false, "END_LAT_LNG");
47 47 public final static Property IsArriveEndPoint = new Property(20, boolean.class, "isArriveEndPoint", false, "IS_ARRIVE_END_POINT");
48 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 84 "\"STREET_TITLE\" TEXT," + // 18: streetTitle
83 85 "\"END_LAT_LNG\" TEXT," + // 19: endLatLng
84 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 92 /** Drops the underlying database table. */
... ... @@ -156,6 +160,16 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin
156 160 if (collStartPointData != null) {
157 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 175 @Override
... ... @@ -223,6 +237,16 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin
223 237 if (collStartPointData != null) {
224 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 252 @Override
... ... @@ -254,7 +278,9 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin
254 278 cursor.isNull(offset + 18) ? null : cursor.getString(offset + 18), // streetTitle
255 279 cursor.isNull(offset + 19) ? null : cursor.getString(offset + 19), // endLatLng
256 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 285 return entity;
260 286 }
... ... @@ -283,6 +309,8 @@ public class CollUserStepEntityDao extends AbstractDao&lt;CollUserStepEntity, Strin
283 309 entity.setEndLatLng(cursor.isNull(offset + 19) ? null : cursor.getString(offset + 19));
284 310 entity.setIsArriveEndPoint(cursor.getShort(offset + 20) != 0);
285 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 316 @Override
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/sql/entity/CollUserStepEntity.java
... ... @@ -29,13 +29,14 @@ public class CollUserStepEntity {
29 29 private String endLatLng;//终点坐标
30 30 private boolean isArriveEndPoint;//是否到达终点
31 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 40 this.userId = userId;
40 41 this.date = date;
41 42 this.stepCount = stepCount;
... ... @@ -58,6 +59,8 @@ public class CollUserStepEntity {
58 59 this.endLatLng = endLatLng;
59 60 this.isArriveEndPoint = isArriveEndPoint;
60 61 this.collStartPointData = collStartPointData;
  62 + this.collEndPointData = collEndPointData;
  63 + this.employTime = employTime;
61 64 }
62 65  
63 66 @Generated(hash = 681143087)
... ... @@ -242,8 +245,21 @@ public class CollUserStepEntity {
242 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 258 int total = response.getTotal();
259 259 Log.e(TAG, "onHistoryTrackCallback: " + response.getMessage());
260 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 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 274 } else {
275 275 if (callBack != null) {
276 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 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 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 118 \ No newline at end of file
... ...
moudle_pedometer/src/main/res/values/strings.xml
... ... @@ -90,6 +90,7 @@
90 90 <string name="no_fail_line_text_tip">没有上传失败的路线哦</string>
91 91 <string name="run_race_far_tip">您距离起点较远\n请到达起点附近再开始</string>
92 92 <string name="run_race_arrive_end_tip">您已到达终点附近\n可以结束运动了</string>
  93 + <string name="layout_coll_take_point_text">(打点)</string>
93 94  
94 95  
95 96 </resources>
... ...