Commit b3f8d7523aa5f1ef869c839293ee7758d354f57f
1 parent
13527623
1 修改跑步完成页面,查询轨迹逻辑
Showing
1 changed file
with
112 additions
and
67 deletions
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/presenter/RunningFinishFragmetPresenter.java
| @@ -2,24 +2,17 @@ package com.cnlive.moudle.pedometer.frame.presenter; | @@ -2,24 +2,17 @@ package com.cnlive.moudle.pedometer.frame.presenter; | ||
| 2 | 2 | ||
| 3 | import android.app.Activity; | 3 | import android.app.Activity; |
| 4 | import android.content.Context; | 4 | import android.content.Context; |
| 5 | -import android.graphics.Bitmap; | ||
| 6 | -import android.os.Handler; | ||
| 7 | import android.text.TextUtils; | 5 | import android.text.TextUtils; |
| 8 | import android.util.Log; | 6 | import android.util.Log; |
| 9 | -import android.view.View; | ||
| 10 | import android.widget.Toast; | 7 | import android.widget.Toast; |
| 11 | 8 | ||
| 12 | -import com.baidu.mapapi.map.BaiduMap; | ||
| 13 | import com.baidu.mapapi.model.LatLng; | 9 | import com.baidu.mapapi.model.LatLng; |
| 14 | import com.baidu.trace.LBSTraceClient; | 10 | import com.baidu.trace.LBSTraceClient; |
| 15 | import com.baidu.trace.model.SortType; | 11 | import com.baidu.trace.model.SortType; |
| 16 | -import com.cnlive.libs.base.logic.Event; | ||
| 17 | import com.cnlive.libs.base.logic.Logic; | 12 | import com.cnlive.libs.base.logic.Logic; |
| 18 | import com.cnlive.libs.base.logic.callback.DataCallback; | 13 | import com.cnlive.libs.base.logic.callback.DataCallback; |
| 19 | import com.cnlive.libs.base.logic.callback.FailureCallback; | 14 | import com.cnlive.libs.base.logic.callback.FailureCallback; |
| 20 | -import com.cnlive.libs.base.logic.callback.StateCallback; | ||
| 21 | import com.cnlive.libs.base.logic.callback.SuccessCallback; | 15 | import com.cnlive.libs.base.logic.callback.SuccessCallback; |
| 22 | -import com.cnlive.libs.base.util.ToastUtil; | ||
| 23 | import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; | 16 | import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; |
| 24 | import com.cnlive.moudle.pedometer.frame.view.RunningFinishFragmentView; | 17 | import com.cnlive.moudle.pedometer.frame.view.RunningFinishFragmentView; |
| 25 | import com.cnlive.moudle.pedometer.model.Constant; | 18 | import com.cnlive.moudle.pedometer.model.Constant; |
| @@ -27,36 +20,24 @@ import com.cnlive.moudle.pedometer.model.RunningFinishBean; | @@ -27,36 +20,24 @@ import com.cnlive.moudle.pedometer.model.RunningFinishBean; | ||
| 27 | import com.cnlive.moudle.pedometer.net.ApiServiceRunLin; | 20 | import com.cnlive.moudle.pedometer.net.ApiServiceRunLin; |
| 28 | import com.cnlive.moudle.pedometer.net.SubscriptionRequest; | 21 | import com.cnlive.moudle.pedometer.net.SubscriptionRequest; |
| 29 | import com.cnlive.moudle.pedometer.net.bean.BaseInfo; | 22 | import com.cnlive.moudle.pedometer.net.bean.BaseInfo; |
| 30 | -import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo; | ||
| 31 | -import com.cnlive.moudle.pedometer.service.StepService; | ||
| 32 | import com.cnlive.moudle.pedometer.sql.entity.FailedEntity; | 23 | import com.cnlive.moudle.pedometer.sql.entity.FailedEntity; |
| 33 | import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity; | 24 | import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity; |
| 34 | import com.cnlive.moudle.pedometer.ui.activity.LineUpAgainActivity; | 25 | import com.cnlive.moudle.pedometer.ui.activity.LineUpAgainActivity; |
| 35 | import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; | 26 | import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; |
| 36 | -import com.cnlive.moudle.pedometer.ui.widget.TipDialog; | ||
| 37 | -import com.cnlive.moudle.pedometer.upload.UploadLogic; | ||
| 38 | import com.cnlive.moudle.pedometer.utils.GsonUtil; | 27 | import com.cnlive.moudle.pedometer.utils.GsonUtil; |
| 39 | import com.cnlive.moudle.pedometer.utils.MyMapUtil; | 28 | import com.cnlive.moudle.pedometer.utils.MyMapUtil; |
| 40 | import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil; | 29 | import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil; |
| 41 | import com.cnlive.moudle.pedometer.utils.StepUtil; | 30 | import com.cnlive.moudle.pedometer.utils.StepUtil; |
| 42 | -import com.cnlive.moudle.pedometer.utils.TimeUtil; | ||
| 43 | import com.example.moudle_pedometer.R; | 31 | import com.example.moudle_pedometer.R; |
| 44 | import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; | 32 | import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; |
| 45 | 33 | ||
| 46 | -import java.io.File; | ||
| 47 | -import java.io.FileOutputStream; | ||
| 48 | -import java.text.SimpleDateFormat; | ||
| 49 | import java.util.ArrayList; | 34 | import java.util.ArrayList; |
| 50 | -import java.util.Date; | ||
| 51 | import java.util.HashMap; | 35 | import java.util.HashMap; |
| 52 | import java.util.List; | 36 | import java.util.List; |
| 53 | import java.util.Map; | 37 | import java.util.Map; |
| 54 | 38 | ||
| 55 | import io.reactivex.disposables.Disposable; | 39 | import io.reactivex.disposables.Disposable; |
| 56 | 40 | ||
| 57 | -import static com.cnlive.libs.base.logic.Config.STATE_IDLE; | ||
| 58 | -import static com.cnlive.libs.base.logic.Config.STATE_LOAD; | ||
| 59 | - | ||
| 60 | public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinishFragmentView> { | 41 | public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinishFragmentView> { |
| 61 | private LBSTraceClient mClient = null; | 42 | private LBSTraceClient mClient = null; |
| 62 | private List<LatLng> importPoints; | 43 | private List<LatLng> importPoints; |
| @@ -103,7 +84,7 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinis | @@ -103,7 +84,7 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinis | ||
| 103 | isPause = "1"; | 84 | isPause = "1"; |
| 104 | } | 85 | } |
| 105 | //继续时间 | 86 | //继续时间 |
| 106 | - String continueTime = userStepEntity.getContinueTime()+""; | 87 | + String continueTime = userStepEntity.getContinueTime() + ""; |
| 107 | //是否完成 | 88 | //是否完成 |
| 108 | String completeStatus = runningFinishBean.getIsFinish(); | 89 | String completeStatus = runningFinishBean.getIsFinish(); |
| 109 | //设置步数 | 90 | //设置步数 |
| @@ -201,7 +182,14 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinis | @@ -201,7 +182,14 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinis | ||
| 201 | //查询当前用户的历史轨迹 | 182 | //查询当前用户的历史轨迹 |
| 202 | long startTime = userStepEntity.getStartTimeStamp(); | 183 | long startTime = userStepEntity.getStartTimeStamp(); |
| 203 | //获取当前的时间戳(秒) | 184 | //获取当前的时间戳(秒) |
| 204 | - long endTime = userStepEntity.getFinishTimeStamp(); | 185 | + long endTime = 0; |
| 186 | + if (userStepEntity.getPauseCount() == 0) { | ||
| 187 | + //没有暂停 | ||
| 188 | + endTime = userStepEntity.getFinishTimeStamp(); | ||
| 189 | + } else { | ||
| 190 | + //暂停了 | ||
| 191 | + endTime = userStepEntity.getUserPauseTimeStamp(); | ||
| 192 | + } | ||
| 205 | //获取当前的实体名称 | 193 | //获取当前的实体名称 |
| 206 | String entityName = CommonInfo.getUserId(context); | 194 | String entityName = CommonInfo.getUserId(context); |
| 207 | //打的重要点 | 195 | //打的重要点 |
| @@ -212,71 +200,128 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinis | @@ -212,71 +200,128 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinis | ||
| 212 | if (mClient == null) { | 200 | if (mClient == null) { |
| 213 | mClient = new LBSTraceClient(context); | 201 | mClient = new LBSTraceClient(context); |
| 214 | } | 202 | } |
| 203 | + List<LatLng> allResults = new ArrayList<>(); | ||
| 215 | MyMapUtil.queryHistoryTrace(context, mClient, entityName, startTime, endTime, new MyMapUtil.CallBack() { | 204 | MyMapUtil.queryHistoryTrace(context, mClient, entityName, startTime, endTime, new MyMapUtil.CallBack() { |
| 216 | @Override | 205 | @Override |
| 217 | public void success(List<LatLng> resultPoints) { | 206 | public void success(List<LatLng> resultPoints) { |
| 218 | if (resultPoints != null) { | 207 | if (resultPoints != null) { |
| 219 | if (getView() != null) { | 208 | if (getView() != null) { |
| 209 | + allResults.addAll(resultPoints); | ||
| 220 | QMUITipDialogUtil.dismessDialog(); | 210 | QMUITipDialogUtil.dismessDialog(); |
| 221 | - MyMapUtil.drawHistoryTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, R.drawable.icon_start, R.drawable.icon_end); | ||
| 222 | - //先判断是否到达终点 | ||
| 223 | - if (!userStepEntity.getIsArriveEndPoint()) { | ||
| 224 | - runningFinishBean.setIsFinish("0"); | 211 | + //判断用户是否点击暂停按钮 |
| 212 | + if (userStepEntity.getPauseCount() == 0) { | ||
| 213 | + MyMapUtil.drawHistoryTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, R.drawable.icon_start, R.drawable.icon_end); | ||
| 214 | + //没有点击暂停 | ||
| 215 | + //先判断是否到达终点 | ||
| 216 | + checkUserIsFinish(resultPoints, userStepEntity, runningFinishBean, context); | ||
| 217 | + saveRouteData(context, userStepEntity, runningFinishBean); | ||
| 225 | } else { | 218 | } else { |
| 226 | - if (importPoints != null) { | ||
| 227 | - //判断是否完成 | ||
| 228 | - boolean isFinish = MyMapUtil.checkIsFinishTrace(importPoints, resultPoints, Constant.PASS_RATE); | ||
| 229 | - if (isFinish) { | ||
| 230 | - Toast.makeText(context, "完成", Toast.LENGTH_LONG).show(); | ||
| 231 | - runningFinishBean.setIsFinish("1"); | ||
| 232 | - } else { | ||
| 233 | - Toast.makeText(context, "没有完成", Toast.LENGTH_LONG).show(); | ||
| 234 | - runningFinishBean.setIsFinish("0"); | ||
| 235 | - } | ||
| 236 | - } | 219 | + MyMapUtil.drawHistoryTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, R.drawable.icon_start, 0); |
| 237 | } | 220 | } |
| 238 | - saveRouteData(context, userStepEntity, runningFinishBean); | ||
| 239 | 221 | ||
| 222 | + //如果点击暂停 | ||
| 223 | + if (userStepEntity.getPauseCount() != 0) { | ||
| 224 | + long contineTime = userStepEntity.getContinueTime(); | ||
| 225 | + long finishTime = userStepEntity.getFinishTimeStamp(); | ||
| 226 | + //开始查询 | ||
| 227 | + MyMapUtil.queryHistoryTrace(context, mClient, entityName, contineTime, finishTime, new MyMapUtil.CallBack() { | ||
| 228 | + @Override | ||
| 229 | + public void success(List<LatLng> resultPoints) { | ||
| 230 | + if (null != resultPoints) { | ||
| 231 | + allResults.addAll(resultPoints); | ||
| 232 | + //判断用户是否完成 | ||
| 233 | + if (importPoints != null) { | ||
| 234 | + //先判断是否到达终点 | ||
| 235 | + checkUserIsFinish(resultPoints, userStepEntity, runningFinishBean, context); | ||
| 236 | + saveRouteData(context, userStepEntity, runningFinishBean); | ||
| 237 | + } | ||
| 238 | + | ||
| 239 | + } else { | ||
| 240 | + //查询失败 | ||
| 241 | + QMUITipDialogUtil.dismessDialog(); | ||
| 242 | + queryTraceFaile(context, userStepEntity, runningFinishBean); | ||
| 243 | + // | ||
| 244 | + } | ||
| 245 | + } | ||
| 246 | + }); | ||
| 247 | + } | ||
| 240 | } | 248 | } |
| 241 | } | 249 | } |
| 242 | //查询失败 | 250 | //查询失败 |
| 243 | else { | 251 | else { |
| 244 | QMUITipDialogUtil.dismessDialog(); | 252 | QMUITipDialogUtil.dismessDialog(); |
| 245 | - if (failTraceDialog == null) { | ||
| 246 | - failTraceDialog = new SelectDialog(context, "获取轨迹失败,是否重试?", "重试", new SelectDialog.DialogInterface() { | ||
| 247 | - @Override | ||
| 248 | - public void onClick(SelectDialog dialog) { | ||
| 249 | - dialog.dismiss(); | ||
| 250 | - queryHistoryTrace(context, userStepEntity, runningFinishBean); | ||
| 251 | - } | ||
| 252 | - }, "暂存", new SelectDialog.DialogInterface() { | ||
| 253 | - @Override | ||
| 254 | - public void onClick(SelectDialog dialog) { | ||
| 255 | - dialog.dismiss(); | ||
| 256 | - StepUtil.clearRunData(context, CommonInfo.getUserId(context)); | ||
| 257 | - CommonInfo.reset(context); | ||
| 258 | - //跳转到上传失败列表 | ||
| 259 | - LineUpAgainActivity.newInstance(context); | ||
| 260 | - //关闭当前窗口 | ||
| 261 | - context.finish(); | 253 | + queryTraceFaile(context, userStepEntity, runningFinishBean); |
| 254 | + } | ||
| 255 | + } | ||
| 256 | + }); | ||
| 262 | 257 | ||
| 263 | - } | ||
| 264 | - }); | ||
| 265 | - failTraceDialog.setCanceledOnTouchOutside(false); | ||
| 266 | - failTraceDialog.setCancelable(false); | ||
| 267 | - if (!failTraceDialog.isShowing()) { | ||
| 268 | - failTraceDialog.show(); | ||
| 269 | - } | 258 | + } |
| 270 | 259 | ||
| 271 | - } else { | ||
| 272 | - if (!failTraceDialog.isShowing()) { | ||
| 273 | - failTraceDialog.show(); | ||
| 274 | - } | ||
| 275 | - } | 260 | + /** |
| 261 | + * 判断用户是否完成 | ||
| 262 | + * | ||
| 263 | + * @param resultPoints | ||
| 264 | + * @param userStepEntity | ||
| 265 | + * @param runningFinishBean | ||
| 266 | + * @param context | ||
| 267 | + */ | ||
| 268 | + public void checkUserIsFinish(List<LatLng> resultPoints, UserStepEntity userStepEntity, RunningFinishBean runningFinishBean, Activity context) { | ||
| 269 | + if (!userStepEntity.getIsArriveEndPoint()) { | ||
| 270 | + runningFinishBean.setIsFinish("0"); | ||
| 271 | + } else { | ||
| 272 | + if (importPoints != null) { | ||
| 273 | + //判断是否完成 | ||
| 274 | + boolean isFinish = MyMapUtil.checkIsFinishTrace(importPoints, resultPoints, Constant.PASS_RATE); | ||
| 275 | + if (isFinish) { | ||
| 276 | + Toast.makeText(context, "完成", Toast.LENGTH_LONG).show(); | ||
| 277 | + runningFinishBean.setIsFinish("1"); | ||
| 278 | + } else { | ||
| 279 | + Toast.makeText(context, "没有完成", Toast.LENGTH_LONG).show(); | ||
| 280 | + runningFinishBean.setIsFinish("0"); | ||
| 276 | } | 281 | } |
| 277 | } | 282 | } |
| 278 | - }); | 283 | + } |
| 284 | + } | ||
| 279 | 285 | ||
| 286 | + /** | ||
| 287 | + * 查询历史轨迹失败 | ||
| 288 | + * | ||
| 289 | + * @param context | ||
| 290 | + * @param userStepEntity | ||
| 291 | + * @param runningFinishBean | ||
| 292 | + */ | ||
| 293 | + public void queryTraceFaile(Activity context, UserStepEntity userStepEntity, RunningFinishBean runningFinishBean) { | ||
| 294 | + if (failTraceDialog == null) { | ||
| 295 | + failTraceDialog = new SelectDialog(context, "获取轨迹失败,是否重试?", "重试", new SelectDialog.DialogInterface() { | ||
| 296 | + @Override | ||
| 297 | + public void onClick(SelectDialog dialog) { | ||
| 298 | + dialog.dismiss(); | ||
| 299 | + queryHistoryTrace(context, userStepEntity, runningFinishBean); | ||
| 300 | + } | ||
| 301 | + }, "暂存", new SelectDialog.DialogInterface() { | ||
| 302 | + @Override | ||
| 303 | + public void onClick(SelectDialog dialog) { | ||
| 304 | + dialog.dismiss(); | ||
| 305 | + StepUtil.clearRunData(context, CommonInfo.getUserId(context)); | ||
| 306 | + CommonInfo.reset(context); | ||
| 307 | + //跳转到上传失败列表 | ||
| 308 | + LineUpAgainActivity.newInstance(context); | ||
| 309 | + //关闭当前窗口 | ||
| 310 | + context.finish(); | ||
| 311 | + | ||
| 312 | + } | ||
| 313 | + }); | ||
| 314 | + failTraceDialog.setCanceledOnTouchOutside(false); | ||
| 315 | + failTraceDialog.setCancelable(false); | ||
| 316 | + if (!failTraceDialog.isShowing()) { | ||
| 317 | + failTraceDialog.show(); | ||
| 318 | + } | ||
| 319 | + | ||
| 320 | + } else { | ||
| 321 | + if (!failTraceDialog.isShowing()) { | ||
| 322 | + failTraceDialog.show(); | ||
| 323 | + } | ||
| 324 | + } | ||
| 280 | } | 325 | } |
| 281 | 326 | ||
| 282 | 327 |