Commit 2a122520a229f07452eaaa82c34151586b8a358e
Merge branch 'master' of bj.gitlab.cnlive.com:cnlive-team/ModulePedometer
# Conflicts: # moudle_pedometer/src/main/AndroidManifest.xml
Showing
44 changed files
with
2708 additions
and
1095 deletions
moudle_pedometer/src/main/AndroidManifest.xml
| @@ -57,7 +57,7 @@ | @@ -57,7 +57,7 @@ | ||
| 57 | <activity android:name="com.cnlive.moudle.pedometer.ui.activity.LineUpAgainActivity" /> | 57 | <activity android:name="com.cnlive.moudle.pedometer.ui.activity.LineUpAgainActivity" /> |
| 58 | <activity android:name="com.cnlive.moudle.pedometer.ui.activity.SelfRecordActivity" /> | 58 | <activity android:name="com.cnlive.moudle.pedometer.ui.activity.SelfRecordActivity" /> |
| 59 | <activity android:name="com.cnlive.moudle.pedometer.ui.activity.TakePartActivity" /> | 59 | <activity android:name="com.cnlive.moudle.pedometer.ui.activity.TakePartActivity" /> |
| 60 | - <activity android:name="com.cnlive.moudle.pedometer.ui.activity.RunLineActivity"/> | 60 | + <activity android:name="com.cnlive.moudle.pedometer.ui.activity.RunLineActivity" /> |
| 61 | <activity android:name="com.cnlive.moudle.pedometer.ui.activity.MyRecordActivity" /> | 61 | <activity android:name="com.cnlive.moudle.pedometer.ui.activity.MyRecordActivity" /> |
| 62 | <activity android:name="com.cnlive.moudle.pedometer.ui.activity.ShareRecordActivity" /> | 62 | <activity android:name="com.cnlive.moudle.pedometer.ui.activity.ShareRecordActivity" /> |
| 63 | <activity android:name="com.cnlive.moudle.pedometer.ui.activity.RaceRecordActivity" /> | 63 | <activity android:name="com.cnlive.moudle.pedometer.ui.activity.RaceRecordActivity" /> |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/commonInfo/CollCommonInfo.java renamed to moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/commonInfo/CollCommonInfo.java
| 1 | -package com.cnlive.moudle.pedometer.commonInfo; | 1 | +package com.cnlive.moudle.collectionTrace.commonInfo; |
| 2 | 2 | ||
| 3 | import android.content.Context; | 3 | import android.content.Context; |
| 4 | 4 | ||
| @@ -132,7 +132,7 @@ public class CollCommonInfo { | @@ -132,7 +132,7 @@ public class CollCommonInfo { | ||
| 132 | * @param context | 132 | * @param context |
| 133 | */ | 133 | */ |
| 134 | public static boolean getIsRunBaiduTraceService(Context context) { | 134 | public static boolean getIsRunBaiduTraceService(Context context) { |
| 135 | - return MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).getBoolean("CollRunBaiduTraceService", false); | 135 | + return MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).getBoolean("CollRunBaiduTraceService", true); |
| 136 | } | 136 | } |
| 137 | 137 | ||
| 138 | /** | 138 | /** |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/frame/view/CollRunMainFragmentView.java
| @@ -4,9 +4,7 @@ import android.content.Context; | @@ -4,9 +4,7 @@ import android.content.Context; | ||
| 4 | import android.content.Intent; | 4 | import android.content.Intent; |
| 5 | import android.os.Handler; | 5 | import android.os.Handler; |
| 6 | import android.os.SystemClock; | 6 | import android.os.SystemClock; |
| 7 | -import android.support.v4.content.ContextCompat; | ||
| 8 | import android.text.TextUtils; | 7 | import android.text.TextUtils; |
| 9 | -import android.util.Log; | ||
| 10 | import android.view.MotionEvent; | 8 | import android.view.MotionEvent; |
| 11 | import android.view.View; | 9 | import android.view.View; |
| 12 | import android.widget.Chronometer; | 10 | import android.widget.Chronometer; |
| @@ -15,26 +13,24 @@ import com.baidu.location.BDAbstractLocationListener; | @@ -15,26 +13,24 @@ import com.baidu.location.BDAbstractLocationListener; | ||
| 15 | import com.baidu.location.BDLocation; | 13 | import com.baidu.location.BDLocation; |
| 16 | import com.baidu.location.LocationClient; | 14 | import com.baidu.location.LocationClient; |
| 17 | import com.baidu.location.LocationClientOption; | 15 | import com.baidu.location.LocationClientOption; |
| 18 | -import com.cnlive.moudle.collectionTrace.service.CollKeepLiveService; | 16 | +import com.baidu.mapapi.model.LatLng; |
| 19 | import com.cnlive.moudle.collectionTrace.service.CollStepService; | 17 | import com.cnlive.moudle.collectionTrace.service.CollStepService; |
| 20 | -import com.cnlive.moudle.collectionTrace.ui.activity.CollRunningMapActivity; | ||
| 21 | import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunMainFragment; | 18 | import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunMainFragment; |
| 22 | -import com.cnlive.moudle.pedometer.commonInfo.CollCommonInfo; | 19 | +import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo; |
| 23 | import com.cnlive.moudle.pedometer.model.Constant; | 20 | import com.cnlive.moudle.pedometer.model.Constant; |
| 24 | -import com.cnlive.moudle.pedometer.model.MessageEvent; | ||
| 25 | import com.cnlive.moudle.pedometer.model.RunningFinishBean; | 21 | import com.cnlive.moudle.pedometer.model.RunningFinishBean; |
| 26 | import com.cnlive.moudle.pedometer.model.RunningMapBean; | 22 | import com.cnlive.moudle.pedometer.model.RunningMapBean; |
| 23 | +import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo; | ||
| 24 | +import com.cnlive.moudle.pedometer.sql.entity.CollFailedEntity; | ||
| 27 | import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity; | 25 | import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity; |
| 28 | -import com.cnlive.moudle.pedometer.ui.activity.RunningMapActivity; | ||
| 29 | import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; | 26 | import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; |
| 27 | +import com.cnlive.moudle.pedometer.ui.widget.TipDialog; | ||
| 30 | import com.cnlive.moudle.pedometer.utils.ButtonAnimUtil; | 28 | import com.cnlive.moudle.pedometer.utils.ButtonAnimUtil; |
| 31 | -import com.cnlive.moudle.pedometer.utils.CollStepUtil; | ||
| 32 | -import com.cnlive.moudle.pedometer.utils.GsonUtil; | 29 | +import com.cnlive.moudle.collectionTrace.utils.CollStepUtil; |
| 33 | import com.cnlive.moudle.pedometer.utils.TimeUtil; | 30 | import com.cnlive.moudle.pedometer.utils.TimeUtil; |
| 34 | import com.example.moudle_pedometer.R; | 31 | import com.example.moudle_pedometer.R; |
| 35 | import com.hannesdorfmann.mosby3.mvp.MvpView; | 32 | import com.hannesdorfmann.mosby3.mvp.MvpView; |
| 36 | 33 | ||
| 37 | -import org.greenrobot.eventbus.EventBus; | ||
| 38 | 34 | ||
| 39 | public class CollRunMainFragmentView implements MvpView { | 35 | public class CollRunMainFragmentView implements MvpView { |
| 40 | private final String TAG = "CollRunMainFragmentView"; | 36 | private final String TAG = "CollRunMainFragmentView"; |
| @@ -51,9 +47,13 @@ public class CollRunMainFragmentView implements MvpView { | @@ -51,9 +47,13 @@ public class CollRunMainFragmentView implements MvpView { | ||
| 51 | private int timeCountDown;//时间倒计时 | 47 | private int timeCountDown;//时间倒计时 |
| 52 | private String uid; | 48 | private String uid; |
| 53 | private boolean needWriteDataFlag = true;//是否需要将计时器基值写入到数据库 | 49 | private boolean needWriteDataFlag = true;//是否需要将计时器基值写入到数据库 |
| 50 | + private CollUserStepEntity userStepEntity; | ||
| 54 | // 定位相关 | 51 | // 定位相关 |
| 55 | private LocationClient mLocClient; | 52 | private LocationClient mLocClient; |
| 56 | - public MyLocationListenner myListener = new MyLocationListenner(); | 53 | + public CollRunMainFragmentView.MyLocationListenner myListener = new CollRunMainFragmentView.MyLocationListenner(); |
| 54 | + private String employTime = ""; | ||
| 55 | + private LatLng endLatLng;//终点坐标 | ||
| 56 | + private TipDialog tipDialog; | ||
| 57 | 57 | ||
| 58 | public CollRunMainFragmentView(CollRunMainFragment fragment) { | 58 | public CollRunMainFragmentView(CollRunMainFragment fragment) { |
| 59 | this.fragment = fragment; | 59 | this.fragment = fragment; |
| @@ -106,51 +106,67 @@ public class CollRunMainFragmentView implements MvpView { | @@ -106,51 +106,67 @@ public class CollRunMainFragmentView implements MvpView { | ||
| 106 | /** | 106 | /** |
| 107 | * 初始化相关视图 | 107 | * 初始化相关视图 |
| 108 | */ | 108 | */ |
| 109 | - public void initView() { | ||
| 110 | - uid = "yangshuai"; | 109 | + public void initView(RunRaceDetailInfo runRaceDetailInfo) { |
| 111 | initLocationClient(); | 110 | initLocationClient(); |
| 112 | - CollUserStepEntity userStepEntity = CollStepUtil.getCollUserStepData(getContext(), uid); | 111 | + uid = CollCommonInfo.getUserId(getContext()); |
| 112 | + userStepEntity = CollStepUtil.getCollUserStepData(getContext(), uid); | ||
| 113 | + //设置数据 | ||
| 113 | if (userStepEntity != null) { | 114 | if (userStepEntity != null) { |
| 114 | - CollStepUtil.clearRunData(getContext(), CollCommonInfo.getUserId(getContext())); | 115 | + //设置赛事标题 |
| 116 | + if (TextUtils.isEmpty(userStepEntity.getStreetTitle())) { | ||
| 117 | + CollStepUtil.setCollStreetTitle(getContext(), CollCommonInfo.getUserId(getContext()), runRaceDetailInfo.getTitle()); | ||
| 118 | + } | ||
| 119 | + //设置开始时间和赛事id | ||
| 120 | + if (TextUtils.isEmpty(userStepEntity.getStreetId())) { | ||
| 121 | + CollStepUtil.setCollStepStartData(getContext(), uid, TimeUtil.getNowTimeStamp(), CollCommonInfo.getStreetId(getContext())); | ||
| 122 | + } | ||
| 123 | + //设置步数 | ||
| 124 | + if (!TextUtils.isEmpty(userStepEntity.getStepCount())) { | ||
| 125 | + //设置行走步数 | ||
| 126 | + fragment.binding.tvStepCount.setText(userStepEntity.getStepCount()); | ||
| 127 | + //设置行走公里 | ||
| 128 | + fragment.binding.tvRunDistance.setText(CollStepUtil.getWalkDistanceKM(Long.parseLong(userStepEntity.getStepCount())) + ""); | ||
| 129 | + } | ||
| 130 | + | ||
| 131 | + | ||
| 115 | } | 132 | } |
| 133 | + | ||
| 116 | fragment.binding.llRunMainRoot.setVisibility(View.GONE); | 134 | fragment.binding.llRunMainRoot.setVisibility(View.GONE); |
| 117 | - ButtonAnimUtil.startAnimation(fragment.binding.llStartTimeTip, false); | ||
| 118 | firstTimeFlag = true; | 135 | firstTimeFlag = true; |
| 119 | handler = new Handler(); | 136 | handler = new Handler(); |
| 120 | timeCountDown = 4; | 137 | timeCountDown = 4; |
| 121 | //开始时间倒计时 | 138 | //开始时间倒计时 |
| 122 | - runnable = new Runnable() { | 139 | + fragment.binding.llRunMainRoot.setVisibility(View.VISIBLE); |
| 140 | + fragment.binding.llRunMainRoot.setBackgroundColor(getContext().getResources().getColor(R.color.run_main_bg)); | ||
| 141 | + new Handler().postDelayed(new Runnable() { | ||
| 123 | @Override | 142 | @Override |
| 124 | public void run() { | 143 | public void run() { |
| 125 | - if (fragment.getActivity() == null) { | ||
| 126 | - return; | 144 | + if (userStepEntity != null) { |
| 145 | + //没有暂停,从初始时间开始 | ||
| 146 | + if (userStepEntity.getChronometerBase() != 0) { | ||
| 147 | + fragment.binding.chronometer.setBase(userStepEntity.getChronometerBase()); | ||
| 148 | + } else { | ||
| 149 | + fragment.binding.chronometer.setFormat("00:00:01"); | ||
| 150 | + fragment.binding.chronometer.setBase(SystemClock.elapsedRealtime()); | ||
| 151 | + //设置计步开始时间 | ||
| 152 | + CollStepUtil.setCollChronometerBase(getContext(), uid, fragment.binding.chronometer.getBase()); | ||
| 153 | + } | ||
| 154 | + fragment.binding.chronometer.start(); | ||
| 155 | + //设置步数 | ||
| 156 | + if (!TextUtils.isEmpty(userStepEntity.getStepCount())) { | ||
| 157 | + fragment.binding.tvStepCount.setText(userStepEntity.getStepCount()); | ||
| 158 | + } | ||
| 127 | } | 159 | } |
| 128 | - if (timeCountDown > 1) { | ||
| 129 | - timeCountDown--; | ||
| 130 | - fragment.binding.tvTimeCountDown.setVisibility(View.VISIBLE); | ||
| 131 | - fragment.binding.tvTimeCountDown.setText(timeCountDown + ""); | ||
| 132 | - ButtonAnimUtil.setTimeShowZoomIn(fragment.binding.tvTimeCountDown); | ||
| 133 | - //依次倒计时 | ||
| 134 | - handler.postDelayed(runnable, 1000); | ||
| 135 | - } else { | ||
| 136 | - ButtonAnimUtil.startAnimation(fragment.binding.llStartTimeTip, true); | ||
| 137 | - fragment.binding.llRunMainRoot.setVisibility(View.VISIBLE); | ||
| 138 | - new Handler().postDelayed(new Runnable() { | ||
| 139 | - @Override | ||
| 140 | - public void run() { | ||
| 141 | - //开始计时 | ||
| 142 | - if (firstTimeFlag) { | ||
| 143 | - firstTimeFlag = false; | ||
| 144 | - fragment.binding.chronometer.setFormat("00:00:01"); | ||
| 145 | - fragment.binding.chronometer.setBase(SystemClock.elapsedRealtime()); | ||
| 146 | - fragment.binding.chronometer.start(); | ||
| 147 | - } | ||
| 148 | - } | ||
| 149 | - }, 10); | ||
| 150 | - | 160 | + //没有数据 |
| 161 | + else { | ||
| 162 | + fragment.binding.chronometer.setFormat("00:00:01"); | ||
| 163 | + fragment.binding.chronometer.setBase(SystemClock.elapsedRealtime()); | ||
| 164 | + //设置计步开始时间 | ||
| 165 | + CollStepUtil.setCollChronometerBase(getContext(), uid, fragment.binding.chronometer.getBase()); | ||
| 166 | + fragment.binding.chronometer.start(); | ||
| 151 | } | 167 | } |
| 152 | } | 168 | } |
| 153 | - }; | 169 | + }, 10); |
| 154 | //设置计时监听 | 170 | //设置计时监听 |
| 155 | fragment.binding.chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { | 171 | fragment.binding.chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { |
| 156 | @Override | 172 | @Override |
| @@ -158,135 +174,50 @@ public class CollRunMainFragmentView implements MvpView { | @@ -158,135 +174,50 @@ public class CollRunMainFragmentView implements MvpView { | ||
| 158 | int hour = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 / 60 / 60); | 174 | int hour = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 / 60 / 60); |
| 159 | int minute = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 / 60) % 60; | 175 | int minute = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 / 60) % 60; |
| 160 | int second = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000) % 60; | 176 | int second = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000) % 60; |
| 161 | -// if (hour < 1) { | ||
| 162 | -// if (minute == 59 && second == 59) { | ||
| 163 | -// chronometer.setFormat("0" + "%s"); | ||
| 164 | -// } else { | ||
| 165 | -// chronometer.setFormat("0" + String.valueOf(hour) + ":%s"); | ||
| 166 | -// } | ||
| 167 | -// } else if (hour < 10) { | ||
| 168 | -// chronometer.setFormat("0" + "%s"); | ||
| 169 | -// } else { | ||
| 170 | -// chronometer.setFormat("%s"); | ||
| 171 | -// } | ||
| 172 | - String result = ""; | 177 | + employTime = (hour * 3600 + minute * 60 + second) + ""; |
| 173 | if (hour < 1) { | 178 | if (hour < 1) { |
| 174 | - result += "0" + hour + ":"; | ||
| 175 | - } else { | ||
| 176 | - result += hour + ":"; | ||
| 177 | - } | ||
| 178 | - if (minute < 10) { | ||
| 179 | - result += "0" + minute + ":"; | ||
| 180 | - } else { | ||
| 181 | - result += minute + ":"; | ||
| 182 | - } | ||
| 183 | - if (second < 10) { | ||
| 184 | - result += "0" + second; | 179 | + if (minute == 59 && second == 59) { |
| 180 | + chronometer.setFormat("0" + "%s"); | ||
| 181 | + } else { | ||
| 182 | + chronometer.setFormat("0" + String.valueOf(hour) + ":%s"); | ||
| 183 | + } | ||
| 184 | + } else if (hour < 10) { | ||
| 185 | + chronometer.setFormat("0" + "%s"); | ||
| 185 | } else { | 186 | } else { |
| 186 | - result += second; | ||
| 187 | - } | ||
| 188 | - if (!TextUtils.isEmpty(result)) { | ||
| 189 | - chronometer.setFormat(result); | 187 | + chronometer.setFormat(""); |
| 190 | } | 188 | } |
| 189 | + | ||
| 191 | } | 190 | } |
| 192 | }); | 191 | }); |
| 193 | 192 | ||
| 194 | - boolean isRunStep = CollCommonInfo.getIsRunStepService(getContext()); | ||
| 195 | - //当前用户已经在运动 | ||
| 196 | -// if (!isRunStep) { | ||
| 197 | - //依次倒计时 | ||
| 198 | - handler.postDelayed(runnable, 1000); | ||
| 199 | -// } | ||
| 200 | -// else { | ||
| 201 | -// //隐藏计时界面 | ||
| 202 | -// fragment.binding.llStartTimeTip.setVisibility(View.GONE); | ||
| 203 | -// fragment.binding.llRunMainRoot.setVisibility(View.VISIBLE); | ||
| 204 | -// new Handler().postDelayed(new Runnable() { | ||
| 205 | -// @Override | ||
| 206 | -// public void run() { | ||
| 207 | -// //开始计时 | ||
| 208 | -// if (firstTimeFlag) { | ||
| 209 | -// firstTimeFlag = false; | ||
| 210 | -// if (userStepEntity != null) { | ||
| 211 | -// Log.e(TAG, "run: "+ GsonUtil.GsonString(userStepEntity)); | ||
| 212 | -// if ((userStepEntity.getPauseTimeStamp() != 0) && (userStepEntity.getRecordTime() != 0)) { | ||
| 213 | -// fragment.binding.chronometer.setBase(userStepEntity.getPauseTimeStamp() + (SystemClock.elapsedRealtime() - userStepEntity.getRecordTime())); | ||
| 214 | -// } else { | ||
| 215 | -// fragment.binding.chronometer.setFormat("00:00:01"); | ||
| 216 | -// fragment.binding.chronometer.setBase(SystemClock.elapsedRealtime()); | ||
| 217 | -// } | ||
| 218 | -// //设置步数 | ||
| 219 | -// if (!TextUtils.isEmpty(userStepEntity.getStepCount())) { | ||
| 220 | -// fragment.binding.tvStepCount.setText(userStepEntity.getStepCount()); | ||
| 221 | -// } | ||
| 222 | -// } | ||
| 223 | -// fragment.binding.chronometer.start(); | ||
| 224 | -// } | ||
| 225 | -// } | ||
| 226 | -// }, 100); | ||
| 227 | -// //开启计步服务 | ||
| 228 | -// startStepService(getContext(), uid); | ||
| 229 | -// } | ||
| 230 | - | ||
| 231 | - //设置继续按钮,缩放效果 | ||
| 232 | - fragment.binding.flContinue.setOnTouchListener(new View.OnTouchListener() { | 193 | + //隐藏计时界面 |
| 194 | + fragment.binding.llRunMainRoot.setVisibility(View.VISIBLE); | ||
| 195 | + new Handler().postDelayed(new Runnable() { | ||
| 233 | @Override | 196 | @Override |
| 234 | - public boolean onTouch(View view, MotionEvent motionEvent) { | ||
| 235 | - //避免两个按钮事件同时响应 | ||
| 236 | - if (stopStartFlag) { | ||
| 237 | - return false; | ||
| 238 | - } | ||
| 239 | - if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { | ||
| 240 | - if (!continueStartFlag) { | ||
| 241 | - ButtonAnimUtil.setViewZoomIn(fragment.binding.flContinue); | ||
| 242 | - continueStartFlag = true; | ||
| 243 | - | 197 | + public void run() { |
| 198 | + //开始计时 | ||
| 199 | + if (firstTimeFlag) { | ||
| 200 | + firstTimeFlag = false; | ||
| 201 | + if (userStepEntity != null) { | ||
| 202 | + //判断显示时间 | ||
| 203 | + //没有暂停,从初始时间开始 | ||
| 204 | + if (userStepEntity.getChronometerBase() != 0) { | ||
| 205 | + fragment.binding.chronometer.setBase(userStepEntity.getChronometerBase()); | ||
| 206 | + } else { | ||
| 207 | + fragment.binding.chronometer.setFormat("00:00:01"); | ||
| 208 | + fragment.binding.chronometer.setBase(SystemClock.elapsedRealtime()); | ||
| 209 | + } | ||
| 210 | + //设置步数 | ||
| 211 | + if (!TextUtils.isEmpty(userStepEntity.getStepCount())) { | ||
| 212 | + fragment.binding.tvStepCount.setText(userStepEntity.getStepCount()); | ||
| 213 | + } | ||
| 244 | } | 214 | } |
| 245 | - } else if (motionEvent.getAction() == MotionEvent.ACTION_UP) { | ||
| 246 | - ButtonAnimUtil.setViewZoomOut(fragment.binding.flContinue); | ||
| 247 | - continueStartFlag = false; | 215 | + fragment.binding.chronometer.start(); |
| 248 | } | 216 | } |
| 249 | - return false; | ||
| 250 | } | 217 | } |
| 251 | - }); | ||
| 252 | - //设置继续按钮点击事件 | ||
| 253 | - fragment.binding.flContinue.setOnClickListener(new View.OnClickListener() { | ||
| 254 | - @Override | ||
| 255 | - public void onClick(View view) { | ||
| 256 | - //继续记录轨迹 | ||
| 257 | - if (CollStepService.mClient != null && CollStepService.traceListener != null) { | ||
| 258 | - CollCommonInfo.setTsRunBaiduTraceService(getContext(), true); | ||
| 259 | - CollStepService.mClient.startTrace(CollStepService.mTrace, CollStepService.traceListener); | ||
| 260 | - } | ||
| 261 | - needWriteDataFlag = true; | ||
| 262 | - //将当前计时器时间戳写入数据库 | ||
| 263 | - setSQLPauseTime(uid); | ||
| 264 | - //为了点击时可以显示缩放动画,这里延迟一个动画时间进行(包括放大和缩小) | ||
| 265 | - handler.postDelayed(new Runnable() { | ||
| 266 | - @Override | ||
| 267 | - public void run() { | ||
| 268 | - // | ||
| 269 | - //隐藏两个按钮 | ||
| 270 | - fragment.binding.flStopTip.setVisibility(View.INVISIBLE); | ||
| 271 | - fragment.binding.llTwoBottomButton.setVisibility(View.GONE); | ||
| 272 | -// ButtonAnimUtil.setViewShowZoomIn(fragment.binding.llPause); | ||
| 273 | - //显示暂停按钮 | ||
| 274 | - fragment.binding.flPause.setVisibility(View.VISIBLE); | ||
| 275 | - // | ||
| 276 | - } | ||
| 277 | - }, ButtonAnimUtil.DEFAULT_ZOOM_DURATION * 2); | ||
| 278 | - //继续计步 | ||
| 279 | - EventBus.getDefault().post(new MessageEvent(Constant.SERVICE_STEP_COUNT_CONTINUE, "")); | ||
| 280 | - //开始计时 | ||
| 281 | - if (!firstTimeFlag) { | ||
| 282 | - fragment.binding.chronometer.setBase(fragment.binding.chronometer.getBase() + (SystemClock.elapsedRealtime() - mRecordTime)); | ||
| 283 | - } | ||
| 284 | - fragment.binding.chronometer.start(); | ||
| 285 | - | 218 | + }, 10); |
| 286 | 219 | ||
| 287 | - } | ||
| 288 | - }); | ||
| 289 | - //设置停止按钮缩放特效 | 220 | +//设置停止按钮缩放特效 |
| 290 | fragment.binding.flStop.setOnTouchListener(new View.OnTouchListener() { | 221 | fragment.binding.flStop.setOnTouchListener(new View.OnTouchListener() { |
| 291 | @Override | 222 | @Override |
| 292 | public boolean onTouch(View view, MotionEvent motionEvent) { | 223 | public boolean onTouch(View view, MotionEvent motionEvent) { |
| @@ -321,27 +252,46 @@ public class CollRunMainFragmentView implements MvpView { | @@ -321,27 +252,46 @@ public class CollRunMainFragmentView implements MvpView { | ||
| 321 | SelectDialog selectDialog = new SelectDialog(fragment.getActivity(), "确定结束运动吗?", "确定", new SelectDialog.DialogInterface() { | 252 | SelectDialog selectDialog = new SelectDialog(fragment.getActivity(), "确定结束运动吗?", "确定", new SelectDialog.DialogInterface() { |
| 322 | @Override | 253 | @Override |
| 323 | public void onClick(SelectDialog dialog) { | 254 | public void onClick(SelectDialog dialog) { |
| 324 | - CollCommonInfo.setIsRunKeepAliveService(getContext(), false); | ||
| 325 | - CollCommonInfo.setIsWriteUserStep(getContext(), false); | 255 | + //停止计时 |
| 256 | + fragment.binding.chronometer.stop(); | ||
| 257 | + //设置状态标志位 | ||
| 258 | + setStopStartFlag(); | ||
| 259 | + //设置运动结束时间戳 | ||
| 260 | +// CollStepUtil.setUserFinishTimeStamp(getContext(), uid); | ||
| 326 | fragment.binding.cpCurrent.setVisibility(View.GONE); | 261 | fragment.binding.cpCurrent.setVisibility(View.GONE); |
| 327 | ButtonAnimUtil.setViewDefault(fragment.binding.flStop); | 262 | ButtonAnimUtil.setViewDefault(fragment.binding.flStop); |
| 328 | - //清空数据 | ||
| 329 | - CollCommonInfo.reset(getContext()); | ||
| 330 | dialog.dismiss(); | 263 | dialog.dismiss(); |
| 331 | - if (CollStepService.mClient != null) { | ||
| 332 | - CollStepService.mClient.stopGather(CollStepService.traceListener); | ||
| 333 | - } | ||
| 334 | - fragment.getActivity().stopService(new Intent(fragment.getActivity(), CollStepService.class)); | ||
| 335 | RunningFinishBean runningFinishBean = new RunningFinishBean(); | 264 | RunningFinishBean runningFinishBean = new RunningFinishBean(); |
| 336 | - runningFinishBean.setStartPoint("开始地点"); | ||
| 337 | - runningFinishBean.setEndPoint("结束地点"); | 265 | +// runningFinishBean.setStartPoint(userStepEntity.getStartPoint()); |
| 266 | +// runningFinishBean.setEndPoint(userStepEntity.getEndPoint()); | ||
| 338 | runningFinishBean.setRunDistance(fragment.binding.tvRunDistance.getText().toString()); | 267 | runningFinishBean.setRunDistance(fragment.binding.tvRunDistance.getText().toString()); |
| 339 | - runningFinishBean.setSpeed(fragment.binding.tvSpeed.getText().toString()); | ||
| 340 | - runningFinishBean.setStep(fragment.binding.tvStepCount.getText().toString()); | 268 | + //必须先设置步数,然后设置配速 |
| 269 | + if ("--".equals(fragment.binding.tvStepCount.getText().toString())) { | ||
| 270 | + runningFinishBean.setStep("0"); | ||
| 271 | + } else { | ||
| 272 | + runningFinishBean.setStep(fragment.binding.tvStepCount.getText().toString()); | ||
| 273 | + } | ||
| 274 | + if ("--".equals(fragment.binding.tvSpeed.getText().toString())) { | ||
| 275 | + String speed = CollStepUtil.getPaceSpeed(Double.parseDouble(employTime), Double.parseDouble(fragment.binding.tvRunDistance.getText().toString())); | ||
| 276 | + runningFinishBean.setSpeed(speed); | ||
| 277 | + } else { | ||
| 278 | + runningFinishBean.setSpeed(fragment.binding.tvSpeed.getText().toString()); | ||
| 279 | + } | ||
| 341 | runningFinishBean.setTime(fragment.binding.chronometer.getText().toString()); | 280 | runningFinishBean.setTime(fragment.binding.chronometer.getText().toString()); |
| 342 | - runningFinishBean.setDate(TimeUtil.getFormatNowTime()); | ||
| 343 | -// RunningFinishActivity.startActivity(fragment.getActivity(), runningFinishBean); | ||
| 344 | - fragment.getActivity().finish(); | 281 | + runningFinishBean.setDate(TimeUtil.getStampToTime(userStepEntity.getFinishTimeStamp() * 1000, "yyyy/MM/dd HH:mm")); |
| 282 | + runningFinishBean.setStreetTitle(userStepEntity.getStreetTitle()); | ||
| 283 | + //设置用时 | ||
| 284 | + runningFinishBean.setEmployTime(employTime); | ||
| 285 | + | ||
| 286 | + //先将失败数据保存起来 | ||
| 287 | + if (runningFinishBean != null && userStepEntity != null) { | ||
| 288 | + setFailData(getContext(), userStepEntity, runningFinishBean); | ||
| 289 | + } | ||
| 290 | +// FailedEntity failedEntity = CollStepUtil.getTempSaveFailData(getContext(), CollCommonInfo.getUserId(getContext()), userStepEntity.getStartTimeStamp()); | ||
| 291 | +// if (failedEntity != null) { | ||
| 292 | +// CollRunningFinishActivity.startActivity(fragment.getActivity(), runningFinishBean); | ||
| 293 | +// fragment.getActivity().finish(); | ||
| 294 | +// } | ||
| 345 | } | 295 | } |
| 346 | }, "取消", new SelectDialog.DialogInterface() { | 296 | }, "取消", new SelectDialog.DialogInterface() { |
| 347 | @Override | 297 | @Override |
| @@ -372,56 +322,6 @@ public class CollRunMainFragmentView implements MvpView { | @@ -372,56 +322,6 @@ public class CollRunMainFragmentView implements MvpView { | ||
| 372 | return true; | 322 | return true; |
| 373 | } | 323 | } |
| 374 | }); | 324 | }); |
| 375 | - //设置暂停按钮,缩放效果 | ||
| 376 | - fragment.binding.flPause.setOnTouchListener(new View.OnTouchListener() { | ||
| 377 | - @Override | ||
| 378 | - public boolean onTouch(View view, MotionEvent motionEvent) { | ||
| 379 | - if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { | ||
| 380 | - if (!pauseStartFlag) { | ||
| 381 | - ButtonAnimUtil.setViewZoomIn(fragment.binding.flPause); | ||
| 382 | - pauseStartFlag = true; | ||
| 383 | - | ||
| 384 | - } | ||
| 385 | - } else if (motionEvent.getAction() == MotionEvent.ACTION_UP) { | ||
| 386 | - ButtonAnimUtil.setViewZoomOut(fragment.binding.flPause); | ||
| 387 | - pauseStartFlag = false; | ||
| 388 | - } | ||
| 389 | - return false; | ||
| 390 | - } | ||
| 391 | - }); | ||
| 392 | - //设置暂停按钮点击事件 | ||
| 393 | - fragment.binding.flPause.setOnClickListener(new View.OnClickListener() { | ||
| 394 | - @Override | ||
| 395 | - public void onClick(View view) { | ||
| 396 | - //暂停轨迹记录 | ||
| 397 | - if (CollStepService.mClient != null && CollStepService.traceListener != null) { | ||
| 398 | - CollCommonInfo.setTsRunBaiduTraceService(getContext(), false); | ||
| 399 | - CollStepService.mClient.stopGather(CollStepService.traceListener); | ||
| 400 | - } | ||
| 401 | - //将当前计时器时间戳写入数据库 | ||
| 402 | - setSQLPauseTime(uid); | ||
| 403 | - needWriteDataFlag = false; | ||
| 404 | -// ButtonAnimUtil.setViewHideZoomOut(fragment.binding.llPause); | ||
| 405 | - handler.postDelayed(new Runnable() { | ||
| 406 | - @Override | ||
| 407 | - public void run() { | ||
| 408 | - //隐藏本身 | ||
| 409 | - fragment.binding.flPause.setVisibility(View.GONE); | ||
| 410 | - } | ||
| 411 | - }, ButtonAnimUtil.HIDE_VIEW_ZOOM_DURATION); | ||
| 412 | - //显示继续按钮 | ||
| 413 | - fragment.binding.llTwoBottomButton.setVisibility(View.VISIBLE); | ||
| 414 | - ButtonAnimUtil.setViewShowZoomIn(fragment.binding.flContinue); | ||
| 415 | - ButtonAnimUtil.setViewShowZoomIn(fragment.binding.flStop); | ||
| 416 | - //停止计时 | ||
| 417 | - fragment.binding.chronometer.stop(); | ||
| 418 | - mRecordTime = SystemClock.elapsedRealtime(); | ||
| 419 | - //暂停计步 | ||
| 420 | - EventBus.getDefault().post(new MessageEvent(Constant.SERVICE_STEP_COUNT_PAUSE, "")); | ||
| 421 | - //重置速度 | ||
| 422 | -// resetSpeed(); | ||
| 423 | - } | ||
| 424 | - }); | ||
| 425 | //gps点击事件 | 325 | //gps点击事件 |
| 426 | fragment.binding.rlGps.setOnClickListener(new View.OnClickListener() { | 326 | fragment.binding.rlGps.setOnClickListener(new View.OnClickListener() { |
| 427 | @Override | 327 | @Override |
| @@ -441,7 +341,19 @@ public class CollRunMainFragmentView implements MvpView { | @@ -441,7 +341,19 @@ public class CollRunMainFragmentView implements MvpView { | ||
| 441 | } | 341 | } |
| 442 | runningMapBean.setDistance(fragment.binding.tvRunDistance.getText().toString()); | 342 | runningMapBean.setDistance(fragment.binding.tvRunDistance.getText().toString()); |
| 443 | runningMapBean.setCurrentSpeed(fragment.binding.tvSpeed.getText().toString()); | 343 | runningMapBean.setCurrentSpeed(fragment.binding.tvSpeed.getText().toString()); |
| 444 | - CollRunningMapActivity.startActivity(fragment.getActivity(), runningMapBean); | 344 | +// CollRunningMapActivity.startActivity(fragment.getActivity(), runningMapBean); |
| 345 | + } | ||
| 346 | + }); | ||
| 347 | + //返回按钮点击事件 | ||
| 348 | + fragment.binding.llBack.setOnClickListener(new View.OnClickListener() { | ||
| 349 | + @Override | ||
| 350 | + public void onClick(View view) { | ||
| 351 | + | ||
| 352 | + if (getContext() == null) { | ||
| 353 | + return; | ||
| 354 | + } | ||
| 355 | +// setSQLPauseTime(CollCommonInfo.getUserId(getContext())); | ||
| 356 | + fragment.getActivity().finish(); | ||
| 445 | } | 357 | } |
| 446 | }); | 358 | }); |
| 447 | 359 | ||
| @@ -453,22 +365,41 @@ public class CollRunMainFragmentView implements MvpView { | @@ -453,22 +365,41 @@ public class CollRunMainFragmentView implements MvpView { | ||
| 453 | }); | 365 | }); |
| 454 | } | 366 | } |
| 455 | 367 | ||
| 456 | - public void setSQLPauseTime(String id) { | ||
| 457 | - if (needWriteDataFlag) { | ||
| 458 | - //将当前计时器时间戳写入数据库 | ||
| 459 | -// String id = MySpHelper.getInstance(getContext(), Context.MODE_MULTI_PROCESS).getString("userId", ""); | ||
| 460 | - if (!TextUtils.isEmpty(id)) { | ||
| 461 | - CollUserStepEntity userStepEntity = CollStepUtil.getCollUserStepData(fragment.getActivity(), uid); | ||
| 462 | - if (userStepEntity != null) { | ||
| 463 | - userStepEntity.setPauseTimeStamp(fragment.binding.chronometer.getBase()); | ||
| 464 | - //设置当前暂停的时间戳 | ||
| 465 | - userStepEntity.setRecordTime(SystemClock.elapsedRealtime()); | ||
| 466 | - //更新数据 | ||
| 467 | - CollStepUtil.updateStepData(fragment.getActivity(), userStepEntity); | ||
| 468 | - } | ||
| 469 | - } | ||
| 470 | - } | ||
| 471 | - } | 368 | + |
| 369 | +// public void setSQLPauseTime(String id) { | ||
| 370 | +// Log.e(TAG, "setSQLPauseTime: "); | ||
| 371 | +//// if (needWriteDataFlag) { | ||
| 372 | +// //将当前计时器时间戳写入数据库 | ||
| 373 | +// if (!TextUtils.isEmpty(id)) { | ||
| 374 | +// CollUserStepEntity userStepEntity = StepUtil.getCollUserStepData(fragment.getActivity(), uid); | ||
| 375 | +// if (userStepEntity != null) { | ||
| 376 | +//// userStepEntity.setChronometerBase(fragment.binding.chronometer.getBase()); | ||
| 377 | +// //设置当前暂停的时间戳 | ||
| 378 | +// userStepEntity.setRecordTime(SystemClock.elapsedRealtime()); | ||
| 379 | +// //设置当前用户暂停的时间戳 | ||
| 380 | +// userStepEntity.setUserPauseTimeStamp(TimeUtil.getNowTimeStamp()); | ||
| 381 | +// //设置暂停次数 | ||
| 382 | +// userStepEntity.setPauseCount(userStepEntity.getPauseCount() + 1); | ||
| 383 | +// //更新数据 | ||
| 384 | +// StepUtil.updateCollStepData(fragment.getActivity(), userStepEntity); | ||
| 385 | +// } | ||
| 386 | +// } | ||
| 387 | +//// } | ||
| 388 | +// } | ||
| 389 | + | ||
| 390 | +// public void setFragmentPauseTime(String id) { | ||
| 391 | +// if (!TextUtils.isEmpty(id)) { | ||
| 392 | +// UserStepEntity userStepEntity = StepUtil.getUserStepData(fragment.getActivity(), uid); | ||
| 393 | +// if (userStepEntity != null) { | ||
| 394 | +// userStepEntity.setPauseTimeStamp(fragment.binding.chronometer.getBase()); | ||
| 395 | +// userStepEntity.setRecordTime(SystemClock.elapsedRealtime()); | ||
| 396 | +// //设置当前暂停的时间戳 | ||
| 397 | +// userStepEntity.setUserPauseTimeStamp(TimeUtil.getNowTimeStamp()); | ||
| 398 | +// //更新数据 | ||
| 399 | +// StepUtil.updateStepData(fragment.getActivity(), userStepEntity); | ||
| 400 | +// } | ||
| 401 | +// } | ||
| 402 | +// } | ||
| 472 | 403 | ||
| 473 | 404 | ||
| 474 | /** | 405 | /** |
| @@ -505,7 +436,8 @@ public class CollRunMainFragmentView implements MvpView { | @@ -505,7 +436,8 @@ public class CollRunMainFragmentView implements MvpView { | ||
| 505 | 436 | ||
| 506 | @Override | 437 | @Override |
| 507 | public void onReceiveLocation(BDLocation location) { | 438 | public void onReceiveLocation(BDLocation location) { |
| 508 | - if (location == null) { | 439 | + // map view 销毁后不在处理新接收的位置 |
| 440 | + if (location == null || getContext() == null) { | ||
| 509 | return; | 441 | return; |
| 510 | } | 442 | } |
| 511 | //正在搜索GPS信号 | 443 | //正在搜索GPS信号 |
| @@ -562,7 +494,27 @@ public class CollRunMainFragmentView implements MvpView { | @@ -562,7 +494,27 @@ public class CollRunMainFragmentView implements MvpView { | ||
| 562 | fragment.binding.ivGps.setBackground(getContext().getResources().getDrawable(R.drawable.rt_training_gps_3)); | 494 | fragment.binding.ivGps.setBackground(getContext().getResources().getDrawable(R.drawable.rt_training_gps_3)); |
| 563 | } | 495 | } |
| 564 | } | 496 | } |
| 497 | + | ||
| 498 | + //进行精度过滤 | ||
| 499 | + if (location.getRadius() > Constant.LOCA_ACCURACY) { | ||
| 500 | + return; | ||
| 501 | + } | ||
| 502 | + //开始比较 | ||
| 565 | } | 503 | } |
| 504 | + | ||
| 505 | + } | ||
| 506 | + | ||
| 507 | + /** | ||
| 508 | + * 设置停止状态标志位 | ||
| 509 | + */ | ||
| 510 | + private void setStopStartFlag() { | ||
| 511 | + CollCommonInfo.setTsRunBaiduTraceService(getContext(), false); | ||
| 512 | + CollCommonInfo.setIsRunKeepAliveService(getContext(), false); | ||
| 513 | + CollCommonInfo.setIsWriteUserStep(getContext(), false); | ||
| 514 | + if (CollStepService.mClient != null) { | ||
| 515 | + CollStepService.mClient.stopGather(CollStepService.traceListener); | ||
| 516 | + } | ||
| 517 | + fragment.getActivity().stopService(new Intent(fragment.getActivity(), CollStepService.class)); | ||
| 566 | } | 518 | } |
| 567 | 519 | ||
| 568 | public void onDestroy() { | 520 | public void onDestroy() { |
| @@ -570,6 +522,82 @@ public class CollRunMainFragmentView implements MvpView { | @@ -570,6 +522,82 @@ public class CollRunMainFragmentView implements MvpView { | ||
| 570 | mLocClient.stop(); | 522 | mLocClient.stop(); |
| 571 | } | 523 | } |
| 572 | } | 524 | } |
| 525 | + | ||
| 526 | + /** | ||
| 527 | + * 暂存失败数据 | ||
| 528 | + * | ||
| 529 | + * @param context | ||
| 530 | + * @param userStepEntity | ||
| 531 | + * @param runningFinishBean | ||
| 532 | + */ | ||
| 533 | + public void setFailData(Context context, CollUserStepEntity userStepEntity, RunningFinishBean runningFinishBean) { | ||
| 534 | + if (userStepEntity == null || runningFinishBean == null || context == null) { | ||
| 535 | + return; | ||
| 536 | + } | ||
| 537 | + //设置数据 | ||
| 538 | + CollFailedEntity failedEntity = new CollFailedEntity(); | ||
| 539 | + //设置主键 | ||
| 540 | + failedEntity.setUuid(CollStepUtil.getUUID()); | ||
| 541 | + //设置用户id | ||
| 542 | + failedEntity.setUid(userStepEntity.getUserId()); | ||
| 543 | + //设置当前数据创建时间戳 | ||
| 544 | + failedEntity.setCreatTimeStamp(TimeUtil.getNowTimeStamp()); | ||
| 545 | + //设置是否暂停 | ||
| 546 | + if (userStepEntity.getPauseCount() != 0) { | ||
| 547 | + failedEntity.setIsPause(true); | ||
| 548 | + //设置暂停时间 | ||
| 549 | + failedEntity.setUserPauseTime(userStepEntity.getUserPauseTimeStamp()); | ||
| 550 | + //设置继续时间戳 | ||
| 551 | + failedEntity.setUsrContinueTime(userStepEntity.getContinueTime()); | ||
| 552 | + } else { | ||
| 553 | + failedEntity.setIsPause(false); | ||
| 554 | + } | ||
| 555 | + //设置用时 | ||
| 556 | + failedEntity.setTime(runningFinishBean.getEmployTime()); | ||
| 557 | + //设置配速 | ||
| 558 | + if ("--".equals(runningFinishBean.getSpeed())) { | ||
| 559 | + failedEntity.setSpeed("0"); | ||
| 560 | + } else { | ||
| 561 | + failedEntity.setSpeed(runningFinishBean.getSpeed()); | ||
| 562 | + } | ||
| 563 | + //设置步数 | ||
| 564 | + if ("--".equals(runningFinishBean.getStep())) { | ||
| 565 | + failedEntity.setStep("0"); | ||
| 566 | + } else { | ||
| 567 | + failedEntity.setStep(runningFinishBean.getStep()); | ||
| 568 | + } | ||
| 569 | + //设置距离 | ||
| 570 | + if ("--".equals(runningFinishBean.getRunDistance())) { | ||
| 571 | + failedEntity.setDistance("0"); | ||
| 572 | + } else { | ||
| 573 | + failedEntity.setDistance(runningFinishBean.getRunDistance()); | ||
| 574 | + } | ||
| 575 | +// //设置开始地点 | ||
| 576 | +// failedEntity.setStartPoint(userStepEntity.getStartPoint()); | ||
| 577 | +// //设置结束地点 | ||
| 578 | +// failedEntity.setEndPoint(userStepEntity.getEndPoint()); | ||
| 579 | + //设置赛道开始时间 | ||
| 580 | + failedEntity.setStreetTraceStartTime(userStepEntity.getQueryTraceStartTime()); | ||
| 581 | + //设置赛道结束时间 | ||
| 582 | + failedEntity.setStreetTraceEndTime(userStepEntity.getQueryTraceEndTime()); | ||
| 583 | + //设置赛道查询实体 | ||
| 584 | + failedEntity.setEntityName(userStepEntity.getQueryEntityName()); | ||
| 585 | + //设置用户开始时间 | ||
| 586 | + failedEntity.setUserStartTime(userStepEntity.getStartTimeStamp()); | ||
| 587 | + //设置用户完成时间 | ||
| 588 | + failedEntity.setUserEndTime(userStepEntity.getFinishTimeStamp()); | ||
| 589 | + //设置关键点 | ||
| 590 | + failedEntity.setImportPoint(userStepEntity.getImportPoint()); | ||
| 591 | + //设置赛事id | ||
| 592 | + failedEntity.setStreetId(userStepEntity.getStreetId()); | ||
| 593 | + //设置赛事标题 | ||
| 594 | + failedEntity.setStreetTitle(userStepEntity.getStreetTitle()); | ||
| 595 | + //设置是否完成 | ||
| 596 | + failedEntity.setIsArriveEndPoint(userStepEntity.getIsArriveEndPoint()); | ||
| 597 | + //设置数据 | ||
| 598 | +// CollStepUtil.setCollFailData(context, failedEntity); | ||
| 599 | + | ||
| 600 | + } | ||
| 573 | } | 601 | } |
| 574 | 602 | ||
| 575 | 603 |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/frame/view/CollRunRaceDetailFragmentView.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.content.Intent; | ||
| 5 | import android.graphics.Bitmap; | 4 | import android.graphics.Bitmap; |
| 6 | import android.graphics.BitmapFactory; | 5 | import android.graphics.BitmapFactory; |
| 7 | import android.hardware.Sensor; | 6 | import android.hardware.Sensor; |
| 8 | import android.hardware.SensorEvent; | 7 | import android.hardware.SensorEvent; |
| 9 | import android.hardware.SensorEventListener; | 8 | import android.hardware.SensorEventListener; |
| 10 | import android.hardware.SensorManager; | 9 | import android.hardware.SensorManager; |
| 11 | -import android.support.v4.content.ContextCompat; | ||
| 12 | import android.text.TextUtils; | 10 | import android.text.TextUtils; |
| 13 | -import android.util.Log; | ||
| 14 | import android.view.View; | 11 | import android.view.View; |
| 12 | +import android.view.ViewTreeObserver; | ||
| 15 | import android.widget.Toast; | 13 | import android.widget.Toast; |
| 16 | 14 | ||
| 17 | import com.baidu.location.BDAbstractLocationListener; | 15 | import com.baidu.location.BDAbstractLocationListener; |
| @@ -43,16 +41,13 @@ import com.baidu.mapapi.search.route.RoutePlanSearch; | @@ -43,16 +41,13 @@ import com.baidu.mapapi.search.route.RoutePlanSearch; | ||
| 43 | import com.baidu.mapapi.search.route.TransitRouteResult; | 41 | import com.baidu.mapapi.search.route.TransitRouteResult; |
| 44 | import com.baidu.mapapi.search.route.WalkingRoutePlanOption; | 42 | import com.baidu.mapapi.search.route.WalkingRoutePlanOption; |
| 45 | import com.baidu.mapapi.search.route.WalkingRouteResult; | 43 | import com.baidu.mapapi.search.route.WalkingRouteResult; |
| 46 | -import com.cnlive.moudle.collectionTrace.service.CollKeepLiveService; | ||
| 47 | import com.cnlive.moudle.collectionTrace.ui.activity.StartCollectTraceActivity; | 44 | import com.cnlive.moudle.collectionTrace.ui.activity.StartCollectTraceActivity; |
| 48 | import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunRaceDetailFragment; | 45 | import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunRaceDetailFragment; |
| 49 | -import com.cnlive.moudle.pedometer.commonInfo.CollCommonInfo; | 46 | +import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo; |
| 50 | import com.cnlive.moudle.pedometer.model.Constant; | 47 | import com.cnlive.moudle.pedometer.model.Constant; |
| 51 | import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo; | 48 | import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo; |
| 52 | import com.cnlive.moudle.pedometer.utils.BitmapUtil; | 49 | import com.cnlive.moudle.pedometer.utils.BitmapUtil; |
| 53 | -import com.cnlive.moudle.pedometer.utils.GsonUtil; | ||
| 54 | -import com.cnlive.moudle.pedometer.utils.MyMapUtil; | ||
| 55 | -import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil; | 50 | +import com.cnlive.moudle.pedometer.utils.ScreenUtil; |
| 56 | import com.cnlive.moudle.pedometer.utils.TimeUtil; | 51 | import com.cnlive.moudle.pedometer.utils.TimeUtil; |
| 57 | import com.cnlive.strike.application.GlideApp; | 52 | import com.cnlive.strike.application.GlideApp; |
| 58 | import com.example.moudle_pedometer.R; | 53 | import com.example.moudle_pedometer.R; |
| @@ -118,19 +113,6 @@ public class CollRunRaceDetailFragmentView implements MvpView, SensorEventListen | @@ -118,19 +113,6 @@ public class CollRunRaceDetailFragmentView implements MvpView, SensorEventListen | ||
| 118 | } | 113 | } |
| 119 | CollCommonInfo.setUserId(getContext(), uid); | 114 | CollCommonInfo.setUserId(getContext(), uid); |
| 120 | this.runRaceDetailInfo = runRaceDetailInfo; | 115 | this.runRaceDetailInfo = runRaceDetailInfo; |
| 121 | - //初始化地图点位 | ||
| 122 | - if (runRaceDetailInfo.getLatLongitude() != null) { | ||
| 123 | -// Log.e(TAG, "initView: 长度:" + runRaceDetailInfo.getLatLongitude().length()); | ||
| 124 | - trackPoints = GsonUtil.jsonToList(runRaceDetailInfo.getLatLongitude(), LatLng.class); | ||
| 125 | -// Log.e(TAG, "initView: trackPoints" + trackPoints.size()); | ||
| 126 | -// MyMapUtil.drawServerLineTrack(getContext(), baiduMap, trackPoints, SortType.asc, R.color.green_round, R.drawable.icon_start, R.drawable.icon_end); | ||
| 127 | -// //自动计算地图缩放 | ||
| 128 | - MapStatus.Builder builder = new MapStatus.Builder(); | ||
| 129 | - builder.target(MyMapUtil.getCenterZoomPosition(trackPoints)); | ||
| 130 | - builder.zoom(MyMapUtil.getZoom(trackPoints)); | ||
| 131 | - baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); | ||
| 132 | - } | ||
| 133 | - | ||
| 134 | //显示地图 | 116 | //显示地图 |
| 135 | fragment.binding.mapView.setVisibility(View.VISIBLE); | 117 | fragment.binding.mapView.setVisibility(View.VISIBLE); |
| 136 | //隐藏底部滑动卡片 | 118 | //隐藏底部滑动卡片 |
| @@ -153,6 +135,22 @@ public class CollRunRaceDetailFragmentView implements MvpView, SensorEventListen | @@ -153,6 +135,22 @@ public class CollRunRaceDetailFragmentView implements MvpView, SensorEventListen | ||
| 153 | if (!TextUtils.isEmpty(runRaceDetailInfo.getTitle())) { | 135 | if (!TextUtils.isEmpty(runRaceDetailInfo.getTitle())) { |
| 154 | fragment.binding.includeStreet.tvRaceTitle.setText(runRaceDetailInfo.getTitle()); | 136 | fragment.binding.includeStreet.tvRaceTitle.setText(runRaceDetailInfo.getTitle()); |
| 155 | } | 137 | } |
| 138 | + fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 140)); | ||
| 139 | +// //根据标题行数,自动调整卡片大小 | ||
| 140 | + fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { | ||
| 141 | + @Override | ||
| 142 | + public boolean onPreDraw() { | ||
| 143 | + int line = fragment.binding.includeStreet.tvRaceTitle.getLineCount(); | ||
| 144 | + int height = fragment.binding.includeStreet.tvRaceTitle.getHeight(); | ||
| 145 | + if (line > 1) { | ||
| 146 | + int avgHeight = height / line;//平局高度 | ||
| 147 | + fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 140) + avgHeight * (line - 1)); | ||
| 148 | + | ||
| 149 | + } | ||
| 150 | + fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().removeOnPreDrawListener(this); | ||
| 151 | + return false; | ||
| 152 | + } | ||
| 153 | + }); | ||
| 156 | //设置活动地点 | 154 | //设置活动地点 |
| 157 | if (!TextUtils.isEmpty(runRaceDetailInfo.getAddress())) { | 155 | if (!TextUtils.isEmpty(runRaceDetailInfo.getAddress())) { |
| 158 | fragment.binding.includeStreet.tvAddress.setText(runRaceDetailInfo.getAddress()); | 156 | fragment.binding.includeStreet.tvAddress.setText(runRaceDetailInfo.getAddress()); |
| @@ -171,21 +169,21 @@ public class CollRunRaceDetailFragmentView implements MvpView, SensorEventListen | @@ -171,21 +169,21 @@ public class CollRunRaceDetailFragmentView implements MvpView, SensorEventListen | ||
| 171 | fragment.binding.includeStreet.tvEndAddr.setText(runRaceDetailInfo.getEndLocation()); | 169 | fragment.binding.includeStreet.tvEndAddr.setText(runRaceDetailInfo.getEndLocation()); |
| 172 | } | 170 | } |
| 173 | //设置起始报名时间 | 171 | //设置起始报名时间 |
| 174 | - if (!TextUtils.isEmpty(TimeUtil.getStampToTime(runRaceDetailInfo.getSign_up_start_time(), "yyyy-MM-dd"))) { | ||
| 175 | - fragment.binding.includeStreet.tvSignUpStartTime.setText(TimeUtil.getStampToTime(runRaceDetailInfo.getSign_up_start_time(), "yyyy-MM-dd")); | 172 | + if (!TextUtils.isEmpty(TimeUtil.getStampToTime(runRaceDetailInfo.getSign_up_start_time(), "yyyy.MM.dd"))) { |
| 173 | + fragment.binding.includeStreet.tvSignUpStartTime.setText(TimeUtil.getStampToTime(runRaceDetailInfo.getSign_up_start_time(), "yyyy.MM.dd")); | ||
| 176 | 174 | ||
| 177 | } | 175 | } |
| 178 | //设置终止报名时间 | 176 | //设置终止报名时间 |
| 179 | - if (!TextUtils.isEmpty(TimeUtil.getStampToTime(runRaceDetailInfo.getSign_up_end_time(), "yyyy-MM-dd"))) { | ||
| 180 | - fragment.binding.includeStreet.tvSignUpEndTime.setText(TimeUtil.getStampToTime(runRaceDetailInfo.getSign_up_end_time(), "yyyy-MM-dd")); | 177 | + if (!TextUtils.isEmpty(TimeUtil.getStampToTime(runRaceDetailInfo.getSign_up_end_time(), "yyyy.MM.dd"))) { |
| 178 | + fragment.binding.includeStreet.tvSignUpEndTime.setText(TimeUtil.getStampToTime(runRaceDetailInfo.getSign_up_end_time(), "yyyy.MM.dd")); | ||
| 181 | } | 179 | } |
| 182 | //设置活动开始时间 | 180 | //设置活动开始时间 |
| 183 | - if (!TextUtils.isEmpty(TimeUtil.getStampToTime(runRaceDetailInfo.getStart_time(), "yyyy-MM-dd"))) { | ||
| 184 | - fragment.binding.includeStreet.tvActiveStartTime.setText(TimeUtil.getStampToTime(runRaceDetailInfo.getStart_time(), "yyyy-MM-dd")); | 181 | + if (!TextUtils.isEmpty(TimeUtil.getStampToTime(runRaceDetailInfo.getStart_time(), "yyyy.MM.dd"))) { |
| 182 | + fragment.binding.includeStreet.tvActiveStartTime.setText(TimeUtil.getStampToTime(runRaceDetailInfo.getStart_time(), "yyyy.MM.dd")); | ||
| 185 | } | 183 | } |
| 186 | //设置活动结束时间 | 184 | //设置活动结束时间 |
| 187 | - if (!TextUtils.isEmpty(TimeUtil.getStampToTime(runRaceDetailInfo.getEnd_time(), "yyyy-MM-dd"))) { | ||
| 188 | - fragment.binding.includeStreet.tvActiveEndTime.setText(TimeUtil.getStampToTime(runRaceDetailInfo.getEnd_time(), "yyyy-MM-dd")); | 185 | + if (!TextUtils.isEmpty(TimeUtil.getStampToTime(runRaceDetailInfo.getEnd_time(), "yyyy.MM.dd"))) { |
| 186 | + fragment.binding.includeStreet.tvActiveEndTime.setText(TimeUtil.getStampToTime(runRaceDetailInfo.getEnd_time(), "yyyy.MM.dd")); | ||
| 189 | } | 187 | } |
| 190 | 188 | ||
| 191 | 189 | ||
| @@ -195,17 +193,13 @@ public class CollRunRaceDetailFragmentView implements MvpView, SensorEventListen | @@ -195,17 +193,13 @@ public class CollRunRaceDetailFragmentView implements MvpView, SensorEventListen | ||
| 195 | GlideApp.with(getContext()).load(runRaceDetailInfo.getRoadmap()).into(fragment.binding.includeStreetIntroduce.ivRoadMao); | 193 | GlideApp.with(getContext()).load(runRaceDetailInfo.getRoadmap()).into(fragment.binding.includeStreetIntroduce.ivRoadMao); |
| 196 | 194 | ||
| 197 | } | 195 | } |
| 198 | - //开始按钮点击事件(用户进行滑动滑动) | ||
| 199 | - fragment.binding.rlScrollViewStartBtn.setOnClickListener(new View.OnClickListener() { | ||
| 200 | - @Override | ||
| 201 | - public void onClick(View view) { | ||
| 202 | - } | ||
| 203 | - }); | ||
| 204 | //添加轨迹按钮点击事件 | 196 | //添加轨迹按钮点击事件 |
| 205 | - fragment.binding.btnAddTrace.setOnClickListener(new View.OnClickListener() { | 197 | + fragment.binding.rlScrollViewAddTrace.setOnClickListener(new View.OnClickListener() { |
| 206 | @Override | 198 | @Override |
| 207 | public void onClick(View view) { | 199 | public void onClick(View view) { |
| 208 | - StartCollectTraceActivity.startActivity(fragment.getActivity()); | 200 | + if (null != runRaceDetailInfo) { |
| 201 | + StartCollectTraceActivity.startActivity(fragment.getActivity(), runRaceDetailInfo); | ||
| 202 | + } | ||
| 209 | } | 203 | } |
| 210 | }); | 204 | }); |
| 211 | 205 | ||
| @@ -215,7 +209,7 @@ public class CollRunRaceDetailFragmentView implements MvpView, SensorEventListen | @@ -215,7 +209,7 @@ public class CollRunRaceDetailFragmentView implements MvpView, SensorEventListen | ||
| 215 | 209 | ||
| 216 | public void initMap() { | 210 | public void initMap() { |
| 217 | //隐藏底部滑动卡片 | 211 | //隐藏底部滑动卡片 |
| 218 | - fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.HIDDEN); | 212 | +// fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.HIDDEN); |
| 219 | this.mMapView = fragment.binding.mapView; | 213 | this.mMapView = fragment.binding.mapView; |
| 220 | if (baiduMap == null) { | 214 | if (baiduMap == null) { |
| 221 | baiduMap = mMapView.getMap(); | 215 | baiduMap = mMapView.getMap(); |
| @@ -649,7 +643,7 @@ public class CollRunRaceDetailFragmentView implements MvpView, SensorEventListen | @@ -649,7 +643,7 @@ public class CollRunRaceDetailFragmentView implements MvpView, SensorEventListen | ||
| 649 | //显示空视图 | 643 | //显示空视图 |
| 650 | fragment.binding.emptyLayout.setVisibility(View.VISIBLE); | 644 | fragment.binding.emptyLayout.setVisibility(View.VISIBLE); |
| 651 | //隐藏底部卡片 | 645 | //隐藏底部卡片 |
| 652 | - fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.HIDDEN); | 646 | +// fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.HIDDEN); |
| 653 | if (fragment.binding.emptyLayout == null) return; | 647 | if (fragment.binding.emptyLayout == null) return; |
| 654 | String titleText = ""; | 648 | String titleText = ""; |
| 655 | String detailText = ""; | 649 | String detailText = ""; |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/frame/view/CollRunningMapFragmentView.java
| @@ -7,8 +7,8 @@ import android.hardware.Sensor; | @@ -7,8 +7,8 @@ import android.hardware.Sensor; | ||
| 7 | import android.hardware.SensorEvent; | 7 | import android.hardware.SensorEvent; |
| 8 | import android.hardware.SensorEventListener; | 8 | import android.hardware.SensorEventListener; |
| 9 | import android.hardware.SensorManager; | 9 | import android.hardware.SensorManager; |
| 10 | -import android.os.Handler; | ||
| 11 | import android.os.SystemClock; | 10 | import android.os.SystemClock; |
| 11 | +import android.text.TextUtils; | ||
| 12 | import android.util.Log; | 12 | import android.util.Log; |
| 13 | import android.view.MotionEvent; | 13 | import android.view.MotionEvent; |
| 14 | import android.view.View; | 14 | import android.view.View; |
| @@ -32,15 +32,18 @@ import com.baidu.mapapi.map.Overlay; | @@ -32,15 +32,18 @@ import com.baidu.mapapi.map.Overlay; | ||
| 32 | import com.baidu.mapapi.map.UiSettings; | 32 | import com.baidu.mapapi.map.UiSettings; |
| 33 | import com.baidu.mapapi.model.LatLng; | 33 | import com.baidu.mapapi.model.LatLng; |
| 34 | import com.baidu.mapapi.utils.DistanceUtil; | 34 | import com.baidu.mapapi.utils.DistanceUtil; |
| 35 | -import com.baidu.trace.model.SortType; | ||
| 36 | import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunningMapFragment; | 35 | import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunningMapFragment; |
| 36 | +import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo; | ||
| 37 | import com.cnlive.moudle.pedometer.model.Constant; | 37 | import com.cnlive.moudle.pedometer.model.Constant; |
| 38 | -import com.cnlive.moudle.pedometer.model.RunningMapBean; | ||
| 39 | -import com.cnlive.moudle.pedometer.ui.fragment.RunningMapFragment; | 38 | +import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo; |
| 39 | +import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity; | ||
| 40 | import com.cnlive.moudle.pedometer.utils.BitmapUtil; | 40 | import com.cnlive.moudle.pedometer.utils.BitmapUtil; |
| 41 | import com.cnlive.moudle.pedometer.utils.ButtonAnimUtil; | 41 | import com.cnlive.moudle.pedometer.utils.ButtonAnimUtil; |
| 42 | -import com.cnlive.moudle.pedometer.utils.CollStepUtil; | 42 | +import com.cnlive.moudle.collectionTrace.utils.CollStepUtil; |
| 43 | +import com.cnlive.moudle.pedometer.utils.GsonUtil; | ||
| 43 | import com.cnlive.moudle.pedometer.utils.MyMapUtil; | 44 | import com.cnlive.moudle.pedometer.utils.MyMapUtil; |
| 45 | +import com.cnlive.moudle.pedometer.utils.StepUtil; | ||
| 46 | +import com.cnlive.moudle.pedometer.utils.TimeUtil; | ||
| 44 | import com.example.moudle_pedometer.R; | 47 | import com.example.moudle_pedometer.R; |
| 45 | import com.hannesdorfmann.mosby3.mvp.MvpView; | 48 | import com.hannesdorfmann.mosby3.mvp.MvpView; |
| 46 | 49 | ||
| @@ -71,9 +74,12 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener | @@ -71,9 +74,12 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener | ||
| 71 | public MyLocationListenner myListener = new MyLocationListenner(); | 74 | public MyLocationListenner myListener = new MyLocationListenner(); |
| 72 | private final int DEFULT_ZOOM = 17; | 75 | private final int DEFULT_ZOOM = 17; |
| 73 | private boolean isFirstLoadMap = true; | 76 | private boolean isFirstLoadMap = true; |
| 74 | - private List<LatLng> trackPoints; | ||
| 75 | private Overlay currentLine; | 77 | private Overlay currentLine; |
| 76 | private List<LatLng> currentPoints; | 78 | private List<LatLng> currentPoints; |
| 79 | + private CollUserStepEntity userStepEntity; | ||
| 80 | + private String uid; | ||
| 81 | + private RunRaceDetailInfo runRaceDetailInfo; | ||
| 82 | + private List<Overlay> overlays; | ||
| 77 | 83 | ||
| 78 | public CollRunningMapFragmentView(CollRunningMapFragment fragment) { | 84 | public CollRunningMapFragmentView(CollRunningMapFragment fragment) { |
| 79 | this.fragment = fragment; | 85 | this.fragment = fragment; |
| @@ -83,9 +89,139 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener | @@ -83,9 +89,139 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener | ||
| 83 | return fragment == null ? null : fragment.getActivity(); | 89 | return fragment == null ? null : fragment.getActivity(); |
| 84 | } | 90 | } |
| 85 | 91 | ||
| 86 | - public void initView(List<LatLng> trackPoints) { | 92 | + public void initView(RunRaceDetailInfo runRaceDetailInfo) { |
| 87 | currentPoints = new ArrayList<>(); | 93 | currentPoints = new ArrayList<>(); |
| 88 | - this.trackPoints = trackPoints; | 94 | + this.runRaceDetailInfo = runRaceDetailInfo; |
| 95 | + uid = CollCommonInfo.getUserId(getContext()); | ||
| 96 | + userStepEntity = CollStepUtil.getCollUserStepData(getContext(), uid); | ||
| 97 | + //在地图上显示起点 | ||
| 98 | + //设置数据 | ||
| 99 | + if (userStepEntity != null) { | ||
| 100 | + //设置赛事标题 | ||
| 101 | + if (TextUtils.isEmpty(userStepEntity.getStreetTitle())) { | ||
| 102 | + CollStepUtil.setCollStreetTitle(getContext(), CollCommonInfo.getUserId(getContext()), runRaceDetailInfo.getTitle()); | ||
| 103 | + } | ||
| 104 | + //设置开始时间和赛事id | ||
| 105 | + if (TextUtils.isEmpty(userStepEntity.getStreetId())) { | ||
| 106 | + CollStepUtil.setCollStepStartData(getContext(), uid, TimeUtil.getNowTimeStamp(), CollCommonInfo.getStreetId(getContext())); | ||
| 107 | + } | ||
| 108 | + //设置步数 | ||
| 109 | + if (!TextUtils.isEmpty(userStepEntity.getStepCount())) { | ||
| 110 | + //设置行走公里 | ||
| 111 | + fragment.binding.tvCurrentDiatance.setText(CollStepUtil.getWalkDistanceKM(Long.parseLong(userStepEntity.getStepCount())) + ""); | ||
| 112 | + } | ||
| 113 | + //设置是否需要设置起点信息 | ||
| 114 | + if (TextUtils.isEmpty(userStepEntity.getCollStartLatLng())||TextUtils.isEmpty(userStepEntity.getCollStartLatLngName())) { | ||
| 115 | + //开始设置 | ||
| 116 | + if (!TextUtils.isEmpty(runRaceDetailInfo.getCollStartLatLng()) && !TextUtils.isEmpty(runRaceDetailInfo.getCollStartLntLngName())) { | ||
| 117 | + CollStepUtil.setCollStartPointData(getContext(), uid, runRaceDetailInfo.getCollStartLntLngName(), runRaceDetailInfo.getCollStartLatLng()); | ||
| 118 | + } | ||
| 119 | + } | ||
| 120 | + initChrom(); | ||
| 121 | + //初始化起点 | ||
| 122 | + overlays = new ArrayList<>(); | ||
| 123 | + //打起点(重新获取数据) | ||
| 124 | + userStepEntity = CollStepUtil.getCollUserStepData(getContext(), uid); | ||
| 125 | + if (!TextUtils.isEmpty(userStepEntity.getCollStartLatLng())) { | ||
| 126 | + LatLng startLatLng = GsonUtil.GsonToBean(userStepEntity.getCollStartLatLng(), LatLng.class); | ||
| 127 | + if (null != startLatLng) { | ||
| 128 | + List<Overlay> resultOverlays = MyMapUtil.setStartMarker(getContext(), baiduMap, startLatLng, R.drawable.icon_start); | ||
| 129 | + if (null != resultOverlays) { | ||
| 130 | + this.overlays.addAll(resultOverlays); | ||
| 131 | + } | ||
| 132 | + } | ||
| 133 | + } | ||
| 134 | + } | ||
| 135 | + //返回键 | ||
| 136 | + fragment.binding.flBack.setOnTouchListener(new View.OnTouchListener() { | ||
| 137 | + @Override | ||
| 138 | + public boolean onTouch(View view, MotionEvent motionEvent) { | ||
| 139 | + Log.e(TAG, "onTouch: " + motionEvent.getAction()); | ||
| 140 | + if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { | ||
| 141 | + ButtonAnimUtil.setViewZoomIn(fragment.binding.flBack); | ||
| 142 | + } else if (motionEvent.getAction() == MotionEvent.ACTION_UP) { | ||
| 143 | + ButtonAnimUtil.setViewZoomOut(fragment.binding.flBack); | ||
| 144 | + } | ||
| 145 | + return false; | ||
| 146 | + } | ||
| 147 | + }); | ||
| 148 | + //返回键点击事件 | ||
| 149 | + fragment.binding.flBack.setOnClickListener(new View.OnClickListener() { | ||
| 150 | + @Override | ||
| 151 | + public void onClick(View view) { | ||
| 152 | + fragment.getActivity().finish(); | ||
| 153 | + } | ||
| 154 | + }); | ||
| 155 | + //重新定位 | ||
| 156 | + fragment.binding.flLocation.setOnTouchListener(new View.OnTouchListener() { | ||
| 157 | + @Override | ||
| 158 | + public boolean onTouch(View view, MotionEvent motionEvent) { | ||
| 159 | + if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { | ||
| 160 | + ButtonAnimUtil.setViewZoomIn(fragment.binding.flLocation); | ||
| 161 | + } else if (motionEvent.getAction() == MotionEvent.ACTION_UP) { | ||
| 162 | + ButtonAnimUtil.setViewZoomOut(fragment.binding.flLocation); | ||
| 163 | + } | ||
| 164 | + return false; | ||
| 165 | + } | ||
| 166 | + }); | ||
| 167 | + //重新定位功能 | ||
| 168 | + fragment.binding.flLocation.setOnClickListener(new View.OnClickListener() { | ||
| 169 | + @Override | ||
| 170 | + public void onClick(View view) { | ||
| 171 | + mLocClient.restart(); | ||
| 172 | + isFirstLoc = true; | ||
| 173 | + } | ||
| 174 | + }); | ||
| 175 | + | ||
| 176 | + } | ||
| 177 | + | ||
| 178 | + private void initChrom() { | ||
| 179 | + //设置计时监听 | ||
| 180 | + fragment.binding.chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { | ||
| 181 | + @Override | ||
| 182 | + public void onChronometerTick(Chronometer chronometer) { | ||
| 183 | + int hour = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 / 60 / 60); | ||
| 184 | + int minute = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 / 60) % 60; | ||
| 185 | + int second = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000) % 60; | ||
| 186 | + if (hour < 1) { | ||
| 187 | + if (minute == 59 && second == 59) { | ||
| 188 | + chronometer.setFormat("0" + "%s"); | ||
| 189 | + } else { | ||
| 190 | + chronometer.setFormat("0" + String.valueOf(hour) + ":%s"); | ||
| 191 | + } | ||
| 192 | + } else if (hour < 10) { | ||
| 193 | + chronometer.setFormat("0" + "%s"); | ||
| 194 | + } else { | ||
| 195 | + chronometer.setFormat("%s"); | ||
| 196 | + } | ||
| 197 | + | ||
| 198 | + } | ||
| 199 | + }); | ||
| 200 | + | ||
| 201 | + if (userStepEntity != null) { | ||
| 202 | + //没有暂停,从初始时间开始 | ||
| 203 | + if (userStepEntity.getChronometerBase() != 0) { | ||
| 204 | + fragment.binding.chronometer.setBase(userStepEntity.getChronometerBase()); | ||
| 205 | + } else { | ||
| 206 | + fragment.binding.chronometer.setFormat("00:00:01"); | ||
| 207 | + fragment.binding.chronometer.setBase(SystemClock.elapsedRealtime()); | ||
| 208 | + //设置计步开始时间 | ||
| 209 | + CollStepUtil.setCollChronometerBase(getContext(), uid, fragment.binding.chronometer.getBase()); | ||
| 210 | + } | ||
| 211 | + fragment.binding.chronometer.start(); | ||
| 212 | + | ||
| 213 | + } | ||
| 214 | + //没有数据 | ||
| 215 | + else { | ||
| 216 | + fragment.binding.chronometer.setFormat("00:00:01"); | ||
| 217 | + fragment.binding.chronometer.setBase(SystemClock.elapsedRealtime()); | ||
| 218 | + //设置计步开始时间 | ||
| 219 | + CollStepUtil.setCollChronometerBase(getContext(), uid, fragment.binding.chronometer.getBase()); | ||
| 220 | + fragment.binding.chronometer.start(); | ||
| 221 | + } | ||
| 222 | + } | ||
| 223 | + | ||
| 224 | + public void initMap() { | ||
| 89 | this.mMapView = fragment.binding.mapView; | 225 | this.mMapView = fragment.binding.mapView; |
| 90 | if (baiduMap == null) { | 226 | if (baiduMap == null) { |
| 91 | baiduMap = mMapView.getMap(); | 227 | baiduMap = mMapView.getMap(); |
| @@ -156,67 +292,8 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener | @@ -156,67 +292,8 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener | ||
| 156 | baiduMap.setOnMapLoadedCallback(new BaiduMap.OnMapLoadedCallback() { | 292 | baiduMap.setOnMapLoadedCallback(new BaiduMap.OnMapLoadedCallback() { |
| 157 | @Override | 293 | @Override |
| 158 | public void onMapLoaded() { | 294 | public void onMapLoaded() { |
| 159 | - //自动计算地图缩放 | ||
| 160 | - MapStatus.Builder builder = new MapStatus.Builder(); | ||
| 161 | - builder.target(MyMapUtil.getCenterZoomPosition(trackPoints)); | ||
| 162 | - builder.zoom(MyMapUtil.getZoom(trackPoints)); | ||
| 163 | - baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); | ||
| 164 | - if (isFirstLoadMap) { | ||
| 165 | - isFirstLoadMap = false; | ||
| 166 | - new Handler().postDelayed(new Runnable() { | ||
| 167 | - @Override | ||
| 168 | - public void run() { | ||
| 169 | - //绘制赛道轨迹 | ||
| 170 | - if (getContext() == null) { | ||
| 171 | - return; | ||
| 172 | - } | ||
| 173 | - MyMapUtil.drawServerLineTrack(getContext(), baiduMap, trackPoints, SortType.asc, R.color.green_50, R.drawable.icon_start, R.drawable.icon_end); | ||
| 174 | - } | ||
| 175 | - }, 1500); | ||
| 176 | - } | ||
| 177 | - } | ||
| 178 | - }); | ||
| 179 | - //返回键 | ||
| 180 | - fragment.binding.flBack.setOnTouchListener(new View.OnTouchListener() { | ||
| 181 | - @Override | ||
| 182 | - public boolean onTouch(View view, MotionEvent motionEvent) { | ||
| 183 | - Log.e(TAG, "onTouch: " + motionEvent.getAction()); | ||
| 184 | - if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { | ||
| 185 | - ButtonAnimUtil.setViewZoomIn(fragment.binding.flBack); | ||
| 186 | - } else if (motionEvent.getAction() == MotionEvent.ACTION_UP) { | ||
| 187 | - ButtonAnimUtil.setViewZoomOut(fragment.binding.flBack); | ||
| 188 | - } | ||
| 189 | - return false; | ||
| 190 | - } | ||
| 191 | - }); | ||
| 192 | - //返回键点击事件 | ||
| 193 | - fragment.binding.flBack.setOnClickListener(new View.OnClickListener() { | ||
| 194 | - @Override | ||
| 195 | - public void onClick(View view) { | ||
| 196 | - fragment.getActivity().finish(); | ||
| 197 | - } | ||
| 198 | - }); | ||
| 199 | - //重新定位 | ||
| 200 | - fragment.binding.flLocation.setOnTouchListener(new View.OnTouchListener() { | ||
| 201 | - @Override | ||
| 202 | - public boolean onTouch(View view, MotionEvent motionEvent) { | ||
| 203 | - if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { | ||
| 204 | - ButtonAnimUtil.setViewZoomIn(fragment.binding.flLocation); | ||
| 205 | - } else if (motionEvent.getAction() == MotionEvent.ACTION_UP) { | ||
| 206 | - ButtonAnimUtil.setViewZoomOut(fragment.binding.flLocation); | ||
| 207 | - } | ||
| 208 | - return false; | ||
| 209 | } | 295 | } |
| 210 | }); | 296 | }); |
| 211 | - //重新定位功能 | ||
| 212 | - fragment.binding.flLocation.setOnClickListener(new View.OnClickListener() { | ||
| 213 | - @Override | ||
| 214 | - public void onClick(View view) { | ||
| 215 | - mLocClient.restart(); | ||
| 216 | - isFirstLoc = true; | ||
| 217 | - } | ||
| 218 | - }); | ||
| 219 | - | ||
| 220 | } | 297 | } |
| 221 | 298 | ||
| 222 | 299 | ||
| @@ -322,6 +399,9 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener | @@ -322,6 +399,9 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener | ||
| 322 | MapStatus.Builder builder = new MapStatus.Builder(); | 399 | MapStatus.Builder builder = new MapStatus.Builder(); |
| 323 | //不是第一次定位状态 | 400 | //不是第一次定位状态 |
| 324 | if (!isFirstLoc) { | 401 | if (!isFirstLoc) { |
| 402 | + baiduMap.setMyLocationData(mylocation); | ||
| 403 | + builder.target(new LatLng(mylocation.latitude, mylocation.longitude)).zoom(DEFULT_ZOOM); | ||
| 404 | + baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); | ||
| 325 | if (currentPoints.size() > 0) { | 405 | if (currentPoints.size() > 0) { |
| 326 | //进行判断 | 406 | //进行判断 |
| 327 | LatLng lastLatLng = currentPoints.get(currentPoints.size() - 1); | 407 | LatLng lastLatLng = currentPoints.get(currentPoints.size() - 1); |
| @@ -356,44 +436,24 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener | @@ -356,44 +436,24 @@ public class CollRunningMapFragmentView implements MvpView, SensorEventListener | ||
| 356 | } | 436 | } |
| 357 | 437 | ||
| 358 | 438 | ||
| 359 | - /** | ||
| 360 | - * 同步计时器 | ||
| 361 | - */ | ||
| 362 | - public void updateChronometer(RunningMapBean runningMapBean) { | ||
| 363 | - //设置计时监听 | ||
| 364 | - fragment.binding.chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { | ||
| 365 | - @Override | ||
| 366 | - public void onChronometerTick(Chronometer chronometer) { | ||
| 367 | - int hour = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 / 60 / 60); | ||
| 368 | - int minute = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 / 60) % 60; | ||
| 369 | - int second = (int) ((SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000) % 60; | ||
| 370 | - if (hour < 1) { | ||
| 371 | - if (minute == 59 && second == 59) { | ||
| 372 | - chronometer.setFormat("0" + "%s"); | ||
| 373 | - } else { | ||
| 374 | - chronometer.setFormat("0" + String.valueOf(hour) + ":%s"); | ||
| 375 | - } | ||
| 376 | - } else if (hour < 10) { | ||
| 377 | - chronometer.setFormat("0" + "%s"); | ||
| 378 | - } else { | ||
| 379 | - chronometer.setFormat("%s"); | ||
| 380 | - } | ||
| 381 | - | ||
| 382 | - } | ||
| 383 | - }); | ||
| 384 | - fragment.binding.chronometer.setBase(runningMapBean.getTimeBase() + (SystemClock.elapsedRealtime() - runningMapBean.getRecordTime())); | ||
| 385 | - //判断是否点击暂停按钮 | ||
| 386 | - if (runningMapBean.isPause()) { | ||
| 387 | - //点击暂停按钮,那么就只显示文本 | ||
| 388 | - fragment.binding.chronometer.setText(runningMapBean.getPauseShowTime()); | ||
| 389 | - } else { | ||
| 390 | - fragment.binding.chronometer.start(); | ||
| 391 | - } | ||
| 392 | - //设置速度 | ||
| 393 | - fragment.binding.tvCurrentSpeed.setText(runningMapBean.getCurrentSpeed()); | ||
| 394 | - //设置距离 | ||
| 395 | - fragment.binding.tvCurrentDiatance.setText(runningMapBean.getDistance()); | ||
| 396 | - } | 439 | +// /** |
| 440 | +// * 同步计时器 | ||
| 441 | +// */ | ||
| 442 | +// public void updateChronometer(RunningMapBean runningMapBean) { | ||
| 443 | +// | ||
| 444 | +// fragment.binding.chronometer.setBase(runningMapBean.getTimeBase() + (SystemClock.elapsedRealtime() - runningMapBean.getRecordTime())); | ||
| 445 | +// //判断是否点击暂停按钮 | ||
| 446 | +// if (runningMapBean.isPause()) { | ||
| 447 | +// //点击暂停按钮,那么就只显示文本 | ||
| 448 | +// fragment.binding.chronometer.setText(runningMapBean.getPauseShowTime()); | ||
| 449 | +// } else { | ||
| 450 | +// fragment.binding.chronometer.start(); | ||
| 451 | +// } | ||
| 452 | +// //设置速度 | ||
| 453 | +// fragment.binding.tvCurrentSpeed.setText(runningMapBean.getCurrentSpeed()); | ||
| 454 | +// //设置距离 | ||
| 455 | +// fragment.binding.tvCurrentDiatance.setText(runningMapBean.getDistance()); | ||
| 456 | +// } | ||
| 397 | 457 | ||
| 398 | /** | 458 | /** |
| 399 | * 更新行走距离 | 459 | * 更新行走距离 |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/frame/view/StartTraceFragmentView.java
| @@ -27,18 +27,18 @@ import com.baidu.mapapi.map.MyLocationConfiguration; | @@ -27,18 +27,18 @@ import com.baidu.mapapi.map.MyLocationConfiguration; | ||
| 27 | import com.baidu.mapapi.map.MyLocationData; | 27 | import com.baidu.mapapi.map.MyLocationData; |
| 28 | import com.baidu.mapapi.map.UiSettings; | 28 | import com.baidu.mapapi.map.UiSettings; |
| 29 | import com.baidu.mapapi.model.LatLng; | 29 | import com.baidu.mapapi.model.LatLng; |
| 30 | -import com.baidu.mapapi.search.route.RoutePlanSearch; | ||
| 31 | import com.cnlive.moudle.collectionTrace.service.CollKeepLiveService; | 30 | import com.cnlive.moudle.collectionTrace.service.CollKeepLiveService; |
| 32 | -import com.cnlive.moudle.collectionTrace.ui.activity.CollPedometerMainActivity; | ||
| 33 | -import com.cnlive.moudle.collectionTrace.ui.activity.CollRunRaceDetailActivity; | ||
| 34 | -import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunRaceDetailFragment; | 31 | +import com.cnlive.moudle.collectionTrace.service.CollStepService; |
| 32 | +import com.cnlive.moudle.collectionTrace.ui.activity.CollRunningMapActivity; | ||
| 35 | import com.cnlive.moudle.collectionTrace.ui.fragment.StartTraceFragment; | 33 | import com.cnlive.moudle.collectionTrace.ui.fragment.StartTraceFragment; |
| 36 | -import com.cnlive.moudle.pedometer.commonInfo.CollCommonInfo; | 34 | +import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo; |
| 37 | import com.cnlive.moudle.pedometer.model.Constant; | 35 | import com.cnlive.moudle.pedometer.model.Constant; |
| 36 | +import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo; | ||
| 38 | import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; | 37 | import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; |
| 39 | -import com.cnlive.moudle.pedometer.ui.widget.TipDialog; | ||
| 40 | import com.cnlive.moudle.pedometer.utils.BitmapUtil; | 38 | import com.cnlive.moudle.pedometer.utils.BitmapUtil; |
| 39 | +import com.cnlive.moudle.pedometer.utils.GsonUtil; | ||
| 41 | import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil; | 40 | import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil; |
| 41 | +import com.cnlive.moudle.pedometer.utils.ServiceUtils; | ||
| 42 | import com.cnlive.moudle.pedometer.utils.TimeUtil; | 42 | import com.cnlive.moudle.pedometer.utils.TimeUtil; |
| 43 | import com.example.moudle_pedometer.R; | 43 | import com.example.moudle_pedometer.R; |
| 44 | import com.hannesdorfmann.mosby3.mvp.MvpView; | 44 | import com.hannesdorfmann.mosby3.mvp.MvpView; |
| @@ -53,7 +53,7 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | @@ -53,7 +53,7 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | ||
| 53 | private static int accuracyCircleFillColor; | 53 | private static int accuracyCircleFillColor; |
| 54 | private static int accuracyCircleStrokeColor; | 54 | private static int accuracyCircleStrokeColor; |
| 55 | private static MyLocationData followMyLocation; | 55 | private static MyLocationData followMyLocation; |
| 56 | - private LatLng firstLatLng; | 56 | + private LatLng currentLatLng; |
| 57 | private Double lastX = 0.0; | 57 | private Double lastX = 0.0; |
| 58 | private int mCurrentDirection = 0; | 58 | private int mCurrentDirection = 0; |
| 59 | private float mCurrentAccracy; | 59 | private float mCurrentAccracy; |
| @@ -65,6 +65,7 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | @@ -65,6 +65,7 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | ||
| 65 | private String currentAddress; | 65 | private String currentAddress; |
| 66 | private SelectDialog selectDialog; | 66 | private SelectDialog selectDialog; |
| 67 | private boolean isShowFollowAddress = false;//是否显示跟随地址 | 67 | private boolean isShowFollowAddress = false;//是否显示跟随地址 |
| 68 | + public RunRaceDetailInfo runRaceDetailInfo; | ||
| 68 | 69 | ||
| 69 | public StartTraceFragmentView(StartTraceFragment fragment) { | 70 | public StartTraceFragmentView(StartTraceFragment fragment) { |
| 70 | this.fragment = fragment; | 71 | this.fragment = fragment; |
| @@ -74,7 +75,8 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | @@ -74,7 +75,8 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | ||
| 74 | return fragment == null ? null : fragment.getActivity(); | 75 | return fragment == null ? null : fragment.getActivity(); |
| 75 | } | 76 | } |
| 76 | 77 | ||
| 77 | - public void initView() { | 78 | + public void initView(RunRaceDetailInfo runRaceDetailInfo) { |
| 79 | + this.runRaceDetailInfo = runRaceDetailInfo; | ||
| 78 | if (getContext() == null) { | 80 | if (getContext() == null) { |
| 79 | return; | 81 | return; |
| 80 | } | 82 | } |
| @@ -90,9 +92,13 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | @@ -90,9 +92,13 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | ||
| 90 | public void onClick(SelectDialog dialog) { | 92 | public void onClick(SelectDialog dialog) { |
| 91 | dialog.dismiss(); | 93 | dialog.dismiss(); |
| 92 | isShowFollowAddress = false; | 94 | isShowFollowAddress = false; |
| 95 | + //设置运营起点 | ||
| 96 | + runRaceDetailInfo.setCollStartLatLng(GsonUtil.GsonString(currentLatLng)); | ||
| 97 | + //设置起点名称 | ||
| 98 | + runRaceDetailInfo.setCollStartLntLngName(currentAddress); | ||
| 93 | //开启计步服务 | 99 | //开启计步服务 |
| 94 | - startStepService(getContext()); | ||
| 95 | - | 100 | +// startStepService(getContext()); |
| 101 | + checkBaiduServiceState(); | ||
| 96 | } | 102 | } |
| 97 | }); | 103 | }); |
| 98 | selectDialog.setCancelable(false); | 104 | selectDialog.setCancelable(false); |
| @@ -112,13 +118,14 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | @@ -112,13 +118,14 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | ||
| 112 | } | 118 | } |
| 113 | } | 119 | } |
| 114 | }); | 120 | }); |
| 121 | + | ||
| 115 | } | 122 | } |
| 116 | 123 | ||
| 117 | /** | 124 | /** |
| 118 | * 启动计步服务 | 125 | * 启动计步服务 |
| 119 | */ | 126 | */ |
| 120 | public void startStepService(Context context) { | 127 | public void startStepService(Context context) { |
| 121 | - CollCommonInfo.setIsFirstStepSendTraceTip(getContext(),true); | 128 | + CollCommonInfo.setIsFirstStepSendTraceTip(getContext(), true); |
| 122 | QMUITipDialogUtil.loadingDialog(getContext(), "请稍后", false); | 129 | QMUITipDialogUtil.loadingDialog(getContext(), "请稍后", false); |
| 123 | if (CollCommonInfo.getStepStartTime(context) == 0) { | 130 | if (CollCommonInfo.getStepStartTime(context) == 0) { |
| 124 | CollCommonInfo.setStepStartTime(context, TimeUtil.getNowTimeStamp()); | 131 | CollCommonInfo.setStepStartTime(context, TimeUtil.getNowTimeStamp()); |
| @@ -132,6 +139,33 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | @@ -132,6 +139,33 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | ||
| 132 | 139 | ||
| 133 | } | 140 | } |
| 134 | 141 | ||
| 142 | + private void checkBaiduServiceState() { | ||
| 143 | + boolean isRunBaidu = CollCommonInfo.getIsRunBaiduTraceService(getContext()); | ||
| 144 | + //要运行百度 | ||
| 145 | + if (isRunBaidu) { | ||
| 146 | + //判断百度服务是否运行 | ||
| 147 | + if (!ServiceUtils.isServiceRunning(getContext(), "com.baidu.trace.LBSTraceService")) { | ||
| 148 | + stopStepService(); | ||
| 149 | + startStepService(getContext()); | ||
| 150 | + } else { | ||
| 151 | + CollRunningMapActivity.startActivity(fragment.getActivity(), runRaceDetailInfo); | ||
| 152 | + } | ||
| 153 | + } else { | ||
| 154 | + CollRunningMapActivity.startActivity(fragment.getActivity(), runRaceDetailInfo); | ||
| 155 | + } | ||
| 156 | + } | ||
| 157 | + | ||
| 158 | + private void stopStepService() { | ||
| 159 | + CollCommonInfo.setTsRunBaiduTraceService(getContext(), false); | ||
| 160 | + CollCommonInfo.setIsRunKeepAliveService(getContext(), false); | ||
| 161 | + CollCommonInfo.setIsWriteUserStep(getContext(), false); | ||
| 162 | + CollCommonInfo.setIsFirstStepSendTraceTip(getContext(), true); | ||
| 163 | + if (CollStepService.mClient != null) { | ||
| 164 | + CollStepService.mClient.stopGather(CollStepService.traceListener); | ||
| 165 | + } | ||
| 166 | + fragment.getActivity().stopService(new Intent(fragment.getActivity(), CollStepService.class)); | ||
| 167 | + } | ||
| 168 | + | ||
| 135 | /** | 169 | /** |
| 136 | * 初始化地图 | 170 | * 初始化地图 |
| 137 | */ | 171 | */ |
| @@ -224,12 +258,12 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | @@ -224,12 +258,12 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | ||
| 224 | double x = sensorEvent.values[SensorManager.DATA_X]; | 258 | double x = sensorEvent.values[SensorManager.DATA_X]; |
| 225 | if (Math.abs(x - lastX) > 1.0) { | 259 | if (Math.abs(x - lastX) > 1.0) { |
| 226 | mCurrentDirection = (int) x; | 260 | mCurrentDirection = (int) x; |
| 227 | - if (firstLatLng != null) { | 261 | + if (currentLatLng != null) { |
| 228 | followMyLocation = new MyLocationData.Builder() | 262 | followMyLocation = new MyLocationData.Builder() |
| 229 | .accuracy(mCurrentAccracy) | 263 | .accuracy(mCurrentAccracy) |
| 230 | // 此处设置开发者获取到的方向信息,顺时针0-360 | 264 | // 此处设置开发者获取到的方向信息,顺时针0-360 |
| 231 | - .direction(mCurrentDirection).latitude(firstLatLng.latitude) | ||
| 232 | - .longitude(firstLatLng.longitude).build(); | 265 | + .direction(mCurrentDirection).latitude(currentLatLng.latitude) |
| 266 | + .longitude(currentLatLng.longitude).build(); | ||
| 233 | baiduMap.setMyLocationData(followMyLocation); | 267 | baiduMap.setMyLocationData(followMyLocation); |
| 234 | } | 268 | } |
| 235 | } | 269 | } |
| @@ -269,6 +303,7 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | @@ -269,6 +303,7 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | ||
| 269 | // 此处设置开发者获取到的方向信息,顺时针0-360 | 303 | // 此处设置开发者获取到的方向信息,顺时针0-360 |
| 270 | .direction(location.getDirection()).latitude(location.getLatitude()) | 304 | .direction(location.getDirection()).latitude(location.getLatitude()) |
| 271 | .longitude(location.getLongitude()).build(); | 305 | .longitude(location.getLongitude()).build(); |
| 306 | +// currentAddress = location.getAddrStr(); | ||
| 272 | currentAddress = location.getLocationDescribe(); | 307 | currentAddress = location.getLocationDescribe(); |
| 273 | if (selectDialog != null && selectDialog.isShowing()) { | 308 | if (selectDialog != null && selectDialog.isShowing()) { |
| 274 | selectDialog.setTipMessage(currentAddress); | 309 | selectDialog.setTipMessage(currentAddress); |
| @@ -287,10 +322,10 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | @@ -287,10 +322,10 @@ public class StartTraceFragmentView implements MvpView, SensorEventListener { | ||
| 287 | 322 | ||
| 288 | // if (isFirstLoc) { | 323 | // if (isFirstLoc) { |
| 289 | // isFirstLoc = false; | 324 | // isFirstLoc = false; |
| 290 | - firstLatLng = new LatLng(location.getLatitude(), | 325 | + currentLatLng = new LatLng(location.getLatitude(), |
| 291 | location.getLongitude()); | 326 | location.getLongitude()); |
| 292 | baiduMap.setMyLocationData(followMyLocation); | 327 | baiduMap.setMyLocationData(followMyLocation); |
| 293 | - builder.target(firstLatLng).zoom(DEFULT_ZOOM); | 328 | + builder.target(currentLatLng).zoom(DEFULT_ZOOM); |
| 294 | baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); | 329 | baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); |
| 295 | 330 | ||
| 296 | } | 331 | } |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/model/CollectPoint.java
0 → 100644
| 1 | +package com.cnlive.moudle.collectionTrace.model; | ||
| 2 | + | ||
| 3 | +import com.baidu.mapapi.model.LatLng; | ||
| 4 | + | ||
| 5 | +public class CollectPoint { | ||
| 6 | + private double lat; | ||
| 7 | + private double lng; | ||
| 8 | + private String pointName; | ||
| 9 | + | ||
| 10 | + public double getLat() { | ||
| 11 | + return lat; | ||
| 12 | + } | ||
| 13 | + | ||
| 14 | + public void setLat(double lat) { | ||
| 15 | + this.lat = lat; | ||
| 16 | + } | ||
| 17 | + | ||
| 18 | + public double getLng() { | ||
| 19 | + return lng; | ||
| 20 | + } | ||
| 21 | + | ||
| 22 | + public void setLng(double lng) { | ||
| 23 | + this.lng = lng; | ||
| 24 | + } | ||
| 25 | + | ||
| 26 | + public String getPointName() { | ||
| 27 | + return pointName; | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + public void setPointName(String pointName) { | ||
| 31 | + this.pointName = pointName; | ||
| 32 | + } | ||
| 33 | +} |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/receivers/CollServiceReceiver.java
| @@ -10,7 +10,7 @@ import android.util.Log; | @@ -10,7 +10,7 @@ import android.util.Log; | ||
| 10 | 10 | ||
| 11 | import com.cnlive.moudle.collectionTrace.service.CollKeepLiveService; | 11 | import com.cnlive.moudle.collectionTrace.service.CollKeepLiveService; |
| 12 | import com.cnlive.moudle.collectionTrace.service.CollStepService; | 12 | import com.cnlive.moudle.collectionTrace.service.CollStepService; |
| 13 | -import com.cnlive.moudle.pedometer.commonInfo.CollCommonInfo; | 13 | +import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo; |
| 14 | import com.cnlive.moudle.pedometer.utils.ServiceUtils; | 14 | import com.cnlive.moudle.pedometer.utils.ServiceUtils; |
| 15 | 15 | ||
| 16 | 16 |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/service/CollKeepLiveService.java
| @@ -18,7 +18,7 @@ import android.support.v4.app.NotificationCompat; | @@ -18,7 +18,7 @@ import android.support.v4.app.NotificationCompat; | ||
| 18 | import android.util.Log; | 18 | import android.util.Log; |
| 19 | 19 | ||
| 20 | import com.cnlive.moudle.collectionTrace.receivers.CollServiceReceiver; | 20 | import com.cnlive.moudle.collectionTrace.receivers.CollServiceReceiver; |
| 21 | -import com.cnlive.moudle.pedometer.commonInfo.CollCommonInfo; | 21 | +import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo; |
| 22 | import com.cnlive.moudle.pedometer.utils.ServiceUtils; | 22 | import com.cnlive.moudle.pedometer.utils.ServiceUtils; |
| 23 | import com.example.moudle_pedometer.R; | 23 | import com.example.moudle_pedometer.R; |
| 24 | 24 |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/service/CollStepService.java
| @@ -28,8 +28,6 @@ import android.widget.Toast; | @@ -28,8 +28,6 @@ import android.widget.Toast; | ||
| 28 | 28 | ||
| 29 | import com.baidu.trace.LBSTraceClient; | 29 | import com.baidu.trace.LBSTraceClient; |
| 30 | import com.baidu.trace.Trace; | 30 | import com.baidu.trace.Trace; |
| 31 | -import com.baidu.trace.api.fence.FenceAlarmPushInfo; | ||
| 32 | -import com.baidu.trace.api.fence.MonitoredAction; | ||
| 33 | import com.baidu.trace.api.track.LatestPoint; | 31 | import com.baidu.trace.api.track.LatestPoint; |
| 34 | import com.baidu.trace.api.track.LatestPointResponse; | 32 | import com.baidu.trace.api.track.LatestPointResponse; |
| 35 | import com.baidu.trace.api.track.OnTrackListener; | 33 | import com.baidu.trace.api.track.OnTrackListener; |
| @@ -37,18 +35,16 @@ import com.baidu.trace.model.LocationMode; | @@ -37,18 +35,16 @@ import com.baidu.trace.model.LocationMode; | ||
| 37 | import com.baidu.trace.model.OnTraceListener; | 35 | import com.baidu.trace.model.OnTraceListener; |
| 38 | import com.baidu.trace.model.PushMessage; | 36 | import com.baidu.trace.model.PushMessage; |
| 39 | import com.baidu.trace.model.StatusCodes; | 37 | import com.baidu.trace.model.StatusCodes; |
| 40 | -import com.cnlive.moudle.pedometer.commonInfo.CollCommonInfo; | ||
| 41 | -import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; | 38 | +import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo; |
| 42 | import com.cnlive.moudle.pedometer.model.Constant; | 39 | import com.cnlive.moudle.pedometer.model.Constant; |
| 43 | import com.cnlive.moudle.pedometer.model.MessageEvent; | 40 | import com.cnlive.moudle.pedometer.model.MessageEvent; |
| 44 | import com.cnlive.moudle.pedometer.model.step.StepCount; | 41 | import com.cnlive.moudle.pedometer.model.step.StepCount; |
| 45 | import com.cnlive.moudle.pedometer.model.step.StepValuePassListener; | 42 | import com.cnlive.moudle.pedometer.model.step.StepValuePassListener; |
| 46 | -import com.cnlive.moudle.pedometer.sql.dao.CollUserStepEntityDao; | ||
| 47 | import com.cnlive.moudle.pedometer.sql.db.DbCore; | 43 | import com.cnlive.moudle.pedometer.sql.db.DbCore; |
| 48 | import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity; | 44 | import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity; |
| 49 | import com.cnlive.moudle.pedometer.ui.activity.PedometerMainActivity; | 45 | import com.cnlive.moudle.pedometer.ui.activity.PedometerMainActivity; |
| 46 | +import com.cnlive.moudle.collectionTrace.utils.CollStepUtil; | ||
| 50 | import com.cnlive.moudle.pedometer.utils.ServiceUtils; | 47 | import com.cnlive.moudle.pedometer.utils.ServiceUtils; |
| 51 | -import com.cnlive.moudle.pedometer.utils.TimeUtil; | ||
| 52 | import com.example.moudle_pedometer.R; | 48 | import com.example.moudle_pedometer.R; |
| 53 | 49 | ||
| 54 | import org.greenrobot.eventbus.EventBus; | 50 | import org.greenrobot.eventbus.EventBus; |
| @@ -57,14 +53,10 @@ import org.greenrobot.eventbus.ThreadMode; | @@ -57,14 +53,10 @@ import org.greenrobot.eventbus.ThreadMode; | ||
| 57 | 53 | ||
| 58 | import java.text.SimpleDateFormat; | 54 | import java.text.SimpleDateFormat; |
| 59 | import java.util.Date; | 55 | import java.util.Date; |
| 60 | -import java.util.List; | ||
| 61 | -import java.util.UUID; | ||
| 62 | - | ||
| 63 | 56 | ||
| 64 | public class CollStepService extends Service implements SensorEventListener { | 57 | public class CollStepService extends Service implements SensorEventListener { |
| 65 | 58 | ||
| 66 | - private String TAG = "CollStepService"; | ||
| 67 | - | 59 | + private String TAG = "StepService"; |
| 68 | /** | 60 | /** |
| 69 | * 通知栏相关 | 61 | * 通知栏相关 |
| 70 | */ | 62 | */ |
| @@ -92,11 +84,11 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -92,11 +84,11 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 92 | /** | 84 | /** |
| 93 | * 保存记步计时器 | 85 | * 保存记步计时器 |
| 94 | */ | 86 | */ |
| 95 | - private TimeCount time; | 87 | + private static TimeCount time; |
| 96 | /** | 88 | /** |
| 97 | * 当前所走的步数 | 89 | * 当前所走的步数 |
| 98 | */ | 90 | */ |
| 99 | - private int CURRENT_STEP; | 91 | + private int CURRENT_STEP = 0; |
| 100 | /** | 92 | /** |
| 101 | * 计步传感器类型 Sensor.TYPE_STEP_COUNTER或者Sensor.TYPE_STEP_DETECTOR | 93 | * 计步传感器类型 Sensor.TYPE_STEP_COUNTER或者Sensor.TYPE_STEP_DETECTOR |
| 102 | */ | 94 | */ |
| @@ -120,12 +112,12 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -120,12 +112,12 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 120 | /** | 112 | /** |
| 121 | * IBinder对象,向Activity传递数据的桥梁 | 113 | * IBinder对象,向Activity传递数据的桥梁 |
| 122 | */ | 114 | */ |
| 123 | - private StepBinder stepBinder = new StepBinder(); | 115 | + private CollStepService.StepBinder stepBinder = new CollStepService.StepBinder(); |
| 124 | private String userId; | 116 | private String userId; |
| 125 | private Handler handler; | 117 | private Handler handler; |
| 126 | private Runnable speedRunnable; | 118 | private Runnable speedRunnable; |
| 127 | private final int NOTIFICATION_ID = 100; | 119 | private final int NOTIFICATION_ID = 100; |
| 128 | - private static int tempStep;//计步器临时保存步数 | 120 | + // private static int tempStep;//计步器临时保存步数 |
| 129 | private static boolean pauseFlag;//是否暂停 | 121 | private static boolean pauseFlag;//是否暂停 |
| 130 | private static int speedCurrentStep;//用于检测速度步数 | 122 | private static int speedCurrentStep;//用于检测速度步数 |
| 131 | private boolean updateSpeedStepFlag;//是否是已经更新速度 | 123 | private boolean updateSpeedStepFlag;//是否是已经更新速度 |
| @@ -139,7 +131,6 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -139,7 +131,6 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 139 | * 轨迹监听器(用于接收纠偏后实时位置回调) | 131 | * 轨迹监听器(用于接收纠偏后实时位置回调) |
| 140 | */ | 132 | */ |
| 141 | private OnTrackListener realTimeTraceListener = null; | 133 | private OnTrackListener realTimeTraceListener = null; |
| 142 | -// public static final long serviceId = 213553;//杨帅 | ||
| 143 | 134 | ||
| 144 | // 设备标识 | 135 | // 设备标识 |
| 145 | public static String entityName = ""; | 136 | public static String entityName = ""; |
| @@ -153,8 +144,6 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -153,8 +144,6 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 153 | */ | 144 | */ |
| 154 | public static Trace mTrace = null; | 145 | public static Trace mTrace = null; |
| 155 | 146 | ||
| 156 | - private boolean isFirstSendNotification = true; | ||
| 157 | - | ||
| 158 | public CollStepService() { | 147 | public CollStepService() { |
| 159 | 148 | ||
| 160 | } | 149 | } |
| @@ -165,11 +154,19 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -165,11 +154,19 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 165 | super.onCreate(); | 154 | super.onCreate(); |
| 166 | init(); | 155 | init(); |
| 167 | initBroadcastReceiver(); | 156 | initBroadcastReceiver(); |
| 157 | + if (!ServiceUtils.isServiceRunning(getApplicationContext(), "com.cnlive.moudle.pedometer.service.CollKeepLiveService")) { | ||
| 158 | + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { | ||
| 159 | + startForegroundService(new Intent(getApplicationContext(), CollKeepLiveService.class)); | ||
| 160 | + } else { | ||
| 161 | + startService(new Intent(getApplicationContext(), CollKeepLiveService.class)); | ||
| 162 | + } | ||
| 163 | + } | ||
| 168 | showStartForegroundNotification(); | 164 | showStartForegroundNotification(); |
| 169 | } | 165 | } |
| 170 | 166 | ||
| 171 | - private void initTrace() { | 167 | + private static int retryIndex = 0; |
| 172 | 168 | ||
| 169 | + private void initTrace() { | ||
| 173 | if (mClient == null) { | 170 | if (mClient == null) { |
| 174 | mClient = new LBSTraceClient(getApplicationContext()); | 171 | mClient = new LBSTraceClient(getApplicationContext()); |
| 175 | // 设置定位和打包周期 | 172 | // 设置定位和打包周期 |
| @@ -228,9 +225,33 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -228,9 +225,33 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 228 | if (StatusCodes.SUCCESS == errorNo || StatusCodes.START_TRACE_NETWORK_CONNECT_FAILED <= errorNo) { | 225 | if (StatusCodes.SUCCESS == errorNo || StatusCodes.START_TRACE_NETWORK_CONNECT_FAILED <= errorNo) { |
| 229 | //开始进行采集 | 226 | //开始进行采集 |
| 230 | if (mClient != null) { | 227 | if (mClient != null) { |
| 228 | + retryIndex = 0; | ||
| 231 | mClient.startGather(traceListener); | 229 | mClient.startGather(traceListener); |
| 232 | Toast.makeText(getApplicationContext(), "开启轨迹服务", Toast.LENGTH_LONG).show(); | 230 | Toast.makeText(getApplicationContext(), "开启轨迹服务", Toast.LENGTH_LONG).show(); |
| 231 | + boolean isFirstSendNotification = CollCommonInfo.getIsFirstStepSendTraceTip(getApplicationContext()); | ||
| 232 | + if (isFirstSendNotification) { | ||
| 233 | + CollCommonInfo.setIsFirstStepSendTraceTip(getApplicationContext(), false); | ||
| 234 | + EventBus.getDefault().post(new MessageEvent(Constant.COLL_START_TRACE_GATHER_SUCCESS, "")); | ||
| 235 | + } | ||
| 236 | + | ||
| 237 | + | ||
| 238 | + } | ||
| 239 | + } else { | ||
| 240 | + | ||
| 241 | + if (retryIndex < 4) { | ||
| 242 | + //重新开启服务 | ||
| 243 | + if (mClient != null) { | ||
| 244 | + mClient.startTrace(mTrace, traceListener); | ||
| 245 | + retryIndex++; | ||
| 246 | + } | ||
| 247 | + } else { | ||
| 248 | + boolean isFirstSendNotification = CollCommonInfo.getIsFirstStepSendTraceTip(getApplicationContext()); | ||
| 249 | + if (isFirstSendNotification) { | ||
| 250 | + CollCommonInfo.setIsFirstStepSendTraceTip(getApplicationContext(), false); | ||
| 251 | + EventBus.getDefault().post(new MessageEvent(Constant.COLL_START_TRACE_GATHER_FAIL, "")); | ||
| 252 | + } | ||
| 233 | } | 253 | } |
| 254 | + | ||
| 234 | } | 255 | } |
| 235 | } | 256 | } |
| 236 | 257 | ||
| @@ -269,17 +290,15 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -269,17 +290,15 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 269 | @Override | 290 | @Override |
| 270 | public void onStartGatherCallback(int errorNo, String message) { | 291 | public void onStartGatherCallback(int errorNo, String message) { |
| 271 | if (StatusCodes.SUCCESS == errorNo || StatusCodes.GATHER_STARTED == errorNo) { | 292 | if (StatusCodes.SUCCESS == errorNo || StatusCodes.GATHER_STARTED == errorNo) { |
| 293 | + retryIndex = 0; | ||
| 272 | Toast.makeText(getApplicationContext(), "开始采集", Toast.LENGTH_LONG).show(); | 294 | Toast.makeText(getApplicationContext(), "开始采集", Toast.LENGTH_LONG).show(); |
| 273 | - boolean isFirstSendNotification = CollCommonInfo.getIsFirstStepSendTraceTip(getApplicationContext()); | ||
| 274 | - if (isFirstSendNotification) { | ||
| 275 | - CollCommonInfo.setIsFirstStepSendTraceTip(getApplicationContext(), false); | ||
| 276 | - EventBus.getDefault().post(new MessageEvent(Constant.COLL_START_TRACE_GATHER_SUCCESS, "")); | ||
| 277 | - } | ||
| 278 | } else { | 295 | } else { |
| 279 | - boolean isFirstSendNotification = CollCommonInfo.getIsFirstStepSendTraceTip(getApplicationContext()); | ||
| 280 | - if (isFirstSendNotification) { | ||
| 281 | - CollCommonInfo.setIsFirstStepSendTraceTip(getApplicationContext(), false); | ||
| 282 | - EventBus.getDefault().post(new MessageEvent(Constant.COLL_START_TRACE_GATHER_FAIL, "")); | 296 | + //重新开启采集 |
| 297 | + if (retryIndex < 4) { | ||
| 298 | + if (null != mClient) { | ||
| 299 | + mClient.startGather(traceListener); | ||
| 300 | + } | ||
| 301 | + retryIndex++; | ||
| 283 | } | 302 | } |
| 284 | } | 303 | } |
| 285 | } | 304 | } |
| @@ -320,24 +339,6 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -320,24 +339,6 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 320 | @Override | 339 | @Override |
| 321 | public void onPushCallback(byte messageType, PushMessage pushMessage) { | 340 | public void onPushCallback(byte messageType, PushMessage pushMessage) { |
| 322 | Log.e(TAG, "onPushCallback: "); | 341 | Log.e(TAG, "onPushCallback: "); |
| 323 | - | ||
| 324 | - if (messageType < 0x03 || messageType > 0x04) { | ||
| 325 | - return; | ||
| 326 | - } | ||
| 327 | - FenceAlarmPushInfo alarmPushInfo = pushMessage.getFenceAlarmPushInfo(); | ||
| 328 | - if (null == alarmPushInfo) { | ||
| 329 | - return; | ||
| 330 | - } | ||
| 331 | - //超出范围 | ||
| 332 | - if (alarmPushInfo.getMonitoredAction() == MonitoredAction.exit) { | ||
| 333 | - EventBus.getDefault().post(new MessageEvent(Constant.EXIT_RANGE, "")); | ||
| 334 | - } | ||
| 335 | - //进入范围 | ||
| 336 | - else if (alarmPushInfo.getMonitoredAction() == MonitoredAction.enter) { | ||
| 337 | - EventBus.getDefault().post(new MessageEvent(Constant.ENTER_RANGE, "")); | ||
| 338 | - } | ||
| 339 | - Toast.makeText(getApplicationContext(), "onPushCallback:" + alarmPushInfo.getMonitoredAction(), Toast.LENGTH_SHORT).show(); | ||
| 340 | - | ||
| 341 | } | 342 | } |
| 342 | 343 | ||
| 343 | @Override | 344 | @Override |
| @@ -348,14 +349,11 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -348,14 +349,11 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 348 | //开启轨迹服务 | 349 | //开启轨迹服务 |
| 349 | if (mClient != null) { | 350 | if (mClient != null) { |
| 350 | mClient.startTrace(mTrace, traceListener); | 351 | mClient.startTrace(mTrace, traceListener); |
| 351 | - long stepStartTime = CollCommonInfo.getStepStartTime(getApplicationContext()); | ||
| 352 | - if (stepStartTime == 0) { | ||
| 353 | - CollCommonInfo.setStepStartTime(getApplicationContext(), TimeUtil.getNowTimeStamp()); | ||
| 354 | - } | ||
| 355 | } | 352 | } |
| 356 | 353 | ||
| 357 | } | 354 | } |
| 358 | 355 | ||
| 356 | + | ||
| 359 | private long i = 0; | 357 | private long i = 0; |
| 360 | private long index = 0; | 358 | private long index = 0; |
| 361 | private int mJobId; | 359 | private int mJobId; |
| @@ -366,10 +364,11 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -366,10 +364,11 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 366 | public int onStartCommand(Intent intent, int flags, int startId) { | 364 | public int onStartCommand(Intent intent, int flags, int startId) { |
| 367 | userId = CollCommonInfo.getUserId(getApplicationContext()); | 365 | userId = CollCommonInfo.getUserId(getApplicationContext()); |
| 368 | if (userId != null && !TextUtils.isEmpty(userId)) { | 366 | if (userId != null && !TextUtils.isEmpty(userId)) { |
| 367 | + //初始化数据库 | ||
| 368 | + CollStepUtil.initCollDataBase(getApplicationContext(), userId); | ||
| 369 | if (!EventBus.getDefault().isRegistered(this)) { | 369 | if (!EventBus.getDefault().isRegistered(this)) { |
| 370 | EventBus.getDefault().register(this); | 370 | EventBus.getDefault().register(this); |
| 371 | } | 371 | } |
| 372 | - | ||
| 373 | entityName = userId; | 372 | entityName = userId; |
| 374 | initTodayData(userId); | 373 | initTodayData(userId); |
| 375 | initTrace(); | 374 | initTrace(); |
| @@ -383,8 +382,7 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -383,8 +382,7 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 383 | }).start(); | 382 | }).start(); |
| 384 | startTimeCount(); | 383 | startTimeCount(); |
| 385 | } else { | 384 | } else { |
| 386 | - EventBus.getDefault().post(new MessageEvent(Constant.COLL_START_TRACE_GATHER_FAIL, "")); | ||
| 387 | - | 385 | + EventBus.getDefault().post(new MessageEvent(Constant.START_TRACE_GATHER_FAIL, "")); |
| 388 | } | 386 | } |
| 389 | // if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { | 387 | // if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { |
| 390 | // //开始配置JobInfo | 388 | // //开始配置JobInfo |
| @@ -406,7 +404,7 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -406,7 +404,7 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 406 | } | 404 | } |
| 407 | 405 | ||
| 408 | private void init() { | 406 | private void init() { |
| 409 | - CommonInfo.setIsRunStepService(getApplicationContext(), true); | 407 | + CollCommonInfo.setIsRunStepService(getApplicationContext(), true); |
| 410 | if (null == mNM) { | 408 | if (null == mNM) { |
| 411 | mNM = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); | 409 | mNM = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); |
| 412 | } | 410 | } |
| @@ -417,7 +415,7 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -417,7 +415,7 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 417 | //说明用户没有动 | 415 | //说明用户没有动 |
| 418 | if (!updateSpeedStepFlag) { | 416 | if (!updateSpeedStepFlag) { |
| 419 | //重置速度 | 417 | //重置速度 |
| 420 | - EventBus.getDefault().post(new MessageEvent(Constant.SERVICE_STEP_COUNT_RESET_SPEED, CURRENT_STEP)); | 418 | + EventBus.getDefault().post(new MessageEvent(Constant.COLL_SERVICE_STEP_COUNT_RESET_SPEED, CURRENT_STEP)); |
| 421 | } | 419 | } |
| 422 | } | 420 | } |
| 423 | }; | 421 | }; |
| @@ -431,7 +429,7 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -431,7 +429,7 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 431 | private void showStartForegroundNotification() { | 429 | private void showStartForegroundNotification() { |
| 432 | remoteViews = new RemoteViews(getPackageName(), R.layout.custom_step_notification); | 430 | remoteViews = new RemoteViews(getPackageName(), R.layout.custom_step_notification); |
| 433 | NotificationChannel channel = null; | 431 | NotificationChannel channel = null; |
| 434 | - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { | 432 | + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { |
| 435 | channel = new NotificationChannel(CHANNEL_ONE_ID, CHANNEL_ONE_NAME, | 433 | channel = new NotificationChannel(CHANNEL_ONE_ID, CHANNEL_ONE_NAME, |
| 436 | NotificationManager.IMPORTANCE_HIGH); | 434 | NotificationManager.IMPORTANCE_HIGH); |
| 437 | channel.enableLights(false); | 435 | channel.enableLights(false); |
| @@ -481,20 +479,31 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -481,20 +479,31 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 481 | if (speedRunnable != null) { | 479 | if (speedRunnable != null) { |
| 482 | handler.removeCallbacks(speedRunnable); | 480 | handler.removeCallbacks(speedRunnable); |
| 483 | } | 481 | } |
| 484 | - Log.e("杀死", "MyTestService"); | 482 | +// Log.e("杀死", "MyTestService"); |
| 483 | + lastStep = 0; | ||
| 484 | + hasStepCount = 0; | ||
| 485 | + hasRecord = false; | ||
| 486 | + CURRENT_STEP = 0; | ||
| 487 | + previousStepCount = 0; | ||
| 488 | + if (sensorManager != null) { | ||
| 489 | + sensorManager.unregisterListener(CollStepService.this); | ||
| 490 | + sensorManager = null; | ||
| 491 | + } | ||
| 492 | + stepSensorType = -1; | ||
| 493 | + time = null; | ||
| 485 | } | 494 | } |
| 486 | 495 | ||
| 487 | //接收事件 | 496 | //接收事件 |
| 488 | @Subscribe(threadMode = ThreadMode.BACKGROUND) | 497 | @Subscribe(threadMode = ThreadMode.BACKGROUND) |
| 489 | public void Event(MessageEvent messageEvent) { | 498 | public void Event(MessageEvent messageEvent) { |
| 490 | - //暂停计步 | ||
| 491 | - if (messageEvent.getMessageType() == Constant.SERVICE_STEP_COUNT_PAUSE) { | ||
| 492 | - pauseFlag = true; | ||
| 493 | - } | ||
| 494 | - //继续计步 | ||
| 495 | - else if (messageEvent.getMessageType() == Constant.SERVICE_STEP_COUNT_CONTINUE) { | ||
| 496 | - pauseFlag = false; | ||
| 497 | - } | 499 | +// //暂停计步 |
| 500 | +// if (messageEvent.getMessageType() == Constant.SERVICE_STEP_COUNT_PAUSE) { | ||
| 501 | +// pauseFlag = true; | ||
| 502 | +// } | ||
| 503 | +// //继续计步 | ||
| 504 | +// else if (messageEvent.getMessageType() == Constant.SERVICE_STEP_COUNT_CONTINUE) { | ||
| 505 | +// pauseFlag = false; | ||
| 506 | +// } | ||
| 498 | } | 507 | } |
| 499 | 508 | ||
| 500 | /** | 509 | /** |
| @@ -544,17 +553,15 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -544,17 +553,15 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 544 | return; | 553 | return; |
| 545 | } | 554 | } |
| 546 | //获取当天的数据,用于展示 CURRENT_DATE | 555 | //获取当天的数据,用于展示 CURRENT_DATE |
| 547 | - List<CollUserStepEntity> list = DbCore.getDaoSession().getCollUserStepEntityDao().queryBuilder().where(CollUserStepEntityDao.Properties.UserId.eq(userId), CollUserStepEntityDao.Properties.Date.eq(CURRENT_DATE)).list(); | ||
| 548 | - if (list == null) { | ||
| 549 | - return; | ||
| 550 | - } | ||
| 551 | - if (list.size() == 0 || list.isEmpty()) { | 556 | + CollUserStepEntity userStepEntity = CollStepUtil.getCollUserStepData(getApplicationContext(), CollCommonInfo.getUserId(getApplicationContext())); |
| 557 | + if (userStepEntity == null) { | ||
| 552 | CURRENT_STEP = 0; | 558 | CURRENT_STEP = 0; |
| 553 | - } else if (list.size() == 1) { | ||
| 554 | - CURRENT_STEP = Integer.parseInt(list.get(0).getStepCount()); | ||
| 555 | } else { | 559 | } else { |
| 556 | - Log.e(TAG, "出错了!"); | 560 | + if (userStepEntity.getStepCount() != null) { |
| 561 | + CURRENT_STEP = Integer.parseInt(userStepEntity.getStepCount()); | ||
| 562 | + } | ||
| 557 | } | 563 | } |
| 564 | +// Log.e(TAG, "initTodayData: 初始化当前步数" + CURRENT_STEP); | ||
| 558 | if (mStepCount != null) { | 565 | if (mStepCount != null) { |
| 559 | mStepCount.setSteps(CURRENT_STEP); | 566 | mStepCount.setSteps(CURRENT_STEP); |
| 560 | } | 567 | } |
| @@ -562,7 +569,8 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -562,7 +569,8 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 562 | } | 569 | } |
| 563 | 570 | ||
| 564 | private void updateNotification() { | 571 | private void updateNotification() { |
| 565 | - EventBus.getDefault().post(new MessageEvent(Constant.SERVICE_STEP_COUNT_UPDATE, CURRENT_STEP)); | 572 | +// Log.e(TAG, "updateNotification: 当前步数:" + CURRENT_STEP); |
| 573 | + EventBus.getDefault().post(new MessageEvent(Constant.COLL_SERVICE_STEP_COUNT_UPDATE, CURRENT_STEP)); | ||
| 566 | updateSpeedStepFlag = false; | 574 | updateSpeedStepFlag = false; |
| 567 | // remoteViews = new RemoteViews(getPackageName(), R.layout.custom_step_notification); | 575 | // remoteViews = new RemoteViews(getPackageName(), R.layout.custom_step_notification); |
| 568 | // NotificationChannel channel = null; | 576 | // NotificationChannel channel = null; |
| @@ -857,29 +865,45 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -857,29 +865,45 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 857 | * | 865 | * |
| 858 | * @param event | 866 | * @param event |
| 859 | */ | 867 | */ |
| 868 | + private static int lastStep = 0;//有时候获取的是一样的 | ||
| 869 | + | ||
| 860 | @Override | 870 | @Override |
| 861 | public void onSensorChanged(SensorEvent event) { | 871 | public void onSensorChanged(SensorEvent event) { |
| 862 | //没有暂停 | 872 | //没有暂停 |
| 863 | if (stepSensorType == Sensor.TYPE_STEP_COUNTER) { | 873 | if (stepSensorType == Sensor.TYPE_STEP_COUNTER) { |
| 864 | //获取当前传感器返回的临时步数 | 874 | //获取当前传感器返回的临时步数 |
| 865 | - tempStep = (int) event.values[0]; | 875 | + int tempStep = (int) event.values[0]; |
| 876 | +// Log.e(TAG, "onSensorChanged: 第一次,tempStep:" + tempStep + "lastStep:" + lastStep + ",previousStepCount" + previousStepCount + ",CURRENT_STEP" + CURRENT_STEP); | ||
| 866 | //首次如果没有获取手机系统中已有的步数则获取一次系统中APP还未开始记步的步数 | 877 | //首次如果没有获取手机系统中已有的步数则获取一次系统中APP还未开始记步的步数 |
| 867 | if (!hasRecord) { | 878 | if (!hasRecord) { |
| 868 | hasRecord = true; | 879 | hasRecord = true; |
| 869 | hasStepCount = tempStep; | 880 | hasStepCount = tempStep; |
| 881 | + previousStepCount = 0; | ||
| 870 | } else { | 882 | } else { |
| 871 | - //获取APP打开到现在的总步数=本次系统回调的总步数-APP打开之前已有的步数 | ||
| 872 | - int thisStepCount = tempStep - hasStepCount; | ||
| 873 | - //本次有效步数=(APP打开后所记录的总步数-上一次APP打开后所记录的总步数) | ||
| 874 | - int thisStep = thisStepCount - previousStepCount; | ||
| 875 | - //当用户点击暂停了 | ||
| 876 | - if (pauseFlag) { | ||
| 877 | - thisStep = 0; | 883 | + if (tempStep > lastStep) { |
| 884 | + //获取APP打开到现在的总步数=本次系统回调的总步数-APP打开之前已有的步数 | ||
| 885 | +// Log.e(TAG, "tempStep: " + tempStep + ",hasStepCount:" + hasStepCount); | ||
| 886 | + int thisStepCount = tempStep - hasStepCount; | ||
| 887 | +// Log.e(TAG, "onSensorChanged: thisStepCount" + thisStepCount); | ||
| 888 | + //本次有效步数=(APP打开后所记录的总步数-上一次APP打开后所记录的总步数) | ||
| 889 | + int thisStep = thisStepCount - previousStepCount; | ||
| 890 | + //记录最后一次APP打开到现在的总步数 | ||
| 891 | + previousStepCount = thisStepCount; | ||
| 892 | +// Log.e(TAG, "本次有效步数: thisStep" + thisStep + ",previousStepCount:" + previousStepCount); | ||
| 893 | + //当用户点击暂停了 | ||
| 894 | + if (pauseFlag) { | ||
| 895 | + thisStep = 0; | ||
| 896 | +// Log.e(TAG, "修改: thisStepCount" + thisStep); | ||
| 897 | + } | ||
| 898 | +// Log.e(TAG, "onSensorChanged: CURRENT_STEP" + CURRENT_STEP); | ||
| 899 | + if (CURRENT_STEP < 0) { | ||
| 900 | + CURRENT_STEP = -CURRENT_STEP; | ||
| 901 | + } | ||
| 902 | + //总步数=现有的步数+本次有效步数 | ||
| 903 | + CURRENT_STEP += (thisStep); | ||
| 904 | +// Log.e(TAG, "onSensorChanged: 加了以后" + CURRENT_STEP); | ||
| 905 | + lastStep = tempStep; | ||
| 878 | } | 906 | } |
| 879 | - //总步数=现有的步数+本次有效步数 | ||
| 880 | - CURRENT_STEP += (thisStep); | ||
| 881 | - //记录最后一次APP打开到现在的总步数 | ||
| 882 | - previousStepCount = thisStepCount; | ||
| 883 | } | 907 | } |
| 884 | } else if (stepSensorType == Sensor.TYPE_STEP_DETECTOR) { | 908 | } else if (stepSensorType == Sensor.TYPE_STEP_DETECTOR) { |
| 885 | if (event.values[0] == 1.0) { | 909 | if (event.values[0] == 1.0) { |
| @@ -905,27 +929,21 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -905,27 +929,21 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 905 | * 保存记步数据 | 929 | * 保存记步数据 |
| 906 | */ | 930 | */ |
| 907 | private void save() { | 931 | private void save() { |
| 908 | - boolean isWriteUserStep = CommonInfo.getIsWriteUserStep(getApplicationContext()); | ||
| 909 | - if (!isWriteUserStep) { | ||
| 910 | - return; | ||
| 911 | - } | ||
| 912 | int tempStep = CURRENT_STEP; | 932 | int tempStep = CURRENT_STEP; |
| 913 | - List<CollUserStepEntity> list = DbCore.getDaoSession().getCollUserStepEntityDao().queryBuilder().where(CollUserStepEntityDao.Properties.UserId.eq(userId), CollUserStepEntityDao.Properties.Date.eq(CURRENT_DATE)).list(); | ||
| 914 | - if (list.size() == 0 || list.isEmpty()) { | 933 | + CollUserStepEntity userStepEntity = CollStepUtil.getCollUserStepData(getApplicationContext(), CollCommonInfo.getUserId(getApplicationContext())); |
| 934 | + if (userStepEntity == null) { | ||
| 915 | CollUserStepEntity data = new CollUserStepEntity(); | 935 | CollUserStepEntity data = new CollUserStepEntity(); |
| 916 | - data.setUuid(UUID.randomUUID().toString()); | ||
| 917 | data.setUserId(userId); | 936 | data.setUserId(userId); |
| 918 | data.setDate(CURRENT_DATE); | 937 | data.setDate(CURRENT_DATE); |
| 919 | data.setStepCount(tempStep + ""); | 938 | data.setStepCount(tempStep + ""); |
| 920 | - DbCore.getDaoSession().getCollUserStepEntityDao().insert(data); | ||
| 921 | - } else if (list.size() == 1) { | ||
| 922 | - CollUserStepEntity data = list.get(0); | ||
| 923 | - data.setStepCount(tempStep + ""); | ||
| 924 | - DbCore.getDaoSession().getCollUserStepEntityDao().update(data); | 939 | + CollStepUtil.insertCollStepData(getApplicationContext(), data); |
| 925 | } else { | 940 | } else { |
| 941 | + userStepEntity.setStepCount(tempStep + ""); | ||
| 942 | + CollStepUtil.updateCollStepData(getApplicationContext(), userStepEntity); | ||
| 926 | } | 943 | } |
| 927 | } | 944 | } |
| 928 | 945 | ||
| 946 | + | ||
| 929 | /** | 947 | /** |
| 930 | * 保存记步数据 | 948 | * 保存记步数据 |
| 931 | */ | 949 | */ |
| @@ -937,9 +955,11 @@ public class CollStepService extends Service implements SensorEventListener { | @@ -937,9 +955,11 @@ public class CollStepService extends Service implements SensorEventListener { | ||
| 937 | @Override | 955 | @Override |
| 938 | public void onFinish() { | 956 | public void onFinish() { |
| 939 | // 如果计时器正常结束,则开始计步 | 957 | // 如果计时器正常结束,则开始计步 |
| 940 | - time.cancel(); | ||
| 941 | - save(); | ||
| 942 | - startTimeCount(); | 958 | + if (null != time) { |
| 959 | + time.cancel(); | ||
| 960 | + save(); | ||
| 961 | + startTimeCount(); | ||
| 962 | + } | ||
| 943 | } | 963 | } |
| 944 | 964 | ||
| 945 | @Override | 965 | @Override |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/activity/CollPedometerMainActivity.java
| @@ -18,6 +18,7 @@ import com.alibaba.android.arouter.facade.annotation.Route; | @@ -18,6 +18,7 @@ import com.alibaba.android.arouter.facade.annotation.Route; | ||
| 18 | import com.cnlive.libs.base.ui.QMUIFragmentActivity; | 18 | import com.cnlive.libs.base.ui.QMUIFragmentActivity; |
| 19 | import com.cnlive.libs.base.util.StatusBarUtil2; | 19 | import com.cnlive.libs.base.util.StatusBarUtil2; |
| 20 | import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunMainFragment; | 20 | import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunMainFragment; |
| 21 | +import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo; | ||
| 21 | import com.cnlive.moudle.pedometer.ui.fragment.RunMainFragment; | 22 | import com.cnlive.moudle.pedometer.ui.fragment.RunMainFragment; |
| 22 | import com.cnlive.moudle.pedometer.utils.MyMapUtil; | 23 | import com.cnlive.moudle.pedometer.utils.MyMapUtil; |
| 23 | import com.cnlive.moudle.pedometer.utils.lib_permisshelper.PermissionsListener; | 24 | import com.cnlive.moudle.pedometer.utils.lib_permisshelper.PermissionsListener; |
| @@ -38,6 +39,7 @@ public class CollPedometerMainActivity extends QMUIFragmentActivity { | @@ -38,6 +39,7 @@ public class CollPedometerMainActivity extends QMUIFragmentActivity { | ||
| 38 | private boolean isOpen; | 39 | private boolean isOpen; |
| 39 | private PermissionsUtils mPermissionsUtils = new PermissionsUtils();//权限申请 | 40 | private PermissionsUtils mPermissionsUtils = new PermissionsUtils();//权限申请 |
| 40 | private CollRunMainFragment fragment; | 41 | private CollRunMainFragment fragment; |
| 42 | + private RunRaceDetailInfo runRaceDetailInfo; | ||
| 41 | 43 | ||
| 42 | @Override | 44 | @Override |
| 43 | protected int getContextViewId() { | 45 | protected int getContextViewId() { |
| @@ -49,6 +51,7 @@ public class CollPedometerMainActivity extends QMUIFragmentActivity { | @@ -49,6 +51,7 @@ public class CollPedometerMainActivity extends QMUIFragmentActivity { | ||
| 49 | super.onCreate(savedInstanceState); | 51 | super.onCreate(savedInstanceState); |
| 50 | StatusBarUtil2.setColor(this, getResources().getColor(R.color.run_main_bg), 0); | 52 | StatusBarUtil2.setColor(this, getResources().getColor(R.color.run_main_bg), 0); |
| 51 | // setContentView(R.layout.activity_pedometer_main); | 53 | // setContentView(R.layout.activity_pedometer_main); |
| 54 | + runRaceDetailInfo = (RunRaceDetailInfo) getIntent().getExtras().getSerializable("runRaceDetailInfo"); | ||
| 52 | 55 | ||
| 53 | } | 56 | } |
| 54 | 57 | ||
| @@ -118,8 +121,8 @@ public class CollPedometerMainActivity extends QMUIFragmentActivity { | @@ -118,8 +121,8 @@ public class CollPedometerMainActivity extends QMUIFragmentActivity { | ||
| 118 | getPermissionsWithTip(); | 121 | getPermissionsWithTip(); |
| 119 | } | 122 | } |
| 120 | 123 | ||
| 121 | - private void addFragment() { | ||
| 122 | - fragment = new CollRunMainFragment(); | 124 | + private void addFragment(RunRaceDetailInfo runRaceDetailInfo) { |
| 125 | + fragment = CollRunMainFragment.newInstance(runRaceDetailInfo); | ||
| 123 | getSupportFragmentManager().beginTransaction() | 126 | getSupportFragmentManager().beginTransaction() |
| 124 | .add(getContextViewId(), fragment, fragment.getClass().getSimpleName()) | 127 | .add(getContextViewId(), fragment, fragment.getClass().getSimpleName()) |
| 125 | .addToBackStack(fragment.getClass().getSimpleName()) | 128 | .addToBackStack(fragment.getClass().getSimpleName()) |
| @@ -150,7 +153,9 @@ public class CollPedometerMainActivity extends QMUIFragmentActivity { | @@ -150,7 +153,9 @@ public class CollPedometerMainActivity extends QMUIFragmentActivity { | ||
| 150 | Toast.makeText(getApplicationContext(), getString(R.string.open_gps_tip), Toast.LENGTH_LONG).show(); | 153 | Toast.makeText(getApplicationContext(), getString(R.string.open_gps_tip), Toast.LENGTH_LONG).show(); |
| 151 | } else { | 154 | } else { |
| 152 | if (getCurrentFragment() == null) { | 155 | if (getCurrentFragment() == null) { |
| 153 | - addFragment(); | 156 | + if (null != runRaceDetailInfo) { |
| 157 | + addFragment(runRaceDetailInfo); | ||
| 158 | + } | ||
| 154 | } | 159 | } |
| 155 | } | 160 | } |
| 156 | } | 161 | } |
| @@ -196,8 +201,9 @@ public class CollPedometerMainActivity extends QMUIFragmentActivity { | @@ -196,8 +201,9 @@ public class CollPedometerMainActivity extends QMUIFragmentActivity { | ||
| 196 | return; | 201 | return; |
| 197 | } | 202 | } |
| 198 | 203 | ||
| 199 | - public static void startActivity(Activity activity) { | 204 | + public static void startActivity(Activity activity, RunRaceDetailInfo runRaceDetailInfo) { |
| 200 | Intent intent = new Intent(activity, CollPedometerMainActivity.class); | 205 | Intent intent = new Intent(activity, CollPedometerMainActivity.class); |
| 206 | + intent.putExtra("runRaceDetailInfo", runRaceDetailInfo); | ||
| 201 | activity.startActivity(intent); | 207 | activity.startActivity(intent); |
| 202 | } | 208 | } |
| 203 | 209 |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/activity/CollRunningMapActivity.java
| @@ -9,6 +9,7 @@ import com.cnlive.libs.base.ui.QMUIFragmentActivity; | @@ -9,6 +9,7 @@ import com.cnlive.libs.base.ui.QMUIFragmentActivity; | ||
| 9 | import com.cnlive.libs.base.util.StatusBarUtil2; | 9 | import com.cnlive.libs.base.util.StatusBarUtil2; |
| 10 | import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunningMapFragment; | 10 | import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunningMapFragment; |
| 11 | import com.cnlive.moudle.pedometer.model.RunningMapBean; | 11 | import com.cnlive.moudle.pedometer.model.RunningMapBean; |
| 12 | +import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo; | ||
| 12 | import com.cnlive.moudle.pedometer.ui.fragment.RunningMapFragment; | 13 | import com.cnlive.moudle.pedometer.ui.fragment.RunningMapFragment; |
| 13 | import com.example.moudle_pedometer.R; | 14 | import com.example.moudle_pedometer.R; |
| 14 | 15 | ||
| @@ -20,9 +21,9 @@ public class CollRunningMapActivity extends QMUIFragmentActivity { | @@ -20,9 +21,9 @@ public class CollRunningMapActivity extends QMUIFragmentActivity { | ||
| 20 | super.onCreate(savedInstanceState); | 21 | super.onCreate(savedInstanceState); |
| 21 | 22 | ||
| 22 | StatusBarUtil2.setColor(this, getResources().getColor(R.color.run_main_bg), 0); | 23 | StatusBarUtil2.setColor(this, getResources().getColor(R.color.run_main_bg), 0); |
| 23 | - RunningMapBean chronometerBean = (RunningMapBean) getIntent().getExtras().getSerializable("runningMapBean"); | ||
| 24 | - if (chronometerBean != null) { | ||
| 25 | - addFragment(chronometerBean); | 24 | + RunRaceDetailInfo runRaceDetailInfo = (RunRaceDetailInfo) getIntent().getExtras().getSerializable("runRaceDetailInfo"); |
| 25 | + if (runRaceDetailInfo != null) { | ||
| 26 | + addFragment(runRaceDetailInfo); | ||
| 26 | } | 27 | } |
| 27 | } | 28 | } |
| 28 | 29 | ||
| @@ -32,17 +33,17 @@ public class CollRunningMapActivity extends QMUIFragmentActivity { | @@ -32,17 +33,17 @@ public class CollRunningMapActivity extends QMUIFragmentActivity { | ||
| 32 | return R.id.fragment_running_map; | 33 | return R.id.fragment_running_map; |
| 33 | } | 34 | } |
| 34 | 35 | ||
| 35 | - private void addFragment(RunningMapBean chronometerBean) { | ||
| 36 | - QMUIFragment fragment = CollRunningMapFragment.getInstance(chronometerBean); | 36 | + private void addFragment(RunRaceDetailInfo runRaceDetailInfo) { |
| 37 | + QMUIFragment fragment = CollRunningMapFragment.getInstance(runRaceDetailInfo); | ||
| 37 | getSupportFragmentManager().beginTransaction() | 38 | getSupportFragmentManager().beginTransaction() |
| 38 | .add(getContextViewId(), fragment, fragment.getClass().getSimpleName()) | 39 | .add(getContextViewId(), fragment, fragment.getClass().getSimpleName()) |
| 39 | .addToBackStack(fragment.getClass().getSimpleName()) | 40 | .addToBackStack(fragment.getClass().getSimpleName()) |
| 40 | .commit(); | 41 | .commit(); |
| 41 | } | 42 | } |
| 42 | 43 | ||
| 43 | - public static void startActivity(Activity activity, RunningMapBean runningMapBean) { | 44 | + public static void startActivity(Activity activity, RunRaceDetailInfo runRaceDetailInfo) { |
| 44 | Intent intent = new Intent(activity, CollRunningMapActivity.class); | 45 | Intent intent = new Intent(activity, CollRunningMapActivity.class); |
| 45 | - intent.putExtra("runningMapBean", runningMapBean); | 46 | + intent.putExtra("runRaceDetailInfo", runRaceDetailInfo); |
| 46 | activity.startActivity(intent); | 47 | activity.startActivity(intent); |
| 47 | } | 48 | } |
| 48 | } | 49 | } |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/activity/StartCollectTraceActivity.java
| @@ -10,14 +10,15 @@ import com.cnlive.libs.base.ui.QMUIFragmentActivity; | @@ -10,14 +10,15 @@ import com.cnlive.libs.base.ui.QMUIFragmentActivity; | ||
| 10 | import com.cnlive.libs.base.util.StatusBarUtil; | 10 | import com.cnlive.libs.base.util.StatusBarUtil; |
| 11 | import com.cnlive.libs.base.util.StatusBarUtil2; | 11 | import com.cnlive.libs.base.util.StatusBarUtil2; |
| 12 | import com.cnlive.moudle.collectionTrace.ui.fragment.StartTraceFragment; | 12 | import com.cnlive.moudle.collectionTrace.ui.fragment.StartTraceFragment; |
| 13 | +import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo; | ||
| 13 | import com.example.moudle_pedometer.R; | 14 | import com.example.moudle_pedometer.R; |
| 14 | 15 | ||
| 15 | public class StartCollectTraceActivity extends QMUIFragmentActivity { | 16 | public class StartCollectTraceActivity extends QMUIFragmentActivity { |
| 16 | 17 | ||
| 17 | 18 | ||
| 18 | - public static void newInstance(Context context,String eventId){ | ||
| 19 | - Intent intent = new Intent(context,StartCollectTraceActivity.class); | ||
| 20 | - intent.putExtra("eventId",eventId); | 19 | + public static void newInstance(Context context, String eventId) { |
| 20 | + Intent intent = new Intent(context, StartCollectTraceActivity.class); | ||
| 21 | + intent.putExtra("eventId", eventId); | ||
| 21 | context.startActivity(intent); | 22 | context.startActivity(intent); |
| 22 | } | 23 | } |
| 23 | 24 | ||
| @@ -31,7 +32,11 @@ public class StartCollectTraceActivity extends QMUIFragmentActivity { | @@ -31,7 +32,11 @@ public class StartCollectTraceActivity extends QMUIFragmentActivity { | ||
| 31 | super.onCreate(savedInstanceState); | 32 | super.onCreate(savedInstanceState); |
| 32 | StatusBarUtil.setStatusBarWrite(this); | 33 | StatusBarUtil.setStatusBarWrite(this); |
| 33 | StatusBarUtil2.setColor(this, getResources().getColor(R.color.white), 0); | 34 | StatusBarUtil2.setColor(this, getResources().getColor(R.color.white), 0); |
| 34 | - addFragment(new StartTraceFragment()); | 35 | + RunRaceDetailInfo runRaceDetailInfo = (RunRaceDetailInfo) getIntent().getExtras().getSerializable("runRaceDetailInfo"); |
| 36 | + if (null != runRaceDetailInfo) { | ||
| 37 | + addFragment(StartTraceFragment.newInstance(runRaceDetailInfo)); | ||
| 38 | + } | ||
| 39 | + | ||
| 35 | } | 40 | } |
| 36 | 41 | ||
| 37 | private void addFragment(QMUIFragment fragment) { | 42 | private void addFragment(QMUIFragment fragment) { |
| @@ -41,8 +46,9 @@ public class StartCollectTraceActivity extends QMUIFragmentActivity { | @@ -41,8 +46,9 @@ public class StartCollectTraceActivity extends QMUIFragmentActivity { | ||
| 41 | .commit(); | 46 | .commit(); |
| 42 | } | 47 | } |
| 43 | 48 | ||
| 44 | - public static void startActivity(Activity activity) { | 49 | + public static void startActivity(Activity activity, RunRaceDetailInfo runRaceDetailInfo) { |
| 45 | Intent intent = new Intent(activity, StartCollectTraceActivity.class); | 50 | Intent intent = new Intent(activity, StartCollectTraceActivity.class); |
| 51 | + intent.putExtra("runRaceDetailInfo", runRaceDetailInfo); | ||
| 46 | activity.startActivity(intent); | 52 | activity.startActivity(intent); |
| 47 | } | 53 | } |
| 48 | } | 54 | } |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/fragment/CollRunMainFragment.java
| @@ -14,19 +14,36 @@ import com.cnlive.libs.base.ui.QMUIFragment; | @@ -14,19 +14,36 @@ import com.cnlive.libs.base.ui.QMUIFragment; | ||
| 14 | import com.cnlive.libs.base.util.StatusBarUtil2; | 14 | import com.cnlive.libs.base.util.StatusBarUtil2; |
| 15 | import com.cnlive.moudle.collectionTrace.frame.presenter.CollRunMainFragmentPresenter; | 15 | import com.cnlive.moudle.collectionTrace.frame.presenter.CollRunMainFragmentPresenter; |
| 16 | import com.cnlive.moudle.collectionTrace.frame.view.CollRunMainFragmentView; | 16 | import com.cnlive.moudle.collectionTrace.frame.view.CollRunMainFragmentView; |
| 17 | +import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; | ||
| 17 | import com.cnlive.moudle.pedometer.model.Constant; | 18 | import com.cnlive.moudle.pedometer.model.Constant; |
| 18 | import com.cnlive.moudle.pedometer.model.MessageEvent; | 19 | import com.cnlive.moudle.pedometer.model.MessageEvent; |
| 20 | +import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo; | ||
| 21 | +import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity; | ||
| 22 | +import com.cnlive.moudle.pedometer.ui.fragment.RunMainFragment; | ||
| 23 | +import com.cnlive.moudle.pedometer.utils.GsonUtil; | ||
| 24 | +import com.cnlive.moudle.pedometer.utils.StepUtil; | ||
| 19 | import com.cnlive.moudle.pedometer.utils.TimeUtil; | 25 | import com.cnlive.moudle.pedometer.utils.TimeUtil; |
| 20 | import com.example.moudle_pedometer.R; | 26 | import com.example.moudle_pedometer.R; |
| 27 | +import com.example.moudle_pedometer.databinding.FragmentCollRunMainBinding; | ||
| 21 | import com.example.moudle_pedometer.databinding.FragmentRunMainBinding; | 28 | import com.example.moudle_pedometer.databinding.FragmentRunMainBinding; |
| 22 | 29 | ||
| 23 | import org.greenrobot.eventbus.EventBus; | 30 | import org.greenrobot.eventbus.EventBus; |
| 24 | import org.greenrobot.eventbus.Subscribe; | 31 | import org.greenrobot.eventbus.Subscribe; |
| 25 | import org.greenrobot.eventbus.ThreadMode; | 32 | import org.greenrobot.eventbus.ThreadMode; |
| 26 | 33 | ||
| 27 | -public class CollRunMainFragment extends QMUIFragment<CollRunMainFragmentView, CollRunMainFragmentPresenter, FragmentRunMainBinding> { | 34 | +import java.io.Serializable; |
| 35 | + | ||
| 36 | +public class CollRunMainFragment extends QMUIFragment<CollRunMainFragmentView, CollRunMainFragmentPresenter, FragmentCollRunMainBinding> { | ||
| 28 | private final String TAG = "CollRunMainFragment"; | 37 | private final String TAG = "CollRunMainFragment"; |
| 29 | - private String userId = "yangshuai"; | 38 | + private RunRaceDetailInfo runRaceDetailInfo; |
| 39 | + | ||
| 40 | + public static CollRunMainFragment newInstance(RunRaceDetailInfo runRaceDetailInfo) { | ||
| 41 | + Bundle bundle = new Bundle(); | ||
| 42 | + bundle.putSerializable("runRaceDetailInfo", (Serializable) runRaceDetailInfo); | ||
| 43 | + CollRunMainFragment fragment = new CollRunMainFragment(); | ||
| 44 | + fragment.setArguments(bundle); | ||
| 45 | + return fragment; | ||
| 46 | + } | ||
| 30 | 47 | ||
| 31 | @NonNull | 48 | @NonNull |
| 32 | @Override | 49 | @Override |
| @@ -39,16 +56,17 @@ public class CollRunMainFragment extends QMUIFragment<CollRunMainFragmentView, C | @@ -39,16 +56,17 @@ public class CollRunMainFragment extends QMUIFragment<CollRunMainFragmentView, C | ||
| 39 | super.onViewCreated(view, savedInstanceState); | 56 | super.onViewCreated(view, savedInstanceState); |
| 40 | StatusBarUtil2.setColor(getActivity(), getResources().getColor(R.color.run_main_bg), 0); | 57 | StatusBarUtil2.setColor(getActivity(), getResources().getColor(R.color.run_main_bg), 0); |
| 41 | EventBus.getDefault().register(this); | 58 | EventBus.getDefault().register(this); |
| 42 | - if (getMvpView() != null) { | ||
| 43 | - new Handler().postDelayed(new Runnable() { | ||
| 44 | - @Override | ||
| 45 | - public void run() { | 59 | + if (getArguments() != null) { |
| 60 | + runRaceDetailInfo = (RunRaceDetailInfo) getArguments().getSerializable("runRaceDetailInfo"); | ||
| 61 | + if (runRaceDetailInfo != null) { | ||
| 62 | + if (getMvpView() != null) { | ||
| 63 | + getMvpView().initView(runRaceDetailInfo); | ||
| 46 | 64 | ||
| 47 | - getMvpView().initView(); | ||
| 48 | } | 65 | } |
| 49 | - }, 5); | 66 | + } |
| 50 | } | 67 | } |
| 51 | 68 | ||
| 69 | + | ||
| 52 | // | 70 | // |
| 53 | 71 | ||
| 54 | 72 | ||
| @@ -63,12 +81,6 @@ public class CollRunMainFragment extends QMUIFragment<CollRunMainFragmentView, C | @@ -63,12 +81,6 @@ public class CollRunMainFragment extends QMUIFragment<CollRunMainFragmentView, C | ||
| 63 | @Override | 81 | @Override |
| 64 | public void onPause() { | 82 | public void onPause() { |
| 65 | super.onPause(); | 83 | super.onPause(); |
| 66 | - //记录当前计时器相关数据 | ||
| 67 | - if (getMvpView() != null) { | ||
| 68 | - if (!TextUtils.isEmpty(userId)) { | ||
| 69 | - getMvpView().setSQLPauseTime(userId); | ||
| 70 | - } | ||
| 71 | - } | ||
| 72 | } | 84 | } |
| 73 | 85 | ||
| 74 | @Override | 86 | @Override |
| @@ -95,19 +107,19 @@ public class CollRunMainFragment extends QMUIFragment<CollRunMainFragmentView, C | @@ -95,19 +107,19 @@ public class CollRunMainFragment extends QMUIFragment<CollRunMainFragmentView, C | ||
| 95 | 107 | ||
| 96 | @Override | 108 | @Override |
| 97 | protected int getLayoutId() { | 109 | protected int getLayoutId() { |
| 98 | - return R.layout.fragment_run_main; | 110 | + return R.layout.fragment_coll_run_main; |
| 99 | } | 111 | } |
| 100 | 112 | ||
| 101 | @Subscribe(threadMode = ThreadMode.MAIN) | 113 | @Subscribe(threadMode = ThreadMode.MAIN) |
| 102 | public void Event(MessageEvent messageEvent) { | 114 | public void Event(MessageEvent messageEvent) { |
| 103 | //更新步数 | 115 | //更新步数 |
| 104 | - if (messageEvent.getMessageType() == Constant.SERVICE_STEP_COUNT_UPDATE) { | 116 | + if (messageEvent.getMessageType() == Constant.COLL_SERVICE_STEP_COUNT_UPDATE) { |
| 105 | if (getMvpView() != null) { | 117 | if (getMvpView() != null) { |
| 106 | getMvpView().updateRunDistance((Integer) messageEvent.getMessageContent()); | 118 | getMvpView().updateRunDistance((Integer) messageEvent.getMessageContent()); |
| 107 | } | 119 | } |
| 108 | } | 120 | } |
| 109 | //重置速度 | 121 | //重置速度 |
| 110 | - else if (messageEvent.getMessageType() == Constant.SERVICE_STEP_COUNT_RESET_SPEED) { | 122 | + else if (messageEvent.getMessageType() == Constant.COLL_SERVICE_STEP_COUNT_RESET_SPEED) { |
| 111 | if (getMvpView() != null) { | 123 | if (getMvpView() != null) { |
| 112 | getMvpView().resetSpeed(); | 124 | getMvpView().resetSpeed(); |
| 113 | } | 125 | } |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/fragment/CollRunningMapFragment.java
| @@ -6,25 +6,17 @@ import android.hardware.SensorManager; | @@ -6,25 +6,17 @@ import android.hardware.SensorManager; | ||
| 6 | import android.os.Bundle; | 6 | import android.os.Bundle; |
| 7 | import android.os.Vibrator; | 7 | import android.os.Vibrator; |
| 8 | import android.support.annotation.Nullable; | 8 | import android.support.annotation.Nullable; |
| 9 | -import android.text.TextUtils; | ||
| 10 | -import android.util.Log; | ||
| 11 | import android.view.View; | 9 | import android.view.View; |
| 12 | 10 | ||
| 13 | -import com.baidu.mapapi.model.LatLng; | ||
| 14 | import com.cnlive.libs.base.ui.QMUIFragment; | 11 | import com.cnlive.libs.base.ui.QMUIFragment; |
| 15 | import com.cnlive.libs.base.util.StatusBarUtil2; | 12 | import com.cnlive.libs.base.util.StatusBarUtil2; |
| 16 | import com.cnlive.moudle.collectionTrace.frame.presenter.CollRunningMapFragmentPresenter; | 13 | import com.cnlive.moudle.collectionTrace.frame.presenter.CollRunningMapFragmentPresenter; |
| 17 | import com.cnlive.moudle.collectionTrace.frame.view.CollRunningMapFragmentView; | 14 | import com.cnlive.moudle.collectionTrace.frame.view.CollRunningMapFragmentView; |
| 18 | -import com.cnlive.moudle.pedometer.commonInfo.CollCommonInfo; | ||
| 19 | -import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; | ||
| 20 | import com.cnlive.moudle.pedometer.model.Constant; | 15 | import com.cnlive.moudle.pedometer.model.Constant; |
| 21 | import com.cnlive.moudle.pedometer.model.MessageEvent; | 16 | import com.cnlive.moudle.pedometer.model.MessageEvent; |
| 22 | -import com.cnlive.moudle.pedometer.model.RunningMapBean; | ||
| 23 | -import com.cnlive.moudle.pedometer.service.StepService; | 17 | +import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo; |
| 24 | import com.cnlive.moudle.pedometer.ui.widget.TipDialog; | 18 | import com.cnlive.moudle.pedometer.ui.widget.TipDialog; |
| 25 | import com.cnlive.moudle.pedometer.utils.ChineseToSpeechUtil; | 19 | import com.cnlive.moudle.pedometer.utils.ChineseToSpeechUtil; |
| 26 | -import com.cnlive.moudle.pedometer.utils.GsonUtil; | ||
| 27 | -import com.cnlive.moudle.pedometer.utils.TimeUtil; | ||
| 28 | import com.example.moudle_pedometer.R; | 20 | import com.example.moudle_pedometer.R; |
| 29 | import com.example.moudle_pedometer.databinding.FragmentCollectRunningMapBinding; | 21 | import com.example.moudle_pedometer.databinding.FragmentCollectRunningMapBinding; |
| 30 | 22 | ||
| @@ -32,9 +24,6 @@ import org.greenrobot.eventbus.EventBus; | @@ -32,9 +24,6 @@ import org.greenrobot.eventbus.EventBus; | ||
| 32 | import org.greenrobot.eventbus.Subscribe; | 24 | import org.greenrobot.eventbus.Subscribe; |
| 33 | import org.greenrobot.eventbus.ThreadMode; | 25 | import org.greenrobot.eventbus.ThreadMode; |
| 34 | 26 | ||
| 35 | -import java.util.ArrayList; | ||
| 36 | -import java.util.List; | ||
| 37 | - | ||
| 38 | import static android.content.Context.SENSOR_SERVICE; | 27 | import static android.content.Context.SENSOR_SERVICE; |
| 39 | 28 | ||
| 40 | /** | 29 | /** |
| @@ -44,7 +33,6 @@ import static android.content.Context.SENSOR_SERVICE; | @@ -44,7 +33,6 @@ import static android.content.Context.SENSOR_SERVICE; | ||
| 44 | */ | 33 | */ |
| 45 | public class CollRunningMapFragment extends QMUIFragment<CollRunningMapFragmentView, CollRunningMapFragmentPresenter, FragmentCollectRunningMapBinding> { | 34 | public class CollRunningMapFragment extends QMUIFragment<CollRunningMapFragmentView, CollRunningMapFragmentPresenter, FragmentCollectRunningMapBinding> { |
| 46 | private static final String TAG = "CollRunningMapFragment"; | 35 | private static final String TAG = "CollRunningMapFragment"; |
| 47 | - private RunningMapBean runningMapBean; | ||
| 48 | private SensorManager mSensorManager; | 36 | private SensorManager mSensorManager; |
| 49 | private String test = "[{\"latitude\":39.933889208848,\"latitudeE6\":3.9933889208848E7,\"longitude\":116.30900265517,\"longitudeE6\":1.1630900265517001E8},{\"latitude\":39.933868507347,\"latitudeE6\":3.9933868507347E7,\"longitude\":116.30865416508,\"longitudeE6\":1.1630865416508E8},{\"latitude\":39.934756505077,\"latitudeE6\":3.9934756505077E7,\"longitude\":116.30860516469,\"longitudeE6\":1.1630860516468999E8},{\"latitude\":39.934781620502,\"latitudeE6\":3.9934781620502E7,\"longitude\":116.30961013007,\"longitudeE6\":1.1630961013007E8},{\"latitude\":39.934881620374,\"latitudeE6\":3.9934881620374E7,\"longitude\":116.30960513008,\"longitudeE6\":1.1630960513008E8},{\"latitude\":39.934077623132,\"latitudeE6\":3.9934077623132E7,\"longitude\":116.30965812942,\"longitudeE6\":1.1630965812942E8},{\"latitude\":39.933972618463,\"latitudeE6\":3.9933972618463E7,\"longitude\":116.30962113087,\"longitudeE6\":1.1630962113087E8},{\"latitude\":39.933932608856,\"latitudeE6\":3.9933932608856E7,\"longitude\":116.30953913383,\"longitudeE6\":1.1630953913383E8}]"; | 37 | private String test = "[{\"latitude\":39.933889208848,\"latitudeE6\":3.9933889208848E7,\"longitude\":116.30900265517,\"longitudeE6\":1.1630900265517001E8},{\"latitude\":39.933868507347,\"latitudeE6\":3.9933868507347E7,\"longitude\":116.30865416508,\"longitudeE6\":1.1630865416508E8},{\"latitude\":39.934756505077,\"latitudeE6\":3.9934756505077E7,\"longitude\":116.30860516469,\"longitudeE6\":1.1630860516468999E8},{\"latitude\":39.934781620502,\"latitudeE6\":3.9934781620502E7,\"longitude\":116.30961013007,\"longitudeE6\":1.1630961013007E8},{\"latitude\":39.934881620374,\"latitudeE6\":3.9934881620374E7,\"longitude\":116.30960513008,\"longitudeE6\":1.1630960513008E8},{\"latitude\":39.934077623132,\"latitudeE6\":3.9934077623132E7,\"longitude\":116.30965812942,\"longitudeE6\":1.1630965812942E8},{\"latitude\":39.933972618463,\"latitudeE6\":3.9933972618463E7,\"longitude\":116.30962113087,\"longitudeE6\":1.1630962113087E8},{\"latitude\":39.933932608856,\"latitudeE6\":3.9933932608856E7,\"longitude\":116.30953913383,\"longitudeE6\":1.1630953913383E8}]"; |
| 50 | //创建震动服务对象 | 38 | //创建震动服务对象 |
| @@ -66,16 +54,26 @@ public class CollRunningMapFragment extends QMUIFragment<CollRunningMapFragmentV | @@ -66,16 +54,26 @@ public class CollRunningMapFragment extends QMUIFragment<CollRunningMapFragmentV | ||
| 66 | return R.layout.fragment_collect_running_map; | 54 | return R.layout.fragment_collect_running_map; |
| 67 | } | 55 | } |
| 68 | 56 | ||
| 69 | - public static CollRunningMapFragment getInstance(RunningMapBean runningMapBean) { | 57 | + // public static CollRunningMapFragment getInstance(RunningMapBean runningMapBean) { |
| 58 | +// CollRunningMapFragment fragment = new CollRunningMapFragment(); | ||
| 59 | +// Bundle bundle = new Bundle(); | ||
| 60 | +// if (runningMapBean != null) { | ||
| 61 | +// bundle.putSerializable("runningMapBean", runningMapBean); | ||
| 62 | +// } | ||
| 63 | +// fragment.setArguments(bundle); | ||
| 64 | +// return fragment; | ||
| 65 | +// } | ||
| 66 | + public static CollRunningMapFragment getInstance(RunRaceDetailInfo runRaceDetailInfo) { | ||
| 70 | CollRunningMapFragment fragment = new CollRunningMapFragment(); | 67 | CollRunningMapFragment fragment = new CollRunningMapFragment(); |
| 71 | Bundle bundle = new Bundle(); | 68 | Bundle bundle = new Bundle(); |
| 72 | - if (runningMapBean != null) { | ||
| 73 | - bundle.putSerializable("runningMapBean", runningMapBean); | 69 | + if (runRaceDetailInfo != null) { |
| 70 | + bundle.putSerializable("runRaceDetailInfo", runRaceDetailInfo); | ||
| 74 | } | 71 | } |
| 75 | fragment.setArguments(bundle); | 72 | fragment.setArguments(bundle); |
| 76 | return fragment; | 73 | return fragment; |
| 77 | } | 74 | } |
| 78 | 75 | ||
| 76 | + | ||
| 79 | @Override | 77 | @Override |
| 80 | public void onActivityCreated(@Nullable Bundle savedInstanceState) { | 78 | public void onActivityCreated(@Nullable Bundle savedInstanceState) { |
| 81 | super.onActivityCreated(savedInstanceState); | 79 | super.onActivityCreated(savedInstanceState); |
| @@ -92,41 +90,35 @@ public class CollRunningMapFragment extends QMUIFragment<CollRunningMapFragmentV | @@ -92,41 +90,35 @@ public class CollRunningMapFragment extends QMUIFragment<CollRunningMapFragmentV | ||
| 92 | mVibrator = (Vibrator) getActivity().getSystemService(Service.VIBRATOR_SERVICE); | 90 | mVibrator = (Vibrator) getActivity().getSystemService(Service.VIBRATOR_SERVICE); |
| 93 | //初始化提示框 | 91 | //初始化提示框 |
| 94 | initTipDialog(); | 92 | initTipDialog(); |
| 95 | - List<LatLng> trackPoints = GsonUtil.jsonToList(test, LatLng.class); | ||
| 96 | - | ||
| 97 | if (getArguments() != null) { | 93 | if (getArguments() != null) { |
| 98 | - runningMapBean = (RunningMapBean) getArguments().getSerializable("runningMapBean"); | ||
| 99 | - } | ||
| 100 | - if (getMvpView() != null) { | ||
| 101 | - getMvpView().initView(trackPoints); | ||
| 102 | - if (runningMapBean != null) { | ||
| 103 | - getMvpView().updateChronometer(runningMapBean); | 94 | + RunRaceDetailInfo runRaceDetailInfo = (RunRaceDetailInfo) getArguments().getSerializable("runRaceDetailInfo"); |
| 95 | + if (null!=runRaceDetailInfo){ | ||
| 96 | + if (getMvpView() != null) { | ||
| 97 | + getMvpView().initMap(); | ||
| 98 | + getMvpView().initView(runRaceDetailInfo); | ||
| 99 | + } | ||
| 104 | } | 100 | } |
| 105 | } | 101 | } |
| 106 | - //开始进行历史轨迹查询 | ||
| 107 | - if (getPresenter() != null && !TextUtils.isEmpty(StepService.entityName)) { | ||
| 108 | - long stepStartTime = CollCommonInfo.getStepStartTime(getActivity()); | ||
| 109 | - Log.e(TAG, "onViewCreated: 时间"+stepStartTime ); | ||
| 110 | - long startTime = 0; | ||
| 111 | - if (stepStartTime != 0) { | ||
| 112 | - startTime = stepStartTime; | ||
| 113 | - } else { | ||
| 114 | - startTime = (int) (System.currentTimeMillis() / 1000 -12 * 60 * 60); | ||
| 115 | - } | ||
| 116 | - long current = TimeUtil.getNowTimeStamp(); | ||
| 117 | -// long startTime = current - hour * 3600 * 1000 - minute * 60 * 1000 - second * 1000; | ||
| 118 | - long endTime = current; | ||
| 119 | -// Log.e(TAG, "onViewCreated: " + "hour:" + hour + ",minute" + minute + ",second:" + second); | ||
| 120 | - getPresenter().queryHistoryTrace(getActivity(), StepService.entityName, startTime, endTime); | ||
| 121 | 102 | ||
| 122 | - } | 103 | + //开始进行历史轨迹查询 |
| 104 | +// if (getPresenter() != null && !TextUtils.isEmpty(StepService.entityName)) { | ||
| 105 | +// long stepStartTime = CollCommonInfo.getStepStartTime(getActivity()); | ||
| 106 | +// Log.e(TAG, "onViewCreated: 时间" + stepStartTime); | ||
| 107 | +// long startTime = 0; | ||
| 108 | +// if (stepStartTime != 0) { | ||
| 109 | +// startTime = stepStartTime; | ||
| 110 | +// } else { | ||
| 111 | +// startTime = (int) (System.currentTimeMillis() / 1000 - 12 * 60 * 60); | ||
| 112 | +// } | ||
| 113 | +// long current = TimeUtil.getNowTimeStamp(); | ||
| 114 | +//// long startTime = current - hour * 3600 * 1000 - minute * 60 * 1000 - second * 1000; | ||
| 115 | +// long endTime = current; | ||
| 116 | +//// Log.e(TAG, "onViewCreated: " + "hour:" + hour + ",minute" + minute + ",second:" + second); | ||
| 117 | +// getPresenter().queryHistoryTrace(getActivity(), CollStepService.entityName, startTime, endTime); | ||
| 118 | +// | ||
| 119 | +// } | ||
| 123 | 120 | ||
| 124 | 121 | ||
| 125 | - List<com.baidu.trace.model.LatLng> fenceLatLngs = new ArrayList<>(); | ||
| 126 | - for (LatLng latLng : trackPoints) { | ||
| 127 | - com.baidu.trace.model.LatLng tempLatLng = new com.baidu.trace.model.LatLng(latLng.latitude, latLng.longitude); | ||
| 128 | - fenceLatLngs.add(tempLatLng); | ||
| 129 | - } | ||
| 130 | } | 122 | } |
| 131 | 123 | ||
| 132 | @Override | 124 | @Override |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/fragment/StartTraceFragment.java
| @@ -10,9 +10,11 @@ import com.cnlive.libs.base.ui.QMUIFragment; | @@ -10,9 +10,11 @@ import com.cnlive.libs.base.ui.QMUIFragment; | ||
| 10 | import com.cnlive.moudle.collectionTrace.frame.presenter.StartTraceFragmentPresenter; | 10 | import com.cnlive.moudle.collectionTrace.frame.presenter.StartTraceFragmentPresenter; |
| 11 | import com.cnlive.moudle.collectionTrace.frame.view.StartTraceFragmentView; | 11 | import com.cnlive.moudle.collectionTrace.frame.view.StartTraceFragmentView; |
| 12 | import com.cnlive.moudle.collectionTrace.ui.activity.CollPedometerMainActivity; | 12 | import com.cnlive.moudle.collectionTrace.ui.activity.CollPedometerMainActivity; |
| 13 | +import com.cnlive.moudle.collectionTrace.ui.activity.CollRunningMapActivity; | ||
| 13 | import com.cnlive.moudle.collectionTrace.ui.activity.StartCollectTraceActivity; | 14 | import com.cnlive.moudle.collectionTrace.ui.activity.StartCollectTraceActivity; |
| 14 | import com.cnlive.moudle.pedometer.model.Constant; | 15 | import com.cnlive.moudle.pedometer.model.Constant; |
| 15 | import com.cnlive.moudle.pedometer.model.MessageEvent; | 16 | import com.cnlive.moudle.pedometer.model.MessageEvent; |
| 17 | +import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo; | ||
| 16 | import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil; | 18 | import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil; |
| 17 | import com.example.moudle_pedometer.R; | 19 | import com.example.moudle_pedometer.R; |
| 18 | import com.example.moudle_pedometer.databinding.FragmentStartCollectTraceBinding; | 20 | import com.example.moudle_pedometer.databinding.FragmentStartCollectTraceBinding; |
| @@ -27,6 +29,14 @@ public class StartTraceFragment extends QMUIFragment<StartTraceFragmentView, Sta | @@ -27,6 +29,14 @@ public class StartTraceFragment extends QMUIFragment<StartTraceFragmentView, Sta | ||
| 27 | private static final String TAG = "StartTraceFragment"; | 29 | private static final String TAG = "StartTraceFragment"; |
| 28 | private SensorManager mSensorManager; | 30 | private SensorManager mSensorManager; |
| 29 | 31 | ||
| 32 | + public static StartTraceFragment newInstance(RunRaceDetailInfo runRaceDetailInfo) { | ||
| 33 | + StartTraceFragment fragment = new StartTraceFragment(); | ||
| 34 | + Bundle bundle = new Bundle(); | ||
| 35 | + bundle.putSerializable("runRaceDetailInfo", runRaceDetailInfo); | ||
| 36 | + fragment.setArguments(bundle); | ||
| 37 | + return fragment; | ||
| 38 | + } | ||
| 39 | + | ||
| 30 | @Override | 40 | @Override |
| 31 | protected int getToolbarId() { | 41 | protected int getToolbarId() { |
| 32 | return R.id.topbar; | 42 | return R.id.topbar; |
| @@ -47,11 +57,16 @@ public class StartTraceFragment extends QMUIFragment<StartTraceFragmentView, Sta | @@ -47,11 +57,16 @@ public class StartTraceFragment extends QMUIFragment<StartTraceFragmentView, Sta | ||
| 47 | super.onViewCreated(view, savedInstanceState); | 57 | super.onViewCreated(view, savedInstanceState); |
| 48 | EventBus.getDefault().register(this); | 58 | EventBus.getDefault().register(this); |
| 49 | mSensorManager = (SensorManager) getActivity().getSystemService(SENSOR_SERVICE);//获取传感器管理服务 | 59 | mSensorManager = (SensorManager) getActivity().getSystemService(SENSOR_SERVICE);//获取传感器管理服务 |
| 50 | - | ||
| 51 | - if (getMvpView() != null) { | ||
| 52 | - getMvpView().initMap(); | ||
| 53 | - getMvpView().initView(); | 60 | + if (null != getArguments()) { |
| 61 | + RunRaceDetailInfo runRaceDetailInfo = (RunRaceDetailInfo) getArguments().getSerializable("runRaceDetailInfo"); | ||
| 62 | + if (null != runRaceDetailInfo) { | ||
| 63 | + if (getMvpView() != null) { | ||
| 64 | + getMvpView().initMap(); | ||
| 65 | + getMvpView().initView(runRaceDetailInfo); | ||
| 66 | + } | ||
| 67 | + } | ||
| 54 | } | 68 | } |
| 69 | + | ||
| 55 | } | 70 | } |
| 56 | 71 | ||
| 57 | @Override | 72 | @Override |
| @@ -102,7 +117,9 @@ public class StartTraceFragment extends QMUIFragment<StartTraceFragmentView, Sta | @@ -102,7 +117,9 @@ public class StartTraceFragment extends QMUIFragment<StartTraceFragmentView, Sta | ||
| 102 | if (messageEvent.getMessageType() == Constant.COLL_START_TRACE_GATHER_SUCCESS) { | 117 | if (messageEvent.getMessageType() == Constant.COLL_START_TRACE_GATHER_SUCCESS) { |
| 103 | if (getMvpView() != null) { | 118 | if (getMvpView() != null) { |
| 104 | QMUITipDialogUtil.dismessDialog(); | 119 | QMUITipDialogUtil.dismessDialog(); |
| 105 | - CollPedometerMainActivity.startActivity(getActivity()); | 120 | + if (null != getMvpView()) { |
| 121 | + CollRunningMapActivity.startActivity(getActivity(),getMvpView().runRaceDetailInfo); | ||
| 122 | + } | ||
| 106 | } | 123 | } |
| 107 | } | 124 | } |
| 108 | //启动鹰眼失败 | 125 | //启动鹰眼失败 |
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/utils/CollStepUtil.java
0 → 100644
| 1 | +package com.cnlive.moudle.collectionTrace.utils; | ||
| 2 | + | ||
| 3 | +import android.content.Context; | ||
| 4 | +import android.text.TextUtils; | ||
| 5 | +import android.util.Log; | ||
| 6 | + | ||
| 7 | +import com.baidu.mapapi.model.LatLng; | ||
| 8 | +import com.cnlive.moudle.collectionTrace.model.CollectPoint; | ||
| 9 | +import com.cnlive.moudle.pedometer.sql.dao.CollUserStepEntityDao; | ||
| 10 | +import com.cnlive.moudle.pedometer.sql.dao.UserStepEntityDao; | ||
| 11 | +import com.cnlive.moudle.pedometer.sql.db.DbCore; | ||
| 12 | +import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity; | ||
| 13 | +import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity; | ||
| 14 | +import com.cnlive.moudle.pedometer.utils.GsonUtil; | ||
| 15 | + | ||
| 16 | +import java.text.SimpleDateFormat; | ||
| 17 | +import java.util.ArrayList; | ||
| 18 | +import java.util.Date; | ||
| 19 | +import java.util.List; | ||
| 20 | +import java.util.UUID; | ||
| 21 | + | ||
| 22 | +/** | ||
| 23 | + * 步数工具 | ||
| 24 | + * | ||
| 25 | + * @author ShinnyYang | ||
| 26 | + */ | ||
| 27 | +public class CollStepUtil { | ||
| 28 | + private static final String TAG = "CollStepUtil"; | ||
| 29 | + private static final String dbName = "CollStep.db"; | ||
| 30 | + | ||
| 31 | + public static String getUUID() { | ||
| 32 | + return UUID.randomUUID().toString().replace("-", ""); | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | + /** | ||
| 36 | + * 初始化数据库 | ||
| 37 | + * | ||
| 38 | + * @param context | ||
| 39 | + * @param uid | ||
| 40 | + */ | ||
| 41 | + public static void initCollDataBase(Context context, String uid) { | ||
| 42 | + if (null == getCollUserStepData(context, uid)) { | ||
| 43 | + CollUserStepEntity entity = new CollUserStepEntity(); | ||
| 44 | + entity.setUserId(uid); | ||
| 45 | + insertCollStepData(context, entity); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + | ||
| 51 | + /** | ||
| 52 | + * 设置开始起点坐标 | ||
| 53 | + * | ||
| 54 | + * @param context | ||
| 55 | + * @param uid | ||
| 56 | + * @param startPointName | ||
| 57 | + * @param startPointLatLng | ||
| 58 | + */ | ||
| 59 | + public static void setCollStartPointData(Context context, String uid, String startPointName, String startPointLatLng) { | ||
| 60 | + //先获取有没有 | ||
| 61 | + if (getCollUserStepData(context, uid) != null) { | ||
| 62 | + CollUserStepEntity entity = getCollUserStepData(context, uid); | ||
| 63 | + if (null != entity) { | ||
| 64 | + entity.setCollStartLatLngName(startPointName); | ||
| 65 | + entity.setCollStartLatLng(startPointLatLng); | ||
| 66 | + //更新数据 | ||
| 67 | + updateCollStepData(context, entity); | ||
| 68 | + } | ||
| 69 | + } | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | + /** | ||
| 73 | + * 设置打的重要点 | ||
| 74 | + * | ||
| 75 | + * @param context | ||
| 76 | + * @param uid | ||
| 77 | + * @param latLng | ||
| 78 | + */ | ||
| 79 | + public static void setImportPoints(Context context, String uid, LatLng latLng) { | ||
| 80 | + //先获取有没有 | ||
| 81 | + if (getCollUserStepData(context, uid) != null) { | ||
| 82 | + CollUserStepEntity entity = getCollUserStepData(context, uid); | ||
| 83 | + if (null != entity) { | ||
| 84 | + //判断有没有打过点 | ||
| 85 | + if (!TextUtils.isEmpty(entity.getImportPoint())) { | ||
| 86 | + //已经打过点,先把打的点取出来 | ||
| 87 | + List<LatLng> lngs = GsonUtil.jsonToList(entity.getImportPoint(), LatLng.class); | ||
| 88 | + if (null != lngs) { | ||
| 89 | + //加入新打的点 | ||
| 90 | + if (!lngs.contains(latLng)) { | ||
| 91 | + lngs.add(latLng); | ||
| 92 | + //重新设置打的点 | ||
| 93 | + entity.setImportPoint(GsonUtil.GsonString(lngs)); | ||
| 94 | + //更新数据 | ||
| 95 | + updateCollStepData(context, entity); | ||
| 96 | + } | ||
| 97 | + | ||
| 98 | + } | ||
| 99 | + } | ||
| 100 | + //没有打过点 | ||
| 101 | + else { | ||
| 102 | + //则设置一个 | ||
| 103 | + List<LatLng> lngs = new ArrayList<>(); | ||
| 104 | + lngs.add(latLng); | ||
| 105 | + //重新设置打的点 | ||
| 106 | + entity.setImportPoint(GsonUtil.GsonString(lngs)); | ||
| 107 | + //更新数据 | ||
| 108 | + updateCollStepData(context, entity); | ||
| 109 | + } | ||
| 110 | + } | ||
| 111 | + } | ||
| 112 | + } | ||
| 113 | + | ||
| 114 | + /** | ||
| 115 | + * 设置运营赛事标题 | ||
| 116 | + * | ||
| 117 | + * @param context | ||
| 118 | + * @param uid | ||
| 119 | + * @param streetTitle | ||
| 120 | + */ | ||
| 121 | + public static void setCollStreetTitle(Context context, String uid, String streetTitle) { | ||
| 122 | + if (getCollUserStepData(context, uid) != null) { | ||
| 123 | + CollUserStepEntity entity = getCollUserStepData(context, uid); | ||
| 124 | + entity.setStreetTitle(streetTitle); | ||
| 125 | + //更新数据 | ||
| 126 | + updateCollStepData(context, entity); | ||
| 127 | + } | ||
| 128 | + } | ||
| 129 | + | ||
| 130 | + /** | ||
| 131 | + * 更新运营数据 | ||
| 132 | + * | ||
| 133 | + * @param context | ||
| 134 | + * @param userStepEntity | ||
| 135 | + */ | ||
| 136 | + public static void updateCollStepData(Context context, CollUserStepEntity userStepEntity) { | ||
| 137 | + if (userStepEntity != null) { | ||
| 138 | + DbCore.init(context, dbName); | ||
| 139 | + DbCore.getDaoSession().getCollUserStepEntityDao().update(userStepEntity); | ||
| 140 | + } | ||
| 141 | + | ||
| 142 | + } | ||
| 143 | + | ||
| 144 | + /** | ||
| 145 | + * 插入计步数据 | ||
| 146 | + * | ||
| 147 | + * @param context | ||
| 148 | + * @param userStepEntity | ||
| 149 | + */ | ||
| 150 | + public static void insertCollStepData(Context context, CollUserStepEntity userStepEntity) { | ||
| 151 | + DbCore.init(context, dbName); | ||
| 152 | + DbCore.getDaoSession().getCollUserStepEntityDao().insert(userStepEntity); | ||
| 153 | + } | ||
| 154 | + | ||
| 155 | + /** | ||
| 156 | + * 设置计步开始时间 | ||
| 157 | + * | ||
| 158 | + * @param context | ||
| 159 | + * @param uid | ||
| 160 | + * @param time | ||
| 161 | + */ | ||
| 162 | + public static void setCollChronometerBase(Context context, String uid, long time) { | ||
| 163 | + if (getCollUserStepData(context, uid) != null) { | ||
| 164 | + CollUserStepEntity entity = getCollUserStepData(context, uid); | ||
| 165 | + entity.setChronometerBase(time); | ||
| 166 | + //更新数据 | ||
| 167 | + updateCollStepData(context, entity); | ||
| 168 | + } else { | ||
| 169 | + //创建数据 | ||
| 170 | + CollUserStepEntity userStepEntity = new CollUserStepEntity(); | ||
| 171 | + userStepEntity.setUserId(uid); | ||
| 172 | + userStepEntity.setChronometerBase(time); | ||
| 173 | + insertCollStepData(context, userStepEntity); | ||
| 174 | + } | ||
| 175 | + } | ||
| 176 | + | ||
| 177 | + /** | ||
| 178 | + * 初始化运营计步相关数据 | ||
| 179 | + * | ||
| 180 | + * @param context | ||
| 181 | + * @param uid | ||
| 182 | + * @param startStamp | ||
| 183 | + * @param streetId | ||
| 184 | + */ | ||
| 185 | + public static void setCollStepStartData(Context context, String uid, long startStamp, String streetId) { | ||
| 186 | + if (getCollUserStepData(context, uid) != null) { | ||
| 187 | + CollUserStepEntity entity = getCollUserStepData(context, uid); | ||
| 188 | + entity.setStartTimeStamp(startStamp); | ||
| 189 | + entity.setStreetId(streetId); | ||
| 190 | + //更新数据 | ||
| 191 | + updateCollStepData(context, entity); | ||
| 192 | + } else { | ||
| 193 | + //创建数据 | ||
| 194 | + CollUserStepEntity userStepEntity = new CollUserStepEntity(); | ||
| 195 | + userStepEntity.setUserId(uid); | ||
| 196 | + userStepEntity.setStartTimeStamp(startStamp); | ||
| 197 | + userStepEntity.setStreetId(streetId); | ||
| 198 | + insertCollStepData(context, userStepEntity); | ||
| 199 | + } | ||
| 200 | + } | ||
| 201 | + | ||
| 202 | + /** | ||
| 203 | + * 计算配速 | ||
| 204 | + */ | ||
| 205 | + public static String getPaceSpeed(double second, double distance) { | ||
| 206 | + if (distance != 0) { | ||
| 207 | + //计算分 | ||
| 208 | + int minute = (int) (second / distance / 60); | ||
| 209 | + //获取秒 | ||
| 210 | + double miaoMin = ((double) (second / distance / 60)) - ((int) (second / distance / 60)); | ||
| 211 | + int miao = (int) (miaoMin * 60); | ||
| 212 | + return minute + "'" + miao + "''"; | ||
| 213 | + } else { | ||
| 214 | + return "--"; | ||
| 215 | + } | ||
| 216 | + } | ||
| 217 | + | ||
| 218 | + | ||
| 219 | + /** | ||
| 220 | + * 得到当前速度 | ||
| 221 | + * | ||
| 222 | + * @param time | ||
| 223 | + * @param distance | ||
| 224 | + * @return | ||
| 225 | + */ | ||
| 226 | + public static double getCurrentSpeed(double time, double distance) { | ||
| 227 | + double result = distance / time; | ||
| 228 | + result = Double.parseDouble(String.format("%1.2f", result)); | ||
| 229 | + return result; | ||
| 230 | + } | ||
| 231 | + | ||
| 232 | + /** | ||
| 233 | + * 根据行走步数,计算大概行走具体 | ||
| 234 | + * 单位:公里 | ||
| 235 | + * 1步的距离大概是60厘米。 | ||
| 236 | + * 1万多步,距离大概就是600000厘米,即6000米(6公里) | ||
| 237 | + * | ||
| 238 | + * @param step | ||
| 239 | + * @return | ||
| 240 | + */ | ||
| 241 | + public static double getWalkDistanceKM(long step) { | ||
| 242 | + double result = step * 60.0 / 100.0 / 1000.0; | ||
| 243 | + result = Double.parseDouble(String.format("%1.2f", result)); | ||
| 244 | + return result; | ||
| 245 | + } | ||
| 246 | + | ||
| 247 | + /** | ||
| 248 | + * 清除保存数据库中的数据 | ||
| 249 | + * | ||
| 250 | + * @param uid | ||
| 251 | + */ | ||
| 252 | + public static void clearRunData(Context context, String uid) { | ||
| 253 | + DbCore.init(context, dbName); | ||
| 254 | + String CURRENT_DATE = getTodayDate(); | ||
| 255 | + List<CollUserStepEntity> list = DbCore.getDaoSession().getCollUserStepEntityDao().queryBuilder().where(CollUserStepEntityDao.Properties.UserId.eq(uid), CollUserStepEntityDao.Properties.Date.eq(CURRENT_DATE)).list(); | ||
| 256 | + if (list != null && list.size() > 0) { | ||
| 257 | + Log.e(TAG, "clearRunData: " + list.size()); | ||
| 258 | + DbCore.getDaoSession().getCollUserStepEntityDao().deleteByKey(list.get(0).getUserId()); | ||
| 259 | + DbCore.getDaoSession().getCollUserStepEntityDao().detachAll(); | ||
| 260 | + } | ||
| 261 | + } | ||
| 262 | + | ||
| 263 | + /** | ||
| 264 | + * 获取用户数据 | ||
| 265 | + * | ||
| 266 | + * @param context | ||
| 267 | + * @param uid | ||
| 268 | + * @return | ||
| 269 | + */ | ||
| 270 | + public static CollUserStepEntity getCollUserStepData(Context context, String uid) { | ||
| 271 | + if (!TextUtils.isEmpty(uid)) { | ||
| 272 | + DbCore.init(context, dbName); | ||
| 273 | + DbCore.getDaoSession().getCollUserStepEntityDao().detachAll(); | ||
| 274 | + DbCore.getDaoSession().clear(); | ||
| 275 | + List<CollUserStepEntity> list = DbCore.getDaoSession().getCollUserStepEntityDao().queryBuilder().where(CollUserStepEntityDao.Properties.UserId.eq(uid)).list(); | ||
| 276 | + if (list != null && list.size() > 0) { | ||
| 277 | + return list.get(0); | ||
| 278 | + } else { | ||
| 279 | + return null; | ||
| 280 | + } | ||
| 281 | + } else { | ||
| 282 | + return null; | ||
| 283 | + } | ||
| 284 | + } | ||
| 285 | + | ||
| 286 | + /** | ||
| 287 | + * 获取用户数据 | ||
| 288 | + * | ||
| 289 | + * @param context | ||
| 290 | + * @param uid | ||
| 291 | + * @return | ||
| 292 | + */ | ||
| 293 | + public static void setServerTraceData(Context context, String uid, CollUserStepEntity userStepEntity) { | ||
| 294 | + if (getCollUserStepData(context, uid) != null) { | ||
| 295 | + CollUserStepEntity entity = getCollUserStepData(context, uid); | ||
| 296 | + } else { | ||
| 297 | + | ||
| 298 | + } | ||
| 299 | + } | ||
| 300 | + | ||
| 301 | + /** | ||
| 302 | + * 获取当天日期 | ||
| 303 | + * | ||
| 304 | + * @return | ||
| 305 | + */ | ||
| 306 | + private static String getTodayDate() { | ||
| 307 | + Date date = new Date(System.currentTimeMillis()); | ||
| 308 | + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | ||
| 309 | + return sdf.format(date); | ||
| 310 | + } | ||
| 311 | + | ||
| 312 | + | ||
| 313 | +} |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/commonInfo/CommonInfo.java
| @@ -134,7 +134,7 @@ public class CommonInfo { | @@ -134,7 +134,7 @@ public class CommonInfo { | ||
| 134 | * @param context | 134 | * @param context |
| 135 | */ | 135 | */ |
| 136 | public static boolean getIsRunBaiduTraceService(Context context) { | 136 | public static boolean getIsRunBaiduTraceService(Context context) { |
| 137 | - return MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).getBoolean("RunBaiduTraceService", false); | 137 | + return MySpHelper.getInstance(context, Context.MODE_MULTI_PROCESS).getBoolean("RunBaiduTraceService", true); |
| 138 | } | 138 | } |
| 139 | 139 | ||
| 140 | /** | 140 | /** |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/presenter/RunningFinishFragmetPresenter.java
| @@ -211,6 +211,8 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinis | @@ -211,6 +211,8 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinis | ||
| 211 | //判断用户是否点击暂停按钮 | 211 | //判断用户是否点击暂停按钮 |
| 212 | if (userStepEntity.getPauseCount() == 0) { | 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); | 213 | MyMapUtil.drawHistoryTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, R.drawable.icon_start, R.drawable.icon_end); |
| 214 | + MyMapUtil.setMapAutoZoom(getView().baiduMap, resultPoints, -2f); | ||
| 215 | + | ||
| 214 | //没有点击暂停 | 216 | //没有点击暂停 |
| 215 | //先判断是否到达终点 | 217 | //先判断是否到达终点 |
| 216 | checkUserIsFinish(resultPoints, userStepEntity, runningFinishBean, context); | 218 | checkUserIsFinish(resultPoints, userStepEntity, runningFinishBean, context); |
| @@ -231,6 +233,8 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinis | @@ -231,6 +233,8 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinis | ||
| 231 | allResults.addAll(resultPoints); | 233 | allResults.addAll(resultPoints); |
| 232 | //判断用户是否完成 | 234 | //判断用户是否完成 |
| 233 | if (importPoints != null) { | 235 | if (importPoints != null) { |
| 236 | + MyMapUtil.drawHistoryTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, 0, R.drawable.icon_end); | ||
| 237 | + MyMapUtil.setMapAutoZoom(getView().baiduMap, allResults, -2f); | ||
| 234 | //先判断是否到达终点 | 238 | //先判断是否到达终点 |
| 235 | checkUserIsFinish(resultPoints, userStepEntity, runningFinishBean, context); | 239 | checkUserIsFinish(resultPoints, userStepEntity, runningFinishBean, context); |
| 236 | saveRouteData(context, userStepEntity, runningFinishBean); | 240 | saveRouteData(context, userStepEntity, runningFinishBean); |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/presenter/RunningMapFragmentPresenter.java
| @@ -382,7 +382,7 @@ public class RunningMapFragmentPresenter extends MvpBasePresenter<RunningMapFrag | @@ -382,7 +382,7 @@ public class RunningMapFragmentPresenter extends MvpBasePresenter<RunningMapFrag | ||
| 382 | if (isPause) { | 382 | if (isPause) { |
| 383 | MyMapUtil.drawRealTimeTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, R.drawable.icon_start); | 383 | MyMapUtil.drawRealTimeTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, R.drawable.icon_start); |
| 384 | } else { | 384 | } else { |
| 385 | - MyMapUtil.drawHistoryTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, R.drawable.icon_start, R.drawable.icon_end); | 385 | + MyMapUtil.drawHistoryTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, R.drawable.icon_start, 0); |
| 386 | } | 386 | } |
| 387 | } | 387 | } |
| 388 | } | 388 | } |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/OnGoingFragmentView.java
| @@ -7,6 +7,7 @@ import android.graphics.BitmapFactory; | @@ -7,6 +7,7 @@ import android.graphics.BitmapFactory; | ||
| 7 | import android.text.TextUtils; | 7 | import android.text.TextUtils; |
| 8 | import android.util.Log; | 8 | import android.util.Log; |
| 9 | import android.view.View; | 9 | import android.view.View; |
| 10 | +import android.view.ViewTreeObserver; | ||
| 10 | import android.widget.LinearLayout; | 11 | import android.widget.LinearLayout; |
| 11 | 12 | ||
| 12 | import com.alibaba.android.arouter.launcher.ARouter; | 13 | import com.alibaba.android.arouter.launcher.ARouter; |
| @@ -210,15 +211,25 @@ public class OnGoingFragmentView implements MvpView { | @@ -210,15 +211,25 @@ public class OnGoingFragmentView implements MvpView { | ||
| 210 | //设置围栏ID | 211 | //设置围栏ID |
| 211 | CommonInfo.setFenceId(getContext(), Integer.parseInt(runRaceDetailInfo.getFenceId())); | 212 | CommonInfo.setFenceId(getContext(), Integer.parseInt(runRaceDetailInfo.getFenceId())); |
| 212 | } | 213 | } |
| 214 | + fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 140)); | ||
| 213 | //设置标题 | 215 | //设置标题 |
| 214 | if (!TextUtils.isEmpty(runRaceDetailInfo.getTitle())) { | 216 | if (!TextUtils.isEmpty(runRaceDetailInfo.getTitle())) { |
| 215 | fragment.binding.includeStreet.tvRaceTitle.setText(runRaceDetailInfo.getTitle()); | 217 | fragment.binding.includeStreet.tvRaceTitle.setText(runRaceDetailInfo.getTitle()); |
| 216 | - //根据标题字数动态设置卡片高度 | ||
| 217 | - if (runRaceDetailInfo.getTitle().length() > 19) { | ||
| 218 | - fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 162)); | ||
| 219 | - } else { | ||
| 220 | - fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 140)); | ||
| 221 | - } | 218 | + //根据标题行数,自动调整卡片大小 |
| 219 | + fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { | ||
| 220 | + @Override | ||
| 221 | + public boolean onPreDraw() { | ||
| 222 | + int line = fragment.binding.includeStreet.tvRaceTitle.getLineCount(); | ||
| 223 | + int height = fragment.binding.includeStreet.tvRaceTitle.getHeight(); | ||
| 224 | + if (line > 1) { | ||
| 225 | + int avgHeight = height / line;//平局高度 | ||
| 226 | + fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 140) + avgHeight * (line - 1)); | ||
| 227 | + | ||
| 228 | + } | ||
| 229 | + fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().removeOnPreDrawListener(this); | ||
| 230 | + return false; | ||
| 231 | + } | ||
| 232 | + }); | ||
| 222 | fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); | 233 | fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); |
| 223 | } | 234 | } |
| 224 | //设置活动地点 | 235 | //设置活动地点 |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/RunMainFragmentView.java
| @@ -193,6 +193,7 @@ public class RunMainFragmentView implements MvpView { | @@ -193,6 +193,7 @@ public class RunMainFragmentView implements MvpView { | ||
| 193 | } else { | 193 | } else { |
| 194 | ButtonAnimUtil.startAnimation(fragment.binding.llStartTimeTip, true); | 194 | ButtonAnimUtil.startAnimation(fragment.binding.llStartTimeTip, true); |
| 195 | fragment.binding.llRunMainRoot.setVisibility(View.VISIBLE); | 195 | fragment.binding.llRunMainRoot.setVisibility(View.VISIBLE); |
| 196 | + fragment.binding.llRunMainRoot.setBackgroundColor(getContext().getResources().getColor(R.color.run_main_bg)); | ||
| 196 | new Handler().postDelayed(new Runnable() { | 197 | new Handler().postDelayed(new Runnable() { |
| 197 | @Override | 198 | @Override |
| 198 | public void run() { | 199 | public void run() { |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/RunRaceDetailFragmentView.java
| @@ -8,13 +8,11 @@ import android.hardware.Sensor; | @@ -8,13 +8,11 @@ import android.hardware.Sensor; | ||
| 8 | import android.hardware.SensorEvent; | 8 | import android.hardware.SensorEvent; |
| 9 | import android.hardware.SensorEventListener; | 9 | import android.hardware.SensorEventListener; |
| 10 | import android.hardware.SensorManager; | 10 | import android.hardware.SensorManager; |
| 11 | -import android.os.Handler; | ||
| 12 | import android.os.SystemClock; | 11 | import android.os.SystemClock; |
| 13 | import android.support.v4.content.ContextCompat; | 12 | import android.support.v4.content.ContextCompat; |
| 14 | import android.text.TextUtils; | 13 | import android.text.TextUtils; |
| 15 | import android.util.Log; | 14 | import android.util.Log; |
| 16 | import android.view.View; | 15 | import android.view.View; |
| 17 | -import android.view.ViewGroup; | ||
| 18 | import android.view.ViewTreeObserver; | 16 | import android.view.ViewTreeObserver; |
| 19 | import android.widget.LinearLayout; | 17 | import android.widget.LinearLayout; |
| 20 | import android.widget.Toast; | 18 | import android.widget.Toast; |
| @@ -28,39 +26,18 @@ import com.baidu.mapapi.map.BaiduMap; | @@ -28,39 +26,18 @@ import com.baidu.mapapi.map.BaiduMap; | ||
| 28 | import com.baidu.mapapi.map.BitmapDescriptor; | 26 | import com.baidu.mapapi.map.BitmapDescriptor; |
| 29 | import com.baidu.mapapi.map.BitmapDescriptorFactory; | 27 | import com.baidu.mapapi.map.BitmapDescriptorFactory; |
| 30 | import com.baidu.mapapi.map.MapStatus; | 28 | import com.baidu.mapapi.map.MapStatus; |
| 31 | -import com.baidu.mapapi.map.MapStatusUpdate; | ||
| 32 | import com.baidu.mapapi.map.MapStatusUpdateFactory; | 29 | import com.baidu.mapapi.map.MapStatusUpdateFactory; |
| 33 | import com.baidu.mapapi.map.MapView; | 30 | import com.baidu.mapapi.map.MapView; |
| 34 | import com.baidu.mapapi.map.MarkerOptions; | 31 | import com.baidu.mapapi.map.MarkerOptions; |
| 35 | import com.baidu.mapapi.map.MyLocationConfiguration; | 32 | import com.baidu.mapapi.map.MyLocationConfiguration; |
| 36 | import com.baidu.mapapi.map.MyLocationData; | 33 | import com.baidu.mapapi.map.MyLocationData; |
| 37 | -import com.baidu.mapapi.map.Overlay; | ||
| 38 | -import com.baidu.mapapi.map.OverlayOptions; | ||
| 39 | -import com.baidu.mapapi.map.PolylineOptions; | ||
| 40 | import com.baidu.mapapi.map.UiSettings; | 34 | import com.baidu.mapapi.map.UiSettings; |
| 41 | import com.baidu.mapapi.model.LatLng; | 35 | import com.baidu.mapapi.model.LatLng; |
| 42 | -import com.baidu.mapapi.model.LatLngBounds; | ||
| 43 | -import com.baidu.mapapi.search.core.SearchResult; | ||
| 44 | -import com.baidu.mapapi.search.route.BikingRouteResult; | ||
| 45 | -import com.baidu.mapapi.search.route.DrivingRouteResult; | ||
| 46 | -import com.baidu.mapapi.search.route.IndoorRouteResult; | ||
| 47 | -import com.baidu.mapapi.search.route.MassTransitRouteResult; | ||
| 48 | -import com.baidu.mapapi.search.route.OnGetRoutePlanResultListener; | ||
| 49 | -import com.baidu.mapapi.search.route.PlanNode; | ||
| 50 | import com.baidu.mapapi.search.route.RoutePlanSearch; | 36 | import com.baidu.mapapi.search.route.RoutePlanSearch; |
| 51 | -import com.baidu.mapapi.search.route.TransitRouteResult; | ||
| 52 | -import com.baidu.mapapi.search.route.WalkingRoutePlanOption; | ||
| 53 | -import com.baidu.mapapi.search.route.WalkingRouteResult; | ||
| 54 | import com.baidu.mapapi.utils.DistanceUtil; | 37 | import com.baidu.mapapi.utils.DistanceUtil; |
| 55 | import com.baidu.trace.LBSTraceClient; | 38 | import com.baidu.trace.LBSTraceClient; |
| 56 | -import com.baidu.trace.Trace; | ||
| 57 | -import com.baidu.trace.model.LocationMode; | ||
| 58 | import com.baidu.trace.model.SortType; | 39 | import com.baidu.trace.model.SortType; |
| 59 | -import com.cnlive.libs.base.logic.Event; | ||
| 60 | -import com.cnlive.libs.base.logic.callback.FailureCallback; | ||
| 61 | -import com.cnlive.libs.base.logic.callback.SuccessCallback; | ||
| 62 | import com.cnlive.libs.base.util.StatusBarUtil2; | 40 | import com.cnlive.libs.base.util.StatusBarUtil2; |
| 63 | -import com.cnlive.moudle.pedometer.commonInfo.CollCommonInfo; | ||
| 64 | import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; | 41 | import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; |
| 65 | import com.cnlive.moudle.pedometer.model.Constant; | 42 | import com.cnlive.moudle.pedometer.model.Constant; |
| 66 | import com.cnlive.moudle.pedometer.net.SubscriptionRequest; | 43 | import com.cnlive.moudle.pedometer.net.SubscriptionRequest; |
| @@ -75,7 +52,6 @@ import com.cnlive.moudle.pedometer.ui.activity.TakePartActivity; | @@ -75,7 +52,6 @@ import com.cnlive.moudle.pedometer.ui.activity.TakePartActivity; | ||
| 75 | import com.cnlive.moudle.pedometer.ui.fragment.RunRaceDetailFragment; | 52 | import com.cnlive.moudle.pedometer.ui.fragment.RunRaceDetailFragment; |
| 76 | import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; | 53 | import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; |
| 77 | import com.cnlive.moudle.pedometer.ui.widget.TipDialog; | 54 | import com.cnlive.moudle.pedometer.ui.widget.TipDialog; |
| 78 | -import com.cnlive.moudle.pedometer.upload.UploadLogic; | ||
| 79 | import com.cnlive.moudle.pedometer.utils.BitmapUtil; | 55 | import com.cnlive.moudle.pedometer.utils.BitmapUtil; |
| 80 | import com.cnlive.moudle.pedometer.utils.GsonUtil; | 56 | import com.cnlive.moudle.pedometer.utils.GsonUtil; |
| 81 | import com.cnlive.moudle.pedometer.utils.MyMapUtil; | 57 | import com.cnlive.moudle.pedometer.utils.MyMapUtil; |
| @@ -90,13 +66,7 @@ import com.hannesdorfmann.mosby3.mvp.MvpView; | @@ -90,13 +66,7 @@ import com.hannesdorfmann.mosby3.mvp.MvpView; | ||
| 90 | import com.qmuiteam.qmui.util.QMUIStatusBarHelper; | 66 | import com.qmuiteam.qmui.util.QMUIStatusBarHelper; |
| 91 | import com.sothree.slidinguppanel.SlidingUpPanelLayout; | 67 | import com.sothree.slidinguppanel.SlidingUpPanelLayout; |
| 92 | 68 | ||
| 93 | -import java.io.File; | ||
| 94 | -import java.io.FileOutputStream; | ||
| 95 | -import java.io.LineNumberReader; | ||
| 96 | -import java.text.SimpleDateFormat; | ||
| 97 | import java.util.ArrayList; | 69 | import java.util.ArrayList; |
| 98 | -import java.util.Date; | ||
| 99 | -import java.util.LinkedList; | ||
| 100 | import java.util.List; | 70 | import java.util.List; |
| 101 | 71 | ||
| 102 | public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { | 72 | public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { |
| @@ -354,20 +324,30 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { | @@ -354,20 +324,30 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { | ||
| 354 | //设置标题 | 324 | //设置标题 |
| 355 | if (!TextUtils.isEmpty(runRaceDetailInfo.getTitle())) { | 325 | if (!TextUtils.isEmpty(runRaceDetailInfo.getTitle())) { |
| 356 | fragment.binding.includeStreet.tvRaceTitle.setText(runRaceDetailInfo.getTitle()); | 326 | fragment.binding.includeStreet.tvRaceTitle.setText(runRaceDetailInfo.getTitle()); |
| 357 | - fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { | ||
| 358 | - @Override | ||
| 359 | - public boolean onPreDraw() { | ||
| 360 | - Log.e(TAG, "initView: "+ fragment.binding.includeStreet.tvRaceTitle.getLineCount() ); | ||
| 361 | - fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().removeOnPreDrawListener(this); | ||
| 362 | - return false; | ||
| 363 | - } | ||
| 364 | - }); | ||
| 365 | - //根据标题字数动态设置卡片高度 | ||
| 366 | - if (runRaceDetailInfo.getTitle().length() > 19) { | ||
| 367 | - fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 200)); | ||
| 368 | - } else { | ||
| 369 | - fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 181)); | ||
| 370 | - } | 327 | + fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { |
| 328 | + @Override | ||
| 329 | + public boolean onPreDraw() { | ||
| 330 | + Log.e(TAG, "initView: " + fragment.binding.includeStreet.tvRaceTitle.getLineCount()); | ||
| 331 | + fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().removeOnPreDrawListener(this); | ||
| 332 | + return false; | ||
| 333 | + } | ||
| 334 | + }); | ||
| 335 | + fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 181)); | ||
| 336 | + //根据标题行数,自动调整卡片大小 | ||
| 337 | + fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { | ||
| 338 | + @Override | ||
| 339 | + public boolean onPreDraw() { | ||
| 340 | + int line = fragment.binding.includeStreet.tvRaceTitle.getLineCount(); | ||
| 341 | + int height = fragment.binding.includeStreet.tvRaceTitle.getHeight(); | ||
| 342 | + if (line > 1) { | ||
| 343 | + int avgHeight = height / line;//平局高度 | ||
| 344 | + fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 181) + avgHeight * (line - 1)); | ||
| 345 | + | ||
| 346 | + } | ||
| 347 | + fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().removeOnPreDrawListener(this); | ||
| 348 | + return false; | ||
| 349 | + } | ||
| 350 | + }); | ||
| 371 | fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); | 351 | fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); |
| 372 | } | 352 | } |
| 373 | //设置活动地点 | 353 | //设置活动地点 |
| @@ -585,6 +565,9 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { | @@ -585,6 +565,9 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { | ||
| 585 | //清除数据 | 565 | //清除数据 |
| 586 | CommonInfo.resetRace(getContext()); | 566 | CommonInfo.resetRace(getContext()); |
| 587 | dialog.dismiss(); | 567 | dialog.dismiss(); |
| 568 | + //重置按钮 | ||
| 569 | + fragment.binding.tvRunNow.setText("立即开始"); | ||
| 570 | + fragment.binding.rlScrollViewStartBtn.setTag("1"); | ||
| 588 | } | 571 | } |
| 589 | }, "是", new SelectDialog.DialogInterface() { | 572 | }, "是", new SelectDialog.DialogInterface() { |
| 590 | @Override | 573 | @Override |
| @@ -653,7 +636,7 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { | @@ -653,7 +636,7 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { | ||
| 653 | @Override | 636 | @Override |
| 654 | public void onClick(View view) { | 637 | public void onClick(View view) { |
| 655 | ARouter.getInstance().build("/web/WebViewColorActivity") | 638 | ARouter.getInstance().build("/web/WebViewColorActivity") |
| 656 | - .withString("url", SubscriptionRequest.baseEndpoint()+"cnSportList.html" + "?sid=" + CommonInfo.getUserId(fragment.getActivity()) + "&eventId=" + CommonInfo.getStreetId(fragment.getActivity())) | 639 | + .withString("url", SubscriptionRequest.baseEndpoint() + "cnSportList.html" + "?sid=" + CommonInfo.getUserId(fragment.getActivity()) + "&eventId=" + CommonInfo.getStreetId(fragment.getActivity())) |
| 657 | .withString("title", "排行榜") | 640 | .withString("title", "排行榜") |
| 658 | .navigation(fragment.getActivity()); | 641 | .navigation(fragment.getActivity()); |
| 659 | } | 642 | } |
| @@ -1057,6 +1040,57 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { | @@ -1057,6 +1040,57 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { | ||
| 1057 | fragment.binding.tvRunNow.setText("立即开始"); | 1040 | fragment.binding.tvRunNow.setText("立即开始"); |
| 1058 | fragment.binding.rlScrollViewStartBtn.setTag("1"); | 1041 | fragment.binding.rlScrollViewStartBtn.setTag("1"); |
| 1059 | } | 1042 | } |
| 1043 | + //判断赛事是否已经结束 | ||
| 1044 | + checkTheRaceIsEnd(); | ||
| 1045 | + | ||
| 1046 | + } | ||
| 1047 | + | ||
| 1048 | + /** | ||
| 1049 | + * 判断赛事是否已经结束 | ||
| 1050 | + */ | ||
| 1051 | + private void checkTheRaceIsEnd() { | ||
| 1052 | + //判断赛事是否结束 | ||
| 1053 | + if (null != userStepEntity) { | ||
| 1054 | + if (null != runRaceDetailInfo) { | ||
| 1055 | + //判断赛事id是否一致 | ||
| 1056 | + if (!TextUtils.isEmpty(userStepEntity.getStreetId())) { | ||
| 1057 | + if (userStepEntity.getStreetId().equals(CommonInfo.getStreetId(getContext()))) { | ||
| 1058 | + //判断赛事是否结束 | ||
| 1059 | + if (runRaceDetailInfo.isEndState()) { | ||
| 1060 | + //结束清除数据 | ||
| 1061 | + //清空上次保存数据 | ||
| 1062 | + StepUtil.clearRunData(getContext(), CommonInfo.getUserId(getContext())); | ||
| 1063 | + //停止服务 | ||
| 1064 | + stopStepService(); | ||
| 1065 | + //清除数据 | ||
| 1066 | + CommonInfo.resetRace(getContext()); | ||
| 1067 | + //设置按钮状态 | ||
| 1068 | + fragment.binding.rlScrollViewStartBtn.setTag("3"); | ||
| 1069 | + fragment.binding.rlScrollViewStartBtn.setBackgroundColor(getContext().getResources().getColor(R.color.red_round)); | ||
| 1070 | + fragment.binding.tvRunNow.setText("赛事已结束"); | ||
| 1071 | + fragment.binding.tvGoTip.setVisibility(View.GONE); | ||
| 1072 | + } | ||
| 1073 | + } | ||
| 1074 | + } | ||
| 1075 | + } | ||
| 1076 | + } else { | ||
| 1077 | + //如果数据库中没有数据,即,用户在当前赛事已经结束 | ||
| 1078 | + if (null != runRaceDetailInfo) { | ||
| 1079 | + if (runRaceDetailInfo.isEndState()) { | ||
| 1080 | + //设置按钮状态 | ||
| 1081 | + fragment.binding.rlScrollViewStartBtn.setTag("3"); | ||
| 1082 | + fragment.binding.rlScrollViewStartBtn.setBackgroundColor(getContext().getResources().getColor(R.color.red_round)); | ||
| 1083 | + fragment.binding.tvRunNow.setText("赛事已结束"); | ||
| 1084 | + fragment.binding.tvGoTip.setVisibility(View.GONE); | ||
| 1085 | + } | ||
| 1086 | + } | ||
| 1087 | + } | ||
| 1088 | + } | ||
| 1089 | + | ||
| 1090 | + /** | ||
| 1091 | + * 赛事已经结束 | ||
| 1092 | + */ | ||
| 1093 | + private void raceHasEnd() { | ||
| 1060 | 1094 | ||
| 1061 | } | 1095 | } |
| 1062 | 1096 |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/model/Constant.java
| 1 | package com.cnlive.moudle.pedometer.model; | 1 | package com.cnlive.moudle.pedometer.model; |
| 2 | 2 | ||
| 3 | public class Constant { | 3 | public class Constant { |
| 4 | - public static final long SERVICE_ID = 213511; | 4 | +// public static final long SERVICE_ID = 213511;//公司账号 |
| 5 | + public static final long SERVICE_ID = 213553; | ||
| 6 | + | ||
| 5 | public static final int TAG = 1; | 7 | public static final int TAG = 1; |
| 6 | public static final int GATHER_INTERVAL = 2;//位置采集周期 | 8 | public static final int GATHER_INTERVAL = 2;//位置采集周期 |
| 7 | public static final int PACK_INTERVAL = 10;//位置采集周期 | 9 | public static final int PACK_INTERVAL = 10;//位置采集周期 |
| @@ -13,6 +15,8 @@ public class Constant { | @@ -13,6 +15,8 @@ public class Constant { | ||
| 13 | public static final int FRAGMENT_RUN_CHRONOMETER = 4;//同步计时器 | 15 | public static final int FRAGMENT_RUN_CHRONOMETER = 4;//同步计时器 |
| 14 | public static final int EXIT_RANGE = 5;//超出范围 | 16 | public static final int EXIT_RANGE = 5;//超出范围 |
| 15 | public static final int ENTER_RANGE = 6;//进入范围 | 17 | public static final int ENTER_RANGE = 6;//进入范围 |
| 18 | + public static final int COLL_SERVICE_STEP_COUNT_RESET_SPEED = 3;//重置速度 | ||
| 19 | + public static final int COLL_SERVICE_STEP_COUNT_UPDATE = 0;//步数更新 | ||
| 16 | public static final int COLL_START_TRACE_GATHER_SUCCESS = 7;//启动轨迹服务成功(运营) | 20 | public static final int COLL_START_TRACE_GATHER_SUCCESS = 7;//启动轨迹服务成功(运营) |
| 17 | public static final int COLL_START_TRACE_GATHER_FAIL = 8;//启动轨迹服务失败(运营) | 21 | public static final int COLL_START_TRACE_GATHER_FAIL = 8;//启动轨迹服务失败(运营) |
| 18 | public static final int START_TRACE_GATHER_SUCCESS = 9;//启动轨迹服务成功(用户) | 22 | public static final int START_TRACE_GATHER_SUCCESS = 9;//启动轨迹服务成功(用户) |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/net/bean/RunRaceDetailInfo.java
| @@ -65,7 +65,7 @@ public class RunRaceDetailInfo implements Serializable { | @@ -65,7 +65,7 @@ public class RunRaceDetailInfo implements Serializable { | ||
| 65 | private boolean ranking; | 65 | private boolean ranking; |
| 66 | private boolean individualAchievement; | 66 | private boolean individualAchievement; |
| 67 | private boolean signResult; | 67 | private boolean signResult; |
| 68 | - private boolean trackButton; | 68 | + private boolean trackButton;//轨迹按钮,true展示,false不展示 |
| 69 | private String state; | 69 | private String state; |
| 70 | private String finishNum; | 70 | private String finishNum; |
| 71 | private String firstEmployTime; | 71 | private String firstEmployTime; |
| @@ -86,7 +86,35 @@ public class RunRaceDetailInfo implements Serializable { | @@ -86,7 +86,35 @@ public class RunRaceDetailInfo implements Serializable { | ||
| 86 | private String userMileage; | 86 | private String userMileage; |
| 87 | private List<String> faceUrl; | 87 | private List<String> faceUrl; |
| 88 | private List<String> finishFaceUrl; | 88 | private List<String> finishFaceUrl; |
| 89 | + /*********************************后加的,非接口返回,用于*******************************************/ | ||
| 89 | private String endLatLng;//终点坐标,后加的,不是后台返回,这是从百度历史轨迹查出来的 | 90 | private String endLatLng;//终点坐标,后加的,不是后台返回,这是从百度历史轨迹查出来的 |
| 91 | + private boolean endState;//活动是否结束(true 结束 false 未结束 ) | ||
| 92 | + private String collStartLatLng;//运营打的点 | ||
| 93 | + private String collStartLntLngName;//运营打点名称 | ||
| 94 | + | ||
| 95 | + public String getCollStartLatLng() { | ||
| 96 | + return collStartLatLng; | ||
| 97 | + } | ||
| 98 | + | ||
| 99 | + public void setCollStartLatLng(String collStartLatLng) { | ||
| 100 | + this.collStartLatLng = collStartLatLng; | ||
| 101 | + } | ||
| 102 | + | ||
| 103 | + public String getCollStartLntLngName() { | ||
| 104 | + return collStartLntLngName; | ||
| 105 | + } | ||
| 106 | + | ||
| 107 | + public void setCollStartLntLngName(String collStartLntLngName) { | ||
| 108 | + this.collStartLntLngName = collStartLntLngName; | ||
| 109 | + } | ||
| 110 | + | ||
| 111 | + public boolean isEndState() { | ||
| 112 | + return endState; | ||
| 113 | + } | ||
| 114 | + | ||
| 115 | + public void setEndState(boolean endState) { | ||
| 116 | + this.endState = endState; | ||
| 117 | + } | ||
| 90 | 118 | ||
| 91 | public String getEndLatLng() { | 119 | public String getEndLatLng() { |
| 92 | return endLatLng; | 120 | return endLatLng; |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/sql/dao/CollUserStepEntityDao.java
| @@ -24,14 +24,29 @@ public class CollUserStepEntityDao extends AbstractDao<CollUserStepEntity, Strin | @@ -24,14 +24,29 @@ public class CollUserStepEntityDao extends AbstractDao<CollUserStepEntity, Strin | ||
| 24 | * Can be used for QueryBuilder and for referencing column names. | 24 | * Can be used for QueryBuilder and for referencing column names. |
| 25 | */ | 25 | */ |
| 26 | public static class Properties { | 26 | public static class Properties { |
| 27 | - public final static Property Uuid = new Property(0, String.class, "uuid", true, "UUID"); | ||
| 28 | - public final static Property UserId = new Property(1, String.class, "userId", false, "USER_ID"); | ||
| 29 | - public final static Property Date = new Property(2, String.class, "date", false, "DATE"); | ||
| 30 | - public final static Property StepCount = new Property(3, String.class, "stepCount", false, "STEP_COUNT"); | ||
| 31 | - public final static Property PauseTimeStamp = new Property(4, long.class, "pauseTimeStamp", false, "PAUSE_TIME_STAMP"); | ||
| 32 | - public final static Property RecordTime = new Property(5, long.class, "recordTime", false, "RECORD_TIME"); | ||
| 33 | - public final static Property CaloriesCount = new Property(6, double.class, "caloriesCount", false, "CALORIES_COUNT"); | ||
| 34 | - public final static Property ServerTraceData = new Property(7, String.class, "serverTraceData", false, "SERVER_TRACE_DATA"); | 27 | + public final static Property UserId = new Property(0, String.class, "userId", true, "USER_ID"); |
| 28 | + public final static Property Date = new Property(1, String.class, "date", false, "DATE"); | ||
| 29 | + public final static Property StepCount = new Property(2, String.class, "stepCount", false, "STEP_COUNT"); | ||
| 30 | + public final static Property RecordTime = new Property(3, long.class, "recordTime", false, "RECORD_TIME"); | ||
| 31 | + public final static Property CaloriesCount = new Property(4, double.class, "caloriesCount", false, "CALORIES_COUNT"); | ||
| 32 | + public final static Property ServerTraceData = new Property(5, String.class, "serverTraceData", false, "SERVER_TRACE_DATA"); | ||
| 33 | + public final static Property StartTimeStamp = new Property(6, long.class, "startTimeStamp", false, "START_TIME_STAMP"); | ||
| 34 | + public final static Property FinishTimeStamp = new Property(7, long.class, "finishTimeStamp", false, "FINISH_TIME_STAMP"); | ||
| 35 | + public final static Property StreetId = new Property(8, String.class, "streetId", false, "STREET_ID"); | ||
| 36 | + public final static Property PauseCount = new Property(9, int.class, "pauseCount", false, "PAUSE_COUNT"); | ||
| 37 | + public final static Property UserPauseTimeStamp = new Property(10, long.class, "userPauseTimeStamp", false, "USER_PAUSE_TIME_STAMP"); | ||
| 38 | + public final static Property ChronometerBase = new Property(11, long.class, "chronometerBase", false, "CHRONOMETER_BASE"); | ||
| 39 | + public final static Property QueryTraceStartTime = new Property(12, long.class, "queryTraceStartTime", false, "QUERY_TRACE_START_TIME"); | ||
| 40 | + public final static Property QueryTraceEndTime = new Property(13, long.class, "queryTraceEndTime", false, "QUERY_TRACE_END_TIME"); | ||
| 41 | + public final static Property QueryEntityName = new Property(14, String.class, "queryEntityName", false, "QUERY_ENTITY_NAME"); | ||
| 42 | + public final static Property ContinueTime = new Property(15, long.class, "continueTime", false, "CONTINUE_TIME"); | ||
| 43 | + public final static Property FenceId = new Property(16, long.class, "fenceId", false, "FENCE_ID"); | ||
| 44 | + public final static Property ImportPoint = new Property(17, String.class, "importPoint", false, "IMPORT_POINT"); | ||
| 45 | + public final static Property StreetTitle = new Property(18, String.class, "streetTitle", false, "STREET_TITLE"); | ||
| 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"); | ||
| 48 | + public final static Property CollStartLatLngName = new Property(21, String.class, "collStartLatLngName", false, "COLL_START_LAT_LNG_NAME"); | ||
| 49 | + public final static Property CollStartLatLng = new Property(22, String.class, "collStartLatLng", false, "COLL_START_LAT_LNG"); | ||
| 35 | } | 50 | } |
| 36 | 51 | ||
| 37 | 52 | ||
| @@ -47,14 +62,29 @@ public class CollUserStepEntityDao extends AbstractDao<CollUserStepEntity, Strin | @@ -47,14 +62,29 @@ public class CollUserStepEntityDao extends AbstractDao<CollUserStepEntity, Strin | ||
| 47 | public static void createTable(Database db, boolean ifNotExists) { | 62 | public static void createTable(Database db, boolean ifNotExists) { |
| 48 | String constraint = ifNotExists? "IF NOT EXISTS ": ""; | 63 | String constraint = ifNotExists? "IF NOT EXISTS ": ""; |
| 49 | db.execSQL("CREATE TABLE " + constraint + "\"COLL_USER_STEP_ENTITY\" (" + // | 64 | db.execSQL("CREATE TABLE " + constraint + "\"COLL_USER_STEP_ENTITY\" (" + // |
| 50 | - "\"UUID\" TEXT PRIMARY KEY NOT NULL ," + // 0: uuid | ||
| 51 | - "\"USER_ID\" TEXT," + // 1: userId | ||
| 52 | - "\"DATE\" TEXT," + // 2: date | ||
| 53 | - "\"STEP_COUNT\" TEXT," + // 3: stepCount | ||
| 54 | - "\"PAUSE_TIME_STAMP\" INTEGER NOT NULL ," + // 4: pauseTimeStamp | ||
| 55 | - "\"RECORD_TIME\" INTEGER NOT NULL ," + // 5: recordTime | ||
| 56 | - "\"CALORIES_COUNT\" REAL NOT NULL ," + // 6: caloriesCount | ||
| 57 | - "\"SERVER_TRACE_DATA\" TEXT);"); // 7: serverTraceData | 65 | + "\"USER_ID\" TEXT PRIMARY KEY NOT NULL ," + // 0: userId |
| 66 | + "\"DATE\" TEXT," + // 1: date | ||
| 67 | + "\"STEP_COUNT\" TEXT," + // 2: stepCount | ||
| 68 | + "\"RECORD_TIME\" INTEGER NOT NULL ," + // 3: recordTime | ||
| 69 | + "\"CALORIES_COUNT\" REAL NOT NULL ," + // 4: caloriesCount | ||
| 70 | + "\"SERVER_TRACE_DATA\" TEXT," + // 5: serverTraceData | ||
| 71 | + "\"START_TIME_STAMP\" INTEGER NOT NULL ," + // 6: startTimeStamp | ||
| 72 | + "\"FINISH_TIME_STAMP\" INTEGER NOT NULL ," + // 7: finishTimeStamp | ||
| 73 | + "\"STREET_ID\" TEXT," + // 8: streetId | ||
| 74 | + "\"PAUSE_COUNT\" INTEGER NOT NULL ," + // 9: pauseCount | ||
| 75 | + "\"USER_PAUSE_TIME_STAMP\" INTEGER NOT NULL ," + // 10: userPauseTimeStamp | ||
| 76 | + "\"CHRONOMETER_BASE\" INTEGER NOT NULL ," + // 11: chronometerBase | ||
| 77 | + "\"QUERY_TRACE_START_TIME\" INTEGER NOT NULL ," + // 12: queryTraceStartTime | ||
| 78 | + "\"QUERY_TRACE_END_TIME\" INTEGER NOT NULL ," + // 13: queryTraceEndTime | ||
| 79 | + "\"QUERY_ENTITY_NAME\" TEXT," + // 14: queryEntityName | ||
| 80 | + "\"CONTINUE_TIME\" INTEGER NOT NULL ," + // 15: continueTime | ||
| 81 | + "\"FENCE_ID\" INTEGER NOT NULL ," + // 16: fenceId | ||
| 82 | + "\"IMPORT_POINT\" TEXT," + // 17: importPoint | ||
| 83 | + "\"STREET_TITLE\" TEXT," + // 18: streetTitle | ||
| 84 | + "\"END_LAT_LNG\" TEXT," + // 19: endLatLng | ||
| 85 | + "\"IS_ARRIVE_END_POINT\" INTEGER NOT NULL ," + // 20: isArriveEndPoint | ||
| 86 | + "\"COLL_START_LAT_LNG_NAME\" TEXT," + // 21: collStartLatLngName | ||
| 87 | + "\"COLL_START_LAT_LNG\" TEXT);"); // 22: collStartLatLng | ||
| 58 | } | 88 | } |
| 59 | 89 | ||
| 60 | /** Drops the underlying database table. */ | 90 | /** Drops the underlying database table. */ |
| @@ -67,32 +97,71 @@ public class CollUserStepEntityDao extends AbstractDao<CollUserStepEntity, Strin | @@ -67,32 +97,71 @@ public class CollUserStepEntityDao extends AbstractDao<CollUserStepEntity, Strin | ||
| 67 | protected final void bindValues(DatabaseStatement stmt, CollUserStepEntity entity) { | 97 | protected final void bindValues(DatabaseStatement stmt, CollUserStepEntity entity) { |
| 68 | stmt.clearBindings(); | 98 | stmt.clearBindings(); |
| 69 | 99 | ||
| 70 | - String uuid = entity.getUuid(); | ||
| 71 | - if (uuid != null) { | ||
| 72 | - stmt.bindString(1, uuid); | ||
| 73 | - } | ||
| 74 | - | ||
| 75 | String userId = entity.getUserId(); | 100 | String userId = entity.getUserId(); |
| 76 | if (userId != null) { | 101 | if (userId != null) { |
| 77 | - stmt.bindString(2, userId); | 102 | + stmt.bindString(1, userId); |
| 78 | } | 103 | } |
| 79 | 104 | ||
| 80 | String date = entity.getDate(); | 105 | String date = entity.getDate(); |
| 81 | if (date != null) { | 106 | if (date != null) { |
| 82 | - stmt.bindString(3, date); | 107 | + stmt.bindString(2, date); |
| 83 | } | 108 | } |
| 84 | 109 | ||
| 85 | String stepCount = entity.getStepCount(); | 110 | String stepCount = entity.getStepCount(); |
| 86 | if (stepCount != null) { | 111 | if (stepCount != null) { |
| 87 | - stmt.bindString(4, stepCount); | 112 | + stmt.bindString(3, stepCount); |
| 88 | } | 113 | } |
| 89 | - stmt.bindLong(5, entity.getPauseTimeStamp()); | ||
| 90 | - stmt.bindLong(6, entity.getRecordTime()); | ||
| 91 | - stmt.bindDouble(7, entity.getCaloriesCount()); | 114 | + stmt.bindLong(4, entity.getRecordTime()); |
| 115 | + stmt.bindDouble(5, entity.getCaloriesCount()); | ||
| 92 | 116 | ||
| 93 | String serverTraceData = entity.getServerTraceData(); | 117 | String serverTraceData = entity.getServerTraceData(); |
| 94 | if (serverTraceData != null) { | 118 | if (serverTraceData != null) { |
| 95 | - stmt.bindString(8, serverTraceData); | 119 | + stmt.bindString(6, serverTraceData); |
| 120 | + } | ||
| 121 | + stmt.bindLong(7, entity.getStartTimeStamp()); | ||
| 122 | + stmt.bindLong(8, entity.getFinishTimeStamp()); | ||
| 123 | + | ||
| 124 | + String streetId = entity.getStreetId(); | ||
| 125 | + if (streetId != null) { | ||
| 126 | + stmt.bindString(9, streetId); | ||
| 127 | + } | ||
| 128 | + stmt.bindLong(10, entity.getPauseCount()); | ||
| 129 | + stmt.bindLong(11, entity.getUserPauseTimeStamp()); | ||
| 130 | + stmt.bindLong(12, entity.getChronometerBase()); | ||
| 131 | + stmt.bindLong(13, entity.getQueryTraceStartTime()); | ||
| 132 | + stmt.bindLong(14, entity.getQueryTraceEndTime()); | ||
| 133 | + | ||
| 134 | + String queryEntityName = entity.getQueryEntityName(); | ||
| 135 | + if (queryEntityName != null) { | ||
| 136 | + stmt.bindString(15, queryEntityName); | ||
| 137 | + } | ||
| 138 | + stmt.bindLong(16, entity.getContinueTime()); | ||
| 139 | + stmt.bindLong(17, entity.getFenceId()); | ||
| 140 | + | ||
| 141 | + String importPoint = entity.getImportPoint(); | ||
| 142 | + if (importPoint != null) { | ||
| 143 | + stmt.bindString(18, importPoint); | ||
| 144 | + } | ||
| 145 | + | ||
| 146 | + String streetTitle = entity.getStreetTitle(); | ||
| 147 | + if (streetTitle != null) { | ||
| 148 | + stmt.bindString(19, streetTitle); | ||
| 149 | + } | ||
| 150 | + | ||
| 151 | + String endLatLng = entity.getEndLatLng(); | ||
| 152 | + if (endLatLng != null) { | ||
| 153 | + stmt.bindString(20, endLatLng); | ||
| 154 | + } | ||
| 155 | + stmt.bindLong(21, entity.getIsArriveEndPoint() ? 1L: 0L); | ||
| 156 | + | ||
| 157 | + String collStartLatLngName = entity.getCollStartLatLngName(); | ||
| 158 | + if (collStartLatLngName != null) { | ||
| 159 | + stmt.bindString(22, collStartLatLngName); | ||
| 160 | + } | ||
| 161 | + | ||
| 162 | + String collStartLatLng = entity.getCollStartLatLng(); | ||
| 163 | + if (collStartLatLng != null) { | ||
| 164 | + stmt.bindString(23, collStartLatLng); | ||
| 96 | } | 165 | } |
| 97 | } | 166 | } |
| 98 | 167 | ||
| @@ -100,32 +169,71 @@ public class CollUserStepEntityDao extends AbstractDao<CollUserStepEntity, Strin | @@ -100,32 +169,71 @@ public class CollUserStepEntityDao extends AbstractDao<CollUserStepEntity, Strin | ||
| 100 | protected final void bindValues(SQLiteStatement stmt, CollUserStepEntity entity) { | 169 | protected final void bindValues(SQLiteStatement stmt, CollUserStepEntity entity) { |
| 101 | stmt.clearBindings(); | 170 | stmt.clearBindings(); |
| 102 | 171 | ||
| 103 | - String uuid = entity.getUuid(); | ||
| 104 | - if (uuid != null) { | ||
| 105 | - stmt.bindString(1, uuid); | ||
| 106 | - } | ||
| 107 | - | ||
| 108 | String userId = entity.getUserId(); | 172 | String userId = entity.getUserId(); |
| 109 | if (userId != null) { | 173 | if (userId != null) { |
| 110 | - stmt.bindString(2, userId); | 174 | + stmt.bindString(1, userId); |
| 111 | } | 175 | } |
| 112 | 176 | ||
| 113 | String date = entity.getDate(); | 177 | String date = entity.getDate(); |
| 114 | if (date != null) { | 178 | if (date != null) { |
| 115 | - stmt.bindString(3, date); | 179 | + stmt.bindString(2, date); |
| 116 | } | 180 | } |
| 117 | 181 | ||
| 118 | String stepCount = entity.getStepCount(); | 182 | String stepCount = entity.getStepCount(); |
| 119 | if (stepCount != null) { | 183 | if (stepCount != null) { |
| 120 | - stmt.bindString(4, stepCount); | 184 | + stmt.bindString(3, stepCount); |
| 121 | } | 185 | } |
| 122 | - stmt.bindLong(5, entity.getPauseTimeStamp()); | ||
| 123 | - stmt.bindLong(6, entity.getRecordTime()); | ||
| 124 | - stmt.bindDouble(7, entity.getCaloriesCount()); | 186 | + stmt.bindLong(4, entity.getRecordTime()); |
| 187 | + stmt.bindDouble(5, entity.getCaloriesCount()); | ||
| 125 | 188 | ||
| 126 | String serverTraceData = entity.getServerTraceData(); | 189 | String serverTraceData = entity.getServerTraceData(); |
| 127 | if (serverTraceData != null) { | 190 | if (serverTraceData != null) { |
| 128 | - stmt.bindString(8, serverTraceData); | 191 | + stmt.bindString(6, serverTraceData); |
| 192 | + } | ||
| 193 | + stmt.bindLong(7, entity.getStartTimeStamp()); | ||
| 194 | + stmt.bindLong(8, entity.getFinishTimeStamp()); | ||
| 195 | + | ||
| 196 | + String streetId = entity.getStreetId(); | ||
| 197 | + if (streetId != null) { | ||
| 198 | + stmt.bindString(9, streetId); | ||
| 199 | + } | ||
| 200 | + stmt.bindLong(10, entity.getPauseCount()); | ||
| 201 | + stmt.bindLong(11, entity.getUserPauseTimeStamp()); | ||
| 202 | + stmt.bindLong(12, entity.getChronometerBase()); | ||
| 203 | + stmt.bindLong(13, entity.getQueryTraceStartTime()); | ||
| 204 | + stmt.bindLong(14, entity.getQueryTraceEndTime()); | ||
| 205 | + | ||
| 206 | + String queryEntityName = entity.getQueryEntityName(); | ||
| 207 | + if (queryEntityName != null) { | ||
| 208 | + stmt.bindString(15, queryEntityName); | ||
| 209 | + } | ||
| 210 | + stmt.bindLong(16, entity.getContinueTime()); | ||
| 211 | + stmt.bindLong(17, entity.getFenceId()); | ||
| 212 | + | ||
| 213 | + String importPoint = entity.getImportPoint(); | ||
| 214 | + if (importPoint != null) { | ||
| 215 | + stmt.bindString(18, importPoint); | ||
| 216 | + } | ||
| 217 | + | ||
| 218 | + String streetTitle = entity.getStreetTitle(); | ||
| 219 | + if (streetTitle != null) { | ||
| 220 | + stmt.bindString(19, streetTitle); | ||
| 221 | + } | ||
| 222 | + | ||
| 223 | + String endLatLng = entity.getEndLatLng(); | ||
| 224 | + if (endLatLng != null) { | ||
| 225 | + stmt.bindString(20, endLatLng); | ||
| 226 | + } | ||
| 227 | + stmt.bindLong(21, entity.getIsArriveEndPoint() ? 1L: 0L); | ||
| 228 | + | ||
| 229 | + String collStartLatLngName = entity.getCollStartLatLngName(); | ||
| 230 | + if (collStartLatLngName != null) { | ||
| 231 | + stmt.bindString(22, collStartLatLngName); | ||
| 232 | + } | ||
| 233 | + | ||
| 234 | + String collStartLatLng = entity.getCollStartLatLng(); | ||
| 235 | + if (collStartLatLng != null) { | ||
| 236 | + stmt.bindString(23, collStartLatLng); | ||
| 129 | } | 237 | } |
| 130 | } | 238 | } |
| 131 | 239 | ||
| @@ -137,39 +245,69 @@ public class CollUserStepEntityDao extends AbstractDao<CollUserStepEntity, Strin | @@ -137,39 +245,69 @@ public class CollUserStepEntityDao extends AbstractDao<CollUserStepEntity, Strin | ||
| 137 | @Override | 245 | @Override |
| 138 | public CollUserStepEntity readEntity(Cursor cursor, int offset) { | 246 | public CollUserStepEntity readEntity(Cursor cursor, int offset) { |
| 139 | CollUserStepEntity entity = new CollUserStepEntity( // | 247 | CollUserStepEntity entity = new CollUserStepEntity( // |
| 140 | - cursor.isNull(offset + 0) ? null : cursor.getString(offset + 0), // uuid | ||
| 141 | - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // userId | ||
| 142 | - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // date | ||
| 143 | - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // stepCount | ||
| 144 | - cursor.getLong(offset + 4), // pauseTimeStamp | ||
| 145 | - cursor.getLong(offset + 5), // recordTime | ||
| 146 | - cursor.getDouble(offset + 6), // caloriesCount | ||
| 147 | - cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7) // serverTraceData | 248 | + cursor.isNull(offset + 0) ? null : cursor.getString(offset + 0), // userId |
| 249 | + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // date | ||
| 250 | + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // stepCount | ||
| 251 | + cursor.getLong(offset + 3), // recordTime | ||
| 252 | + cursor.getDouble(offset + 4), // caloriesCount | ||
| 253 | + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // serverTraceData | ||
| 254 | + cursor.getLong(offset + 6), // startTimeStamp | ||
| 255 | + cursor.getLong(offset + 7), // finishTimeStamp | ||
| 256 | + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // streetId | ||
| 257 | + cursor.getInt(offset + 9), // pauseCount | ||
| 258 | + cursor.getLong(offset + 10), // userPauseTimeStamp | ||
| 259 | + cursor.getLong(offset + 11), // chronometerBase | ||
| 260 | + cursor.getLong(offset + 12), // queryTraceStartTime | ||
| 261 | + cursor.getLong(offset + 13), // queryTraceEndTime | ||
| 262 | + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14), // queryEntityName | ||
| 263 | + cursor.getLong(offset + 15), // continueTime | ||
| 264 | + cursor.getLong(offset + 16), // fenceId | ||
| 265 | + cursor.isNull(offset + 17) ? null : cursor.getString(offset + 17), // importPoint | ||
| 266 | + cursor.isNull(offset + 18) ? null : cursor.getString(offset + 18), // streetTitle | ||
| 267 | + cursor.isNull(offset + 19) ? null : cursor.getString(offset + 19), // endLatLng | ||
| 268 | + cursor.getShort(offset + 20) != 0, // isArriveEndPoint | ||
| 269 | + cursor.isNull(offset + 21) ? null : cursor.getString(offset + 21), // collStartLatLngName | ||
| 270 | + cursor.isNull(offset + 22) ? null : cursor.getString(offset + 22) // collStartLatLng | ||
| 148 | ); | 271 | ); |
| 149 | return entity; | 272 | return entity; |
| 150 | } | 273 | } |
| 151 | 274 | ||
| 152 | @Override | 275 | @Override |
| 153 | public void readEntity(Cursor cursor, CollUserStepEntity entity, int offset) { | 276 | public void readEntity(Cursor cursor, CollUserStepEntity entity, int offset) { |
| 154 | - entity.setUuid(cursor.isNull(offset + 0) ? null : cursor.getString(offset + 0)); | ||
| 155 | - entity.setUserId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); | ||
| 156 | - entity.setDate(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); | ||
| 157 | - entity.setStepCount(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); | ||
| 158 | - entity.setPauseTimeStamp(cursor.getLong(offset + 4)); | ||
| 159 | - entity.setRecordTime(cursor.getLong(offset + 5)); | ||
| 160 | - entity.setCaloriesCount(cursor.getDouble(offset + 6)); | ||
| 161 | - entity.setServerTraceData(cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7)); | 277 | + entity.setUserId(cursor.isNull(offset + 0) ? null : cursor.getString(offset + 0)); |
| 278 | + entity.setDate(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); | ||
| 279 | + entity.setStepCount(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); | ||
| 280 | + entity.setRecordTime(cursor.getLong(offset + 3)); | ||
| 281 | + entity.setCaloriesCount(cursor.getDouble(offset + 4)); | ||
| 282 | + entity.setServerTraceData(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); | ||
| 283 | + entity.setStartTimeStamp(cursor.getLong(offset + 6)); | ||
| 284 | + entity.setFinishTimeStamp(cursor.getLong(offset + 7)); | ||
| 285 | + entity.setStreetId(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); | ||
| 286 | + entity.setPauseCount(cursor.getInt(offset + 9)); | ||
| 287 | + entity.setUserPauseTimeStamp(cursor.getLong(offset + 10)); | ||
| 288 | + entity.setChronometerBase(cursor.getLong(offset + 11)); | ||
| 289 | + entity.setQueryTraceStartTime(cursor.getLong(offset + 12)); | ||
| 290 | + entity.setQueryTraceEndTime(cursor.getLong(offset + 13)); | ||
| 291 | + entity.setQueryEntityName(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); | ||
| 292 | + entity.setContinueTime(cursor.getLong(offset + 15)); | ||
| 293 | + entity.setFenceId(cursor.getLong(offset + 16)); | ||
| 294 | + entity.setImportPoint(cursor.isNull(offset + 17) ? null : cursor.getString(offset + 17)); | ||
| 295 | + entity.setStreetTitle(cursor.isNull(offset + 18) ? null : cursor.getString(offset + 18)); | ||
| 296 | + entity.setEndLatLng(cursor.isNull(offset + 19) ? null : cursor.getString(offset + 19)); | ||
| 297 | + entity.setIsArriveEndPoint(cursor.getShort(offset + 20) != 0); | ||
| 298 | + entity.setCollStartLatLngName(cursor.isNull(offset + 21) ? null : cursor.getString(offset + 21)); | ||
| 299 | + entity.setCollStartLatLng(cursor.isNull(offset + 22) ? null : cursor.getString(offset + 22)); | ||
| 162 | } | 300 | } |
| 163 | 301 | ||
| 164 | @Override | 302 | @Override |
| 165 | protected final String updateKeyAfterInsert(CollUserStepEntity entity, long rowId) { | 303 | protected final String updateKeyAfterInsert(CollUserStepEntity entity, long rowId) { |
| 166 | - return entity.getUuid(); | 304 | + return entity.getUserId(); |
| 167 | } | 305 | } |
| 168 | 306 | ||
| 169 | @Override | 307 | @Override |
| 170 | public String getKey(CollUserStepEntity entity) { | 308 | public String getKey(CollUserStepEntity entity) { |
| 171 | if(entity != null) { | 309 | if(entity != null) { |
| 172 | - return entity.getUuid(); | 310 | + return entity.getUserId(); |
| 173 | } else { | 311 | } else { |
| 174 | return null; | 312 | return null; |
| 175 | } | 313 | } |
| @@ -177,7 +315,7 @@ public class CollUserStepEntityDao extends AbstractDao<CollUserStepEntity, Strin | @@ -177,7 +315,7 @@ public class CollUserStepEntityDao extends AbstractDao<CollUserStepEntity, Strin | ||
| 177 | 315 | ||
| 178 | @Override | 316 | @Override |
| 179 | public boolean hasKey(CollUserStepEntity entity) { | 317 | public boolean hasKey(CollUserStepEntity entity) { |
| 180 | - return entity.getUuid() != null; | 318 | + return entity.getUserId() != null; |
| 181 | } | 319 | } |
| 182 | 320 | ||
| 183 | @Override | 321 | @Override |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/sql/dao/DaoMaster.java
| @@ -24,6 +24,7 @@ public class DaoMaster extends AbstractDaoMaster { | @@ -24,6 +24,7 @@ public class DaoMaster extends AbstractDaoMaster { | ||
| 24 | CollUserStepEntityDao.createTable(db, ifNotExists); | 24 | CollUserStepEntityDao.createTable(db, ifNotExists); |
| 25 | FailedEntityDao.createTable(db, ifNotExists); | 25 | FailedEntityDao.createTable(db, ifNotExists); |
| 26 | UserStepEntityDao.createTable(db, ifNotExists); | 26 | UserStepEntityDao.createTable(db, ifNotExists); |
| 27 | + CollFailedEntityDao.createTable(db, ifNotExists); | ||
| 27 | } | 28 | } |
| 28 | 29 | ||
| 29 | /** Drops underlying database table using DAOs. */ | 30 | /** Drops underlying database table using DAOs. */ |
| @@ -31,6 +32,7 @@ public class DaoMaster extends AbstractDaoMaster { | @@ -31,6 +32,7 @@ public class DaoMaster extends AbstractDaoMaster { | ||
| 31 | CollUserStepEntityDao.dropTable(db, ifExists); | 32 | CollUserStepEntityDao.dropTable(db, ifExists); |
| 32 | FailedEntityDao.dropTable(db, ifExists); | 33 | FailedEntityDao.dropTable(db, ifExists); |
| 33 | UserStepEntityDao.dropTable(db, ifExists); | 34 | UserStepEntityDao.dropTable(db, ifExists); |
| 35 | + CollFailedEntityDao.dropTable(db, ifExists); | ||
| 34 | } | 36 | } |
| 35 | 37 | ||
| 36 | /** | 38 | /** |
| @@ -52,6 +54,7 @@ public class DaoMaster extends AbstractDaoMaster { | @@ -52,6 +54,7 @@ public class DaoMaster extends AbstractDaoMaster { | ||
| 52 | registerDaoClass(CollUserStepEntityDao.class); | 54 | registerDaoClass(CollUserStepEntityDao.class); |
| 53 | registerDaoClass(FailedEntityDao.class); | 55 | registerDaoClass(FailedEntityDao.class); |
| 54 | registerDaoClass(UserStepEntityDao.class); | 56 | registerDaoClass(UserStepEntityDao.class); |
| 57 | + registerDaoClass(CollFailedEntityDao.class); | ||
| 55 | } | 58 | } |
| 56 | 59 | ||
| 57 | public DaoSession newSession() { | 60 | public DaoSession newSession() { |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/sql/dao/DaoSession.java
| @@ -11,10 +11,12 @@ import org.greenrobot.greendao.internal.DaoConfig; | @@ -11,10 +11,12 @@ import org.greenrobot.greendao.internal.DaoConfig; | ||
| 11 | import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity; | 11 | import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity; |
| 12 | import com.cnlive.moudle.pedometer.sql.entity.FailedEntity; | 12 | import com.cnlive.moudle.pedometer.sql.entity.FailedEntity; |
| 13 | import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity; | 13 | import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity; |
| 14 | +import com.cnlive.moudle.pedometer.sql.entity.CollFailedEntity; | ||
| 14 | 15 | ||
| 15 | import com.cnlive.moudle.pedometer.sql.dao.CollUserStepEntityDao; | 16 | import com.cnlive.moudle.pedometer.sql.dao.CollUserStepEntityDao; |
| 16 | import com.cnlive.moudle.pedometer.sql.dao.FailedEntityDao; | 17 | import com.cnlive.moudle.pedometer.sql.dao.FailedEntityDao; |
| 17 | import com.cnlive.moudle.pedometer.sql.dao.UserStepEntityDao; | 18 | import com.cnlive.moudle.pedometer.sql.dao.UserStepEntityDao; |
| 19 | +import com.cnlive.moudle.pedometer.sql.dao.CollFailedEntityDao; | ||
| 18 | 20 | ||
| 19 | // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. | 21 | // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. |
| 20 | 22 | ||
| @@ -28,10 +30,12 @@ public class DaoSession extends AbstractDaoSession { | @@ -28,10 +30,12 @@ public class DaoSession extends AbstractDaoSession { | ||
| 28 | private final DaoConfig collUserStepEntityDaoConfig; | 30 | private final DaoConfig collUserStepEntityDaoConfig; |
| 29 | private final DaoConfig failedEntityDaoConfig; | 31 | private final DaoConfig failedEntityDaoConfig; |
| 30 | private final DaoConfig userStepEntityDaoConfig; | 32 | private final DaoConfig userStepEntityDaoConfig; |
| 33 | + private final DaoConfig collFailedEntityDaoConfig; | ||
| 31 | 34 | ||
| 32 | private final CollUserStepEntityDao collUserStepEntityDao; | 35 | private final CollUserStepEntityDao collUserStepEntityDao; |
| 33 | private final FailedEntityDao failedEntityDao; | 36 | private final FailedEntityDao failedEntityDao; |
| 34 | private final UserStepEntityDao userStepEntityDao; | 37 | private final UserStepEntityDao userStepEntityDao; |
| 38 | + private final CollFailedEntityDao collFailedEntityDao; | ||
| 35 | 39 | ||
| 36 | public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig> | 40 | public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig> |
| 37 | daoConfigMap) { | 41 | daoConfigMap) { |
| @@ -46,19 +50,25 @@ public class DaoSession extends AbstractDaoSession { | @@ -46,19 +50,25 @@ public class DaoSession extends AbstractDaoSession { | ||
| 46 | userStepEntityDaoConfig = daoConfigMap.get(UserStepEntityDao.class).clone(); | 50 | userStepEntityDaoConfig = daoConfigMap.get(UserStepEntityDao.class).clone(); |
| 47 | userStepEntityDaoConfig.initIdentityScope(type); | 51 | userStepEntityDaoConfig.initIdentityScope(type); |
| 48 | 52 | ||
| 53 | + collFailedEntityDaoConfig = daoConfigMap.get(CollFailedEntityDao.class).clone(); | ||
| 54 | + collFailedEntityDaoConfig.initIdentityScope(type); | ||
| 55 | + | ||
| 49 | collUserStepEntityDao = new CollUserStepEntityDao(collUserStepEntityDaoConfig, this); | 56 | collUserStepEntityDao = new CollUserStepEntityDao(collUserStepEntityDaoConfig, this); |
| 50 | failedEntityDao = new FailedEntityDao(failedEntityDaoConfig, this); | 57 | failedEntityDao = new FailedEntityDao(failedEntityDaoConfig, this); |
| 51 | userStepEntityDao = new UserStepEntityDao(userStepEntityDaoConfig, this); | 58 | userStepEntityDao = new UserStepEntityDao(userStepEntityDaoConfig, this); |
| 59 | + collFailedEntityDao = new CollFailedEntityDao(collFailedEntityDaoConfig, this); | ||
| 52 | 60 | ||
| 53 | registerDao(CollUserStepEntity.class, collUserStepEntityDao); | 61 | registerDao(CollUserStepEntity.class, collUserStepEntityDao); |
| 54 | registerDao(FailedEntity.class, failedEntityDao); | 62 | registerDao(FailedEntity.class, failedEntityDao); |
| 55 | registerDao(UserStepEntity.class, userStepEntityDao); | 63 | registerDao(UserStepEntity.class, userStepEntityDao); |
| 64 | + registerDao(CollFailedEntity.class, collFailedEntityDao); | ||
| 56 | } | 65 | } |
| 57 | 66 | ||
| 58 | public void clear() { | 67 | public void clear() { |
| 59 | collUserStepEntityDaoConfig.clearIdentityScope(); | 68 | collUserStepEntityDaoConfig.clearIdentityScope(); |
| 60 | failedEntityDaoConfig.clearIdentityScope(); | 69 | failedEntityDaoConfig.clearIdentityScope(); |
| 61 | userStepEntityDaoConfig.clearIdentityScope(); | 70 | userStepEntityDaoConfig.clearIdentityScope(); |
| 71 | + collFailedEntityDaoConfig.clearIdentityScope(); | ||
| 62 | } | 72 | } |
| 63 | 73 | ||
| 64 | public CollUserStepEntityDao getCollUserStepEntityDao() { | 74 | public CollUserStepEntityDao getCollUserStepEntityDao() { |
| @@ -73,4 +83,8 @@ public class DaoSession extends AbstractDaoSession { | @@ -73,4 +83,8 @@ public class DaoSession extends AbstractDaoSession { | ||
| 73 | return userStepEntityDao; | 83 | return userStepEntityDao; |
| 74 | } | 84 | } |
| 75 | 85 | ||
| 86 | + public CollFailedEntityDao getCollFailedEntityDao() { | ||
| 87 | + return collFailedEntityDao; | ||
| 88 | + } | ||
| 89 | + | ||
| 76 | } | 90 | } |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/sql/entity/CollFailedEntity.java
0 → 100644
| 1 | +package com.cnlive.moudle.pedometer.sql.entity; | ||
| 2 | + | ||
| 3 | +import org.greenrobot.greendao.annotation.Entity; | ||
| 4 | +import org.greenrobot.greendao.annotation.Generated; | ||
| 5 | +import org.greenrobot.greendao.annotation.Id; | ||
| 6 | + | ||
| 7 | +import java.io.Serializable; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * 上传失败列表 | ||
| 11 | + * | ||
| 12 | + * @author ShinnyYang | ||
| 13 | + */ | ||
| 14 | +@Entity | ||
| 15 | +public class CollFailedEntity implements Serializable { | ||
| 16 | + static final long serialVersionUID = 02L; | ||
| 17 | + @Id | ||
| 18 | + private String uuid;//主键 | ||
| 19 | + private String uid;//用户id | ||
| 20 | + private boolean isPause;//是否暂停 | ||
| 21 | + private long userPauseTime;//用户暂停时间 | ||
| 22 | + private long usrContinueTime;//用户继续时间 | ||
| 23 | + private String isFinish;//是否完成 | ||
| 24 | + private String time;//用时 | ||
| 25 | + private String speed;//配速 | ||
| 26 | + private String step;//步数 | ||
| 27 | + private String distance;//距离 | ||
| 28 | + private String startPoint;//开始地点 | ||
| 29 | + private String endPoint;//结束地点 | ||
| 30 | + private long streetTraceStartTime;//赛道开始时间 | ||
| 31 | + private long streetTraceEndTime;//赛道结束时间 | ||
| 32 | + private String entityName;//实体名称 | ||
| 33 | + private long userStartTime;//用户开始时间 | ||
| 34 | + private long userEndTime;//用户结束时间 | ||
| 35 | + private String importPoint;//关键点 | ||
| 36 | + private String streetId;//赛事id | ||
| 37 | + private String streetTitle;//赛道标题 | ||
| 38 | + private long creatTimeStamp;//数据创建的时间 | ||
| 39 | + private boolean isArriveEndPoint;//是否到达终点 | ||
| 40 | + @Generated(hash = 1512309823) | ||
| 41 | + public CollFailedEntity(String uuid, String uid, boolean isPause, | ||
| 42 | + long userPauseTime, long usrContinueTime, String isFinish, String time, | ||
| 43 | + String speed, String step, String distance, String startPoint, | ||
| 44 | + String endPoint, long streetTraceStartTime, long streetTraceEndTime, | ||
| 45 | + String entityName, long userStartTime, long userEndTime, | ||
| 46 | + String importPoint, String streetId, String streetTitle, | ||
| 47 | + long creatTimeStamp, boolean isArriveEndPoint) { | ||
| 48 | + this.uuid = uuid; | ||
| 49 | + this.uid = uid; | ||
| 50 | + this.isPause = isPause; | ||
| 51 | + this.userPauseTime = userPauseTime; | ||
| 52 | + this.usrContinueTime = usrContinueTime; | ||
| 53 | + this.isFinish = isFinish; | ||
| 54 | + this.time = time; | ||
| 55 | + this.speed = speed; | ||
| 56 | + this.step = step; | ||
| 57 | + this.distance = distance; | ||
| 58 | + this.startPoint = startPoint; | ||
| 59 | + this.endPoint = endPoint; | ||
| 60 | + this.streetTraceStartTime = streetTraceStartTime; | ||
| 61 | + this.streetTraceEndTime = streetTraceEndTime; | ||
| 62 | + this.entityName = entityName; | ||
| 63 | + this.userStartTime = userStartTime; | ||
| 64 | + this.userEndTime = userEndTime; | ||
| 65 | + this.importPoint = importPoint; | ||
| 66 | + this.streetId = streetId; | ||
| 67 | + this.streetTitle = streetTitle; | ||
| 68 | + this.creatTimeStamp = creatTimeStamp; | ||
| 69 | + this.isArriveEndPoint = isArriveEndPoint; | ||
| 70 | + } | ||
| 71 | + @Generated(hash = 1910302097) | ||
| 72 | + public CollFailedEntity() { | ||
| 73 | + } | ||
| 74 | + public String getUuid() { | ||
| 75 | + return this.uuid; | ||
| 76 | + } | ||
| 77 | + public void setUuid(String uuid) { | ||
| 78 | + this.uuid = uuid; | ||
| 79 | + } | ||
| 80 | + public String getUid() { | ||
| 81 | + return this.uid; | ||
| 82 | + } | ||
| 83 | + public void setUid(String uid) { | ||
| 84 | + this.uid = uid; | ||
| 85 | + } | ||
| 86 | + public boolean getIsPause() { | ||
| 87 | + return this.isPause; | ||
| 88 | + } | ||
| 89 | + public void setIsPause(boolean isPause) { | ||
| 90 | + this.isPause = isPause; | ||
| 91 | + } | ||
| 92 | + public long getUserPauseTime() { | ||
| 93 | + return this.userPauseTime; | ||
| 94 | + } | ||
| 95 | + public void setUserPauseTime(long userPauseTime) { | ||
| 96 | + this.userPauseTime = userPauseTime; | ||
| 97 | + } | ||
| 98 | + public long getUsrContinueTime() { | ||
| 99 | + return this.usrContinueTime; | ||
| 100 | + } | ||
| 101 | + public void setUsrContinueTime(long usrContinueTime) { | ||
| 102 | + this.usrContinueTime = usrContinueTime; | ||
| 103 | + } | ||
| 104 | + public String getIsFinish() { | ||
| 105 | + return this.isFinish; | ||
| 106 | + } | ||
| 107 | + public void setIsFinish(String isFinish) { | ||
| 108 | + this.isFinish = isFinish; | ||
| 109 | + } | ||
| 110 | + public String getTime() { | ||
| 111 | + return this.time; | ||
| 112 | + } | ||
| 113 | + public void setTime(String time) { | ||
| 114 | + this.time = time; | ||
| 115 | + } | ||
| 116 | + public String getSpeed() { | ||
| 117 | + return this.speed; | ||
| 118 | + } | ||
| 119 | + public void setSpeed(String speed) { | ||
| 120 | + this.speed = speed; | ||
| 121 | + } | ||
| 122 | + public String getStep() { | ||
| 123 | + return this.step; | ||
| 124 | + } | ||
| 125 | + public void setStep(String step) { | ||
| 126 | + this.step = step; | ||
| 127 | + } | ||
| 128 | + public String getDistance() { | ||
| 129 | + return this.distance; | ||
| 130 | + } | ||
| 131 | + public void setDistance(String distance) { | ||
| 132 | + this.distance = distance; | ||
| 133 | + } | ||
| 134 | + public String getStartPoint() { | ||
| 135 | + return this.startPoint; | ||
| 136 | + } | ||
| 137 | + public void setStartPoint(String startPoint) { | ||
| 138 | + this.startPoint = startPoint; | ||
| 139 | + } | ||
| 140 | + public String getEndPoint() { | ||
| 141 | + return this.endPoint; | ||
| 142 | + } | ||
| 143 | + public void setEndPoint(String endPoint) { | ||
| 144 | + this.endPoint = endPoint; | ||
| 145 | + } | ||
| 146 | + public long getStreetTraceStartTime() { | ||
| 147 | + return this.streetTraceStartTime; | ||
| 148 | + } | ||
| 149 | + public void setStreetTraceStartTime(long streetTraceStartTime) { | ||
| 150 | + this.streetTraceStartTime = streetTraceStartTime; | ||
| 151 | + } | ||
| 152 | + public long getStreetTraceEndTime() { | ||
| 153 | + return this.streetTraceEndTime; | ||
| 154 | + } | ||
| 155 | + public void setStreetTraceEndTime(long streetTraceEndTime) { | ||
| 156 | + this.streetTraceEndTime = streetTraceEndTime; | ||
| 157 | + } | ||
| 158 | + public String getEntityName() { | ||
| 159 | + return this.entityName; | ||
| 160 | + } | ||
| 161 | + public void setEntityName(String entityName) { | ||
| 162 | + this.entityName = entityName; | ||
| 163 | + } | ||
| 164 | + public long getUserStartTime() { | ||
| 165 | + return this.userStartTime; | ||
| 166 | + } | ||
| 167 | + public void setUserStartTime(long userStartTime) { | ||
| 168 | + this.userStartTime = userStartTime; | ||
| 169 | + } | ||
| 170 | + public long getUserEndTime() { | ||
| 171 | + return this.userEndTime; | ||
| 172 | + } | ||
| 173 | + public void setUserEndTime(long userEndTime) { | ||
| 174 | + this.userEndTime = userEndTime; | ||
| 175 | + } | ||
| 176 | + public String getImportPoint() { | ||
| 177 | + return this.importPoint; | ||
| 178 | + } | ||
| 179 | + public void setImportPoint(String importPoint) { | ||
| 180 | + this.importPoint = importPoint; | ||
| 181 | + } | ||
| 182 | + public String getStreetId() { | ||
| 183 | + return this.streetId; | ||
| 184 | + } | ||
| 185 | + public void setStreetId(String streetId) { | ||
| 186 | + this.streetId = streetId; | ||
| 187 | + } | ||
| 188 | + public String getStreetTitle() { | ||
| 189 | + return this.streetTitle; | ||
| 190 | + } | ||
| 191 | + public void setStreetTitle(String streetTitle) { | ||
| 192 | + this.streetTitle = streetTitle; | ||
| 193 | + } | ||
| 194 | + public long getCreatTimeStamp() { | ||
| 195 | + return this.creatTimeStamp; | ||
| 196 | + } | ||
| 197 | + public void setCreatTimeStamp(long creatTimeStamp) { | ||
| 198 | + this.creatTimeStamp = creatTimeStamp; | ||
| 199 | + } | ||
| 200 | + public boolean getIsArriveEndPoint() { | ||
| 201 | + return this.isArriveEndPoint; | ||
| 202 | + } | ||
| 203 | + public void setIsArriveEndPoint(boolean isArriveEndPoint) { | ||
| 204 | + this.isArriveEndPoint = isArriveEndPoint; | ||
| 205 | + } | ||
| 206 | + | ||
| 207 | + | ||
| 208 | + | ||
| 209 | +} |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/sql/entity/CollUserStepEntity.java
| @@ -7,79 +7,252 @@ import org.greenrobot.greendao.annotation.Id; | @@ -7,79 +7,252 @@ import org.greenrobot.greendao.annotation.Id; | ||
| 7 | @Entity | 7 | @Entity |
| 8 | public class CollUserStepEntity { | 8 | public class CollUserStepEntity { |
| 9 | @Id | 9 | @Id |
| 10 | - private String uuid; | ||
| 11 | private String userId; | 10 | private String userId; |
| 12 | private String date; | 11 | private String date; |
| 13 | private String stepCount; | 12 | private String stepCount; |
| 14 | - private long pauseTimeStamp;//暂停时间戳 | ||
| 15 | private long recordTime;//暂停时间 | 13 | private long recordTime;//暂停时间 |
| 16 | private double caloriesCount;//卡路里 | 14 | private double caloriesCount;//卡路里 |
| 17 | private String serverTraceData;//服务端赛道数据 | 15 | private String serverTraceData;//服务端赛道数据 |
| 18 | - @Generated(hash = 1080314982) | ||
| 19 | - public CollUserStepEntity(String uuid, String userId, String date, | ||
| 20 | - String stepCount, long pauseTimeStamp, long recordTime, | ||
| 21 | - double caloriesCount, String serverTraceData) { | ||
| 22 | - this.uuid = uuid; | 16 | + private long startTimeStamp; |
| 17 | + private long finishTimeStamp; | ||
| 18 | + private String streetId;//赛事ID | ||
| 19 | + private int pauseCount;//暂停次数 | ||
| 20 | + private long userPauseTimeStamp;//暂停时间戳 | ||
| 21 | + private long chronometerBase;//计时器设置基础时间 | ||
| 22 | + private long queryTraceStartTime;//从服务器获取的开始时间呢 | ||
| 23 | + private long queryTraceEndTime;//从服务器获取的结束时间呢 | ||
| 24 | + private String queryEntityName;//从服务器获取的运营人员的实体名称 | ||
| 25 | + private long continueTime;//继续运动时间 | ||
| 26 | + private long fenceId;//围栏id | ||
| 27 | + private String importPoint;//关键点 | ||
| 28 | + private String streetTitle;//赛事标题 | ||
| 29 | + private String endLatLng;//终点坐标 | ||
| 30 | + private boolean isArriveEndPoint;//是否到达终点 | ||
| 31 | + private String collStartLatLngName;//运营打点名称 | ||
| 32 | + private String collStartLatLng;//运营打点名称 | ||
| 33 | + | ||
| 34 | + @Generated(hash = 1127995406) | ||
| 35 | + public CollUserStepEntity(String userId, String date, String stepCount, long recordTime, double caloriesCount, | ||
| 36 | + String serverTraceData, long startTimeStamp, long finishTimeStamp, String streetId, int pauseCount, | ||
| 37 | + long userPauseTimeStamp, long chronometerBase, long queryTraceStartTime, long queryTraceEndTime, | ||
| 38 | + String queryEntityName, long continueTime, long fenceId, String importPoint, String streetTitle, | ||
| 39 | + String endLatLng, boolean isArriveEndPoint, String collStartLatLngName, String collStartLatLng) { | ||
| 23 | this.userId = userId; | 40 | this.userId = userId; |
| 24 | this.date = date; | 41 | this.date = date; |
| 25 | this.stepCount = stepCount; | 42 | this.stepCount = stepCount; |
| 26 | - this.pauseTimeStamp = pauseTimeStamp; | ||
| 27 | this.recordTime = recordTime; | 43 | this.recordTime = recordTime; |
| 28 | this.caloriesCount = caloriesCount; | 44 | this.caloriesCount = caloriesCount; |
| 29 | this.serverTraceData = serverTraceData; | 45 | this.serverTraceData = serverTraceData; |
| 46 | + this.startTimeStamp = startTimeStamp; | ||
| 47 | + this.finishTimeStamp = finishTimeStamp; | ||
| 48 | + this.streetId = streetId; | ||
| 49 | + this.pauseCount = pauseCount; | ||
| 50 | + this.userPauseTimeStamp = userPauseTimeStamp; | ||
| 51 | + this.chronometerBase = chronometerBase; | ||
| 52 | + this.queryTraceStartTime = queryTraceStartTime; | ||
| 53 | + this.queryTraceEndTime = queryTraceEndTime; | ||
| 54 | + this.queryEntityName = queryEntityName; | ||
| 55 | + this.continueTime = continueTime; | ||
| 56 | + this.fenceId = fenceId; | ||
| 57 | + this.importPoint = importPoint; | ||
| 58 | + this.streetTitle = streetTitle; | ||
| 59 | + this.endLatLng = endLatLng; | ||
| 60 | + this.isArriveEndPoint = isArriveEndPoint; | ||
| 61 | + this.collStartLatLngName = collStartLatLngName; | ||
| 62 | + this.collStartLatLng = collStartLatLng; | ||
| 30 | } | 63 | } |
| 64 | + | ||
| 31 | @Generated(hash = 681143087) | 65 | @Generated(hash = 681143087) |
| 32 | public CollUserStepEntity() { | 66 | public CollUserStepEntity() { |
| 33 | } | 67 | } |
| 34 | - public String getUuid() { | ||
| 35 | - return this.uuid; | ||
| 36 | - } | ||
| 37 | - public void setUuid(String uuid) { | ||
| 38 | - this.uuid = uuid; | ||
| 39 | - } | 68 | + |
| 40 | public String getUserId() { | 69 | public String getUserId() { |
| 41 | return this.userId; | 70 | return this.userId; |
| 42 | } | 71 | } |
| 72 | + | ||
| 43 | public void setUserId(String userId) { | 73 | public void setUserId(String userId) { |
| 44 | this.userId = userId; | 74 | this.userId = userId; |
| 45 | } | 75 | } |
| 76 | + | ||
| 46 | public String getDate() { | 77 | public String getDate() { |
| 47 | return this.date; | 78 | return this.date; |
| 48 | } | 79 | } |
| 80 | + | ||
| 49 | public void setDate(String date) { | 81 | public void setDate(String date) { |
| 50 | this.date = date; | 82 | this.date = date; |
| 51 | } | 83 | } |
| 84 | + | ||
| 52 | public String getStepCount() { | 85 | public String getStepCount() { |
| 53 | return this.stepCount; | 86 | return this.stepCount; |
| 54 | } | 87 | } |
| 88 | + | ||
| 55 | public void setStepCount(String stepCount) { | 89 | public void setStepCount(String stepCount) { |
| 56 | this.stepCount = stepCount; | 90 | this.stepCount = stepCount; |
| 57 | } | 91 | } |
| 58 | - public long getPauseTimeStamp() { | ||
| 59 | - return this.pauseTimeStamp; | ||
| 60 | - } | ||
| 61 | - public void setPauseTimeStamp(long pauseTimeStamp) { | ||
| 62 | - this.pauseTimeStamp = pauseTimeStamp; | ||
| 63 | - } | 92 | + |
| 64 | public long getRecordTime() { | 93 | public long getRecordTime() { |
| 65 | return this.recordTime; | 94 | return this.recordTime; |
| 66 | } | 95 | } |
| 96 | + | ||
| 67 | public void setRecordTime(long recordTime) { | 97 | public void setRecordTime(long recordTime) { |
| 68 | this.recordTime = recordTime; | 98 | this.recordTime = recordTime; |
| 69 | } | 99 | } |
| 100 | + | ||
| 70 | public double getCaloriesCount() { | 101 | public double getCaloriesCount() { |
| 71 | return this.caloriesCount; | 102 | return this.caloriesCount; |
| 72 | } | 103 | } |
| 104 | + | ||
| 73 | public void setCaloriesCount(double caloriesCount) { | 105 | public void setCaloriesCount(double caloriesCount) { |
| 74 | this.caloriesCount = caloriesCount; | 106 | this.caloriesCount = caloriesCount; |
| 75 | } | 107 | } |
| 108 | + | ||
| 76 | public String getServerTraceData() { | 109 | public String getServerTraceData() { |
| 77 | return this.serverTraceData; | 110 | return this.serverTraceData; |
| 78 | } | 111 | } |
| 112 | + | ||
| 79 | public void setServerTraceData(String serverTraceData) { | 113 | public void setServerTraceData(String serverTraceData) { |
| 80 | this.serverTraceData = serverTraceData; | 114 | this.serverTraceData = serverTraceData; |
| 81 | } | 115 | } |
| 82 | 116 | ||
| 83 | 117 | ||
| 118 | + public long getStartTimeStamp() { | ||
| 119 | + return this.startTimeStamp; | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | + public void setStartTimeStamp(long startTimeStamp) { | ||
| 123 | + this.startTimeStamp = startTimeStamp; | ||
| 124 | + } | ||
| 125 | + | ||
| 126 | + public long getFinishTimeStamp() { | ||
| 127 | + return this.finishTimeStamp; | ||
| 128 | + } | ||
| 129 | + | ||
| 130 | + public void setFinishTimeStamp(long finishTimeStamp) { | ||
| 131 | + this.finishTimeStamp = finishTimeStamp; | ||
| 132 | + } | ||
| 133 | + | ||
| 134 | + public String getStreetId() { | ||
| 135 | + return this.streetId; | ||
| 136 | + } | ||
| 137 | + | ||
| 138 | + public void setStreetId(String streetId) { | ||
| 139 | + this.streetId = streetId; | ||
| 140 | + } | ||
| 141 | + | ||
| 142 | + public int getPauseCount() { | ||
| 143 | + return this.pauseCount; | ||
| 144 | + } | ||
| 145 | + | ||
| 146 | + public void setPauseCount(int pauseCount) { | ||
| 147 | + this.pauseCount = pauseCount; | ||
| 148 | + } | ||
| 149 | + | ||
| 150 | + public long getUserPauseTimeStamp() { | ||
| 151 | + return this.userPauseTimeStamp; | ||
| 152 | + } | ||
| 153 | + | ||
| 154 | + public void setUserPauseTimeStamp(long userPauseTimeStamp) { | ||
| 155 | + this.userPauseTimeStamp = userPauseTimeStamp; | ||
| 156 | + } | ||
| 157 | + | ||
| 158 | + public long getChronometerBase() { | ||
| 159 | + return this.chronometerBase; | ||
| 160 | + } | ||
| 161 | + | ||
| 162 | + public void setChronometerBase(long chronometerBase) { | ||
| 163 | + this.chronometerBase = chronometerBase; | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + public long getQueryTraceStartTime() { | ||
| 167 | + return this.queryTraceStartTime; | ||
| 168 | + } | ||
| 169 | + | ||
| 170 | + public void setQueryTraceStartTime(long queryTraceStartTime) { | ||
| 171 | + this.queryTraceStartTime = queryTraceStartTime; | ||
| 172 | + } | ||
| 173 | + | ||
| 174 | + public long getQueryTraceEndTime() { | ||
| 175 | + return this.queryTraceEndTime; | ||
| 176 | + } | ||
| 177 | + | ||
| 178 | + public void setQueryTraceEndTime(long queryTraceEndTime) { | ||
| 179 | + this.queryTraceEndTime = queryTraceEndTime; | ||
| 180 | + } | ||
| 181 | + | ||
| 182 | + public String getQueryEntityName() { | ||
| 183 | + return this.queryEntityName; | ||
| 184 | + } | ||
| 185 | + | ||
| 186 | + public void setQueryEntityName(String queryEntityName) { | ||
| 187 | + this.queryEntityName = queryEntityName; | ||
| 188 | + } | ||
| 189 | + | ||
| 190 | + public long getContinueTime() { | ||
| 191 | + return this.continueTime; | ||
| 192 | + } | ||
| 193 | + | ||
| 194 | + public void setContinueTime(long continueTime) { | ||
| 195 | + this.continueTime = continueTime; | ||
| 196 | + } | ||
| 197 | + | ||
| 198 | + public long getFenceId() { | ||
| 199 | + return this.fenceId; | ||
| 200 | + } | ||
| 201 | + | ||
| 202 | + public void setFenceId(long fenceId) { | ||
| 203 | + this.fenceId = fenceId; | ||
| 204 | + } | ||
| 205 | + | ||
| 206 | + public String getImportPoint() { | ||
| 207 | + return this.importPoint; | ||
| 208 | + } | ||
| 209 | + | ||
| 210 | + public void setImportPoint(String importPoint) { | ||
| 211 | + this.importPoint = importPoint; | ||
| 212 | + } | ||
| 213 | + | ||
| 214 | + public String getStreetTitle() { | ||
| 215 | + return this.streetTitle; | ||
| 216 | + } | ||
| 217 | + | ||
| 218 | + public void setStreetTitle(String streetTitle) { | ||
| 219 | + this.streetTitle = streetTitle; | ||
| 220 | + } | ||
| 221 | + | ||
| 222 | + public String getEndLatLng() { | ||
| 223 | + return this.endLatLng; | ||
| 224 | + } | ||
| 225 | + | ||
| 226 | + public void setEndLatLng(String endLatLng) { | ||
| 227 | + this.endLatLng = endLatLng; | ||
| 228 | + } | ||
| 229 | + | ||
| 230 | + public boolean getIsArriveEndPoint() { | ||
| 231 | + return this.isArriveEndPoint; | ||
| 232 | + } | ||
| 233 | + | ||
| 234 | + public void setIsArriveEndPoint(boolean isArriveEndPoint) { | ||
| 235 | + this.isArriveEndPoint = isArriveEndPoint; | ||
| 236 | + } | ||
| 237 | + | ||
| 238 | + public String getCollStartLatLngName() { | ||
| 239 | + return this.collStartLatLngName; | ||
| 240 | + } | ||
| 241 | + | ||
| 242 | + public void setCollStartLatLngName(String collStartLatLngName) { | ||
| 243 | + this.collStartLatLngName = collStartLatLngName; | ||
| 244 | + } | ||
| 245 | + | ||
| 246 | + public String getCollStartLatLng() { | ||
| 247 | + return this.collStartLatLng; | ||
| 248 | + } | ||
| 249 | + | ||
| 250 | + public void setCollStartLatLng(String collStartLatLng) { | ||
| 251 | + this.collStartLatLng = collStartLatLng; | ||
| 252 | + } | ||
| 253 | + | ||
| 254 | + | ||
| 255 | + | ||
| 256 | + | ||
| 84 | 257 | ||
| 85 | } | 258 | } |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/utils/CollStepUtil.java deleted
100644 → 0
| 1 | -package com.cnlive.moudle.pedometer.utils; | ||
| 2 | - | ||
| 3 | -import android.content.Context; | ||
| 4 | -import android.text.TextUtils; | ||
| 5 | -import android.util.Log; | ||
| 6 | - | ||
| 7 | -import com.cnlive.moudle.pedometer.sql.dao.CollUserStepEntityDao; | ||
| 8 | -import com.cnlive.moudle.pedometer.sql.dao.UserStepEntityDao; | ||
| 9 | -import com.cnlive.moudle.pedometer.sql.db.DbCore; | ||
| 10 | -import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity; | ||
| 11 | -import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity; | ||
| 12 | - | ||
| 13 | -import java.text.SimpleDateFormat; | ||
| 14 | -import java.util.Date; | ||
| 15 | -import java.util.List; | ||
| 16 | - | ||
| 17 | -/** | ||
| 18 | - * 步数工具 | ||
| 19 | - * | ||
| 20 | - * @author ShinnyYang | ||
| 21 | - */ | ||
| 22 | -public class CollStepUtil { | ||
| 23 | - private static final String TAG = "CollStepUtil"; | ||
| 24 | - private static final String dbName = "CollStep.db"; | ||
| 25 | - | ||
| 26 | - | ||
| 27 | - /** | ||
| 28 | - * 计算配速 | ||
| 29 | - */ | ||
| 30 | - public static String getPaceSpeed(double second, double distance) { | ||
| 31 | - if (distance != 0) { | ||
| 32 | - //计算分 | ||
| 33 | - int minute = (int) (second / distance / 60); | ||
| 34 | - //获取秒 | ||
| 35 | - double miaoMin = ((double) (second / distance / 60)) - ((int) (second / distance / 60)); | ||
| 36 | - int miao = (int) (miaoMin * 60); | ||
| 37 | - return minute + "'" + miao + "''"; | ||
| 38 | - } else { | ||
| 39 | - return "--"; | ||
| 40 | - } | ||
| 41 | - } | ||
| 42 | - | ||
| 43 | - /** | ||
| 44 | - * 更新数据 | ||
| 45 | - * | ||
| 46 | - * @param context | ||
| 47 | - * @param userStepEntity | ||
| 48 | - */ | ||
| 49 | - public static void updateStepData(Context context, CollUserStepEntity userStepEntity) { | ||
| 50 | - if (userStepEntity != null) { | ||
| 51 | - DbCore.init(context, dbName); | ||
| 52 | - DbCore.getDaoSession().getCollUserStepEntityDao().update(userStepEntity); | ||
| 53 | - } | ||
| 54 | - | ||
| 55 | - } | ||
| 56 | - | ||
| 57 | - /** | ||
| 58 | - * 得到当前速度 | ||
| 59 | - * | ||
| 60 | - * @param time | ||
| 61 | - * @param distance | ||
| 62 | - * @return | ||
| 63 | - */ | ||
| 64 | - public static double getCurrentSpeed(double time, double distance) { | ||
| 65 | - double result = distance / time; | ||
| 66 | - result = Double.parseDouble(String.format("%1.2f", result)); | ||
| 67 | - return result; | ||
| 68 | - } | ||
| 69 | - | ||
| 70 | - /** | ||
| 71 | - * 根据行走步数,计算大概行走具体 | ||
| 72 | - * 单位:公里 | ||
| 73 | - * 1步的距离大概是60厘米。 | ||
| 74 | - * 1万多步,距离大概就是600000厘米,即6000米(6公里) | ||
| 75 | - * | ||
| 76 | - * @param step | ||
| 77 | - * @return | ||
| 78 | - */ | ||
| 79 | - public static double getWalkDistanceKM(long step) { | ||
| 80 | - double result = step * 60.0 / 100.0 / 1000.0; | ||
| 81 | - result = Double.parseDouble(String.format("%1.2f", result)); | ||
| 82 | - return result; | ||
| 83 | - } | ||
| 84 | - | ||
| 85 | - /** | ||
| 86 | - * 清除保存数据库中的数据 | ||
| 87 | - * | ||
| 88 | - * @param uid | ||
| 89 | - */ | ||
| 90 | - public static void clearRunData(Context context, String uid) { | ||
| 91 | - DbCore.init(context, dbName); | ||
| 92 | - String CURRENT_DATE = getTodayDate(); | ||
| 93 | - List<CollUserStepEntity> list = DbCore.getDaoSession().getCollUserStepEntityDao().queryBuilder().where(CollUserStepEntityDao.Properties.UserId.eq(uid), CollUserStepEntityDao.Properties.Date.eq(CURRENT_DATE)).list(); | ||
| 94 | - if (list != null && list.size() > 0) { | ||
| 95 | - Log.e(TAG, "clearRunData: " + list.size()); | ||
| 96 | - DbCore.getDaoSession().getCollUserStepEntityDao().deleteByKey(list.get(0).getUuid()); | ||
| 97 | - DbCore.getDaoSession().getCollUserStepEntityDao().detachAll(); | ||
| 98 | - } | ||
| 99 | - } | ||
| 100 | - | ||
| 101 | - /** | ||
| 102 | - * 获取用户数据 | ||
| 103 | - * | ||
| 104 | - * @param context | ||
| 105 | - * @param uid | ||
| 106 | - * @return | ||
| 107 | - */ | ||
| 108 | - public static CollUserStepEntity getCollUserStepData(Context context, String uid) { | ||
| 109 | - if (!TextUtils.isEmpty(uid)) { | ||
| 110 | - DbCore.init(context, dbName); | ||
| 111 | - DbCore.getDaoSession().getCollUserStepEntityDao().detachAll(); | ||
| 112 | - DbCore.getDaoSession().clear(); | ||
| 113 | - String CURRENT_DATE = getTodayDate(); | ||
| 114 | - List<CollUserStepEntity> list = DbCore.getDaoSession().getCollUserStepEntityDao().queryBuilder().where(CollUserStepEntityDao.Properties.UserId.eq(uid), CollUserStepEntityDao.Properties.Date.eq(CURRENT_DATE)).list(); | ||
| 115 | - if (list != null && list.size() > 0) { | ||
| 116 | - return list.get(0); | ||
| 117 | - } else { | ||
| 118 | - return null; | ||
| 119 | - } | ||
| 120 | - } else { | ||
| 121 | - return null; | ||
| 122 | - } | ||
| 123 | - } | ||
| 124 | - | ||
| 125 | - /** | ||
| 126 | - * 获取用户数据 | ||
| 127 | - * | ||
| 128 | - * @param context | ||
| 129 | - * @param uid | ||
| 130 | - * @return | ||
| 131 | - */ | ||
| 132 | - public static void setServerTraceData(Context context, String uid, CollUserStepEntity userStepEntity) { | ||
| 133 | - if (getCollUserStepData(context, uid) != null) { | ||
| 134 | - CollUserStepEntity entity = getCollUserStepData(context, uid); | ||
| 135 | - } else { | ||
| 136 | - | ||
| 137 | - } | ||
| 138 | - } | ||
| 139 | - | ||
| 140 | - /** | ||
| 141 | - * 获取当天日期 | ||
| 142 | - * | ||
| 143 | - * @return | ||
| 144 | - */ | ||
| 145 | - private static String getTodayDate() { | ||
| 146 | - Date date = new Date(System.currentTimeMillis()); | ||
| 147 | - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | ||
| 148 | - return sdf.format(date); | ||
| 149 | - } | ||
| 150 | - | ||
| 151 | - | ||
| 152 | -} |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/utils/MyMapUtil.java
| @@ -52,6 +52,55 @@ public class MyMapUtil { | @@ -52,6 +52,55 @@ public class MyMapUtil { | ||
| 52 | private static int pageIndex = 1; | 52 | private static int pageIndex = 1; |
| 53 | private static List<LatLng> trackPoints; | 53 | private static List<LatLng> trackPoints; |
| 54 | 54 | ||
| 55 | + public static List<Overlay> setStartMarker(Context context, BaiduMap baiduMap, LatLng startLatLng, int startIconRes) { | ||
| 56 | + if (0 == startIconRes || null == startLatLng || null == context || null == baiduMap) { | ||
| 57 | + return null; | ||
| 58 | + } | ||
| 59 | + List<Overlay> resultOverlays = new ArrayList<>(); | ||
| 60 | + try { | ||
| 61 | + Bitmap pointBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), startIconRes), 24, 30); | ||
| 62 | + OverlayOptions startOptions = null; | ||
| 63 | + if (pointBitmap != null) { | ||
| 64 | + startOptions = new MarkerOptions().position(startLatLng).icon(BitmapDescriptorFactory.fromBitmap(pointBitmap)); | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + // 添加圆形范围 | ||
| 68 | + Bitmap startCircleBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), R.drawable.circle_point_raduis), 60, 60); | ||
| 69 | + OverlayOptions startCircleOptions = null; | ||
| 70 | + if (startCircleBitmap != null) { | ||
| 71 | + startCircleOptions = new MarkerOptions() | ||
| 72 | + .position(startLatLng) | ||
| 73 | + .icon(BitmapDescriptorFactory.fromBitmap(startCircleBitmap)) | ||
| 74 | + .perspective(false) | ||
| 75 | + .anchor(0.5f, 0.6f) | ||
| 76 | + .animateType(MarkerOptions.MarkerAnimateType.grow); | ||
| 77 | + | ||
| 78 | + } | ||
| 79 | + if (startCircleOptions != null) { | ||
| 80 | + resultOverlays.add(baiduMap.addOverlay(startCircleOptions)); | ||
| 81 | + } | ||
| 82 | + if (startOptions != null) { | ||
| 83 | + resultOverlays.add(baiduMap.addOverlay(startOptions)); | ||
| 84 | + | ||
| 85 | + } | ||
| 86 | + if (resultOverlays != null) { | ||
| 87 | + return resultOverlays; | ||
| 88 | + } else { | ||
| 89 | + return null; | ||
| 90 | + } | ||
| 91 | + } catch ( | ||
| 92 | + Exception e) { | ||
| 93 | + return null; | ||
| 94 | + } | ||
| 95 | + } | ||
| 96 | + | ||
| 97 | + /** | ||
| 98 | + * 根据点位信息,自动缩放地图 | ||
| 99 | + * | ||
| 100 | + * @param baiduMap | ||
| 101 | + * @param trackPoints | ||
| 102 | + * @param zoomBy | ||
| 103 | + */ | ||
| 55 | public static void setMapAutoZoom(BaiduMap baiduMap, List<LatLng> trackPoints, float zoomBy) { | 104 | public static void setMapAutoZoom(BaiduMap baiduMap, List<LatLng> trackPoints, float zoomBy) { |
| 56 | LatLngBounds.Builder builder = new LatLngBounds.Builder(); | 105 | LatLngBounds.Builder builder = new LatLngBounds.Builder(); |
| 57 | for (LatLng latLng : trackPoints) { | 106 | for (LatLng latLng : trackPoints) { |
| @@ -331,7 +380,7 @@ public class MyMapUtil { | @@ -331,7 +380,7 @@ public class MyMapUtil { | ||
| 331 | */ | 380 | */ |
| 332 | public static Overlay drawRealTimeTrack(Context context, BaiduMap baiduMap, List<LatLng> points, SortType sortType, int lineColor, int startIconRes) { | 381 | public static Overlay drawRealTimeTrack(Context context, BaiduMap baiduMap, List<LatLng> points, SortType sortType, int lineColor, int startIconRes) { |
| 333 | // 绘制新覆盖物前,清空之前的覆盖物 | 382 | // 绘制新覆盖物前,清空之前的覆盖物 |
| 334 | - if (points == null || points.size() == 0 || lineColor == 0 ) { | 383 | + if (points == null || points.size() == 0 || lineColor == 0) { |
| 335 | return null; | 384 | return null; |
| 336 | } | 385 | } |
| 337 | //只有一个点 | 386 | //只有一个点 |
| @@ -378,114 +427,120 @@ public class MyMapUtil { | @@ -378,114 +427,120 @@ public class MyMapUtil { | ||
| 378 | * 绘制服务器传过来的轨迹 | 427 | * 绘制服务器传过来的轨迹 |
| 379 | */ | 428 | */ |
| 380 | public static List<Overlay> drawServerLineTrack(Context context, BaiduMap baiduMap, List<LatLng> points, SortType sortType, int lineColor, int startIconRes, int endIconRes) { | 429 | public static List<Overlay> drawServerLineTrack(Context context, BaiduMap baiduMap, List<LatLng> points, SortType sortType, int lineColor, int startIconRes, int endIconRes) { |
| 381 | - // 绘制新覆盖物前,清空之前的覆盖物 | ||
| 382 | - if (points == null || points.size() == 0) { | ||
| 383 | - return null; | ||
| 384 | - } | ||
| 385 | - List<Overlay> resultOverlays = new ArrayList<>(); | ||
| 386 | - //只有一个点 | ||
| 387 | - if (points.size() == 1) { | ||
| 388 | - Bitmap pointBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), startIconRes), 24, 30); | ||
| 389 | - OverlayOptions startOptions = null; | ||
| 390 | - if (pointBitmap != null) { | ||
| 391 | - startOptions = new MarkerOptions().position(points.get(0)).icon(BitmapDescriptorFactory.fromBitmap(pointBitmap)); | ||
| 392 | - if (startOptions != null) { | ||
| 393 | - resultOverlays.add(baiduMap.addOverlay(startOptions)); | 430 | + try { |
| 431 | + // 绘制新覆盖物前,清空之前的覆盖物 | ||
| 432 | + if (points == null || points.size() == 0) { | ||
| 433 | + return null; | ||
| 434 | + } | ||
| 435 | + List<Overlay> resultOverlays = new ArrayList<>(); | ||
| 436 | + //只有一个点 | ||
| 437 | + if (points.size() == 1) { | ||
| 438 | + Bitmap pointBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), startIconRes), 24, 30); | ||
| 439 | + OverlayOptions startOptions = null; | ||
| 440 | + if (pointBitmap != null) { | ||
| 441 | + startOptions = new MarkerOptions().position(points.get(0)).icon(BitmapDescriptorFactory.fromBitmap(pointBitmap)); | ||
| 442 | + if (startOptions != null) { | ||
| 443 | + resultOverlays.add(baiduMap.addOverlay(startOptions)); | ||
| 444 | + } | ||
| 445 | + return resultOverlays; | ||
| 394 | } | 446 | } |
| 395 | - return resultOverlays; | ||
| 396 | } | 447 | } |
| 397 | - } | ||
| 398 | 448 | ||
| 399 | - LatLng startPoint; | ||
| 400 | - LatLng endPoint; | ||
| 401 | - if (sortType == SortType.asc) { | ||
| 402 | - startPoint = points.get(0); | ||
| 403 | - endPoint = points.get(points.size() - 1); | ||
| 404 | - } else { | ||
| 405 | - startPoint = points.get(points.size() - 1); | ||
| 406 | - endPoint = points.get(0); | ||
| 407 | - } | ||
| 408 | - // 添加起点图标 | ||
| 409 | - Bitmap startPointBitmap = null; | ||
| 410 | - if (null != context.getResources()) { | ||
| 411 | - startPointBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), startIconRes), 24, 30); | ||
| 412 | - } | ||
| 413 | - OverlayOptions startOptions = null; | ||
| 414 | - if (startPointBitmap != null) { | ||
| 415 | - startOptions = new MarkerOptions() | ||
| 416 | - .position(startPoint) | ||
| 417 | - .icon(BitmapDescriptorFactory.fromBitmap(startPointBitmap)) | ||
| 418 | - .perspective(false) | ||
| 419 | - .animateType(MarkerOptions.MarkerAnimateType.grow); | ||
| 420 | - } | ||
| 421 | - // 添加终点图标 | ||
| 422 | - Bitmap endPointBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), endIconRes), 24, 30); | ||
| 423 | - OverlayOptions endOptions = null; | ||
| 424 | - if (endPointBitmap != null) { | ||
| 425 | - endOptions = new MarkerOptions() | ||
| 426 | - .position(endPoint) | ||
| 427 | - .icon(BitmapDescriptorFactory.fromBitmap(endPointBitmap)) | ||
| 428 | - .perspective(false) | ||
| 429 | - .anchor(0.6f, 0.96f) | ||
| 430 | - .animateType(MarkerOptions.MarkerAnimateType.grow); | ||
| 431 | - } | ||
| 432 | - // 添加圆形范围 | ||
| 433 | - Bitmap startCircleBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), R.drawable.circle_point_raduis), 60, 60); | ||
| 434 | - OverlayOptions startCircleOptions = null; | ||
| 435 | - OverlayOptions endCircleOptions = null; | ||
| 436 | - if (startCircleBitmap != null) { | ||
| 437 | - startCircleOptions = new MarkerOptions() | ||
| 438 | - .position(startPoint) | ||
| 439 | - .icon(BitmapDescriptorFactory.fromBitmap(startCircleBitmap)) | ||
| 440 | - .perspective(false) | ||
| 441 | - .anchor(0.5f, 0.6f) | ||
| 442 | - .animateType(MarkerOptions.MarkerAnimateType.grow); | ||
| 443 | - | ||
| 444 | - endCircleOptions = new MarkerOptions() | ||
| 445 | - .position(endPoint) | ||
| 446 | - .icon(BitmapDescriptorFactory.fromBitmap(startCircleBitmap)) | ||
| 447 | - .perspective(false) | ||
| 448 | - .anchor(0.5f, 0.6f) | ||
| 449 | - .animateType(MarkerOptions.MarkerAnimateType.grow); | ||
| 450 | - } | ||
| 451 | - // 添加路线(轨迹) | ||
| 452 | - OverlayOptions polylineOptions = null; | ||
| 453 | - if (points != null && points.size() > 1) { | ||
| 454 | - polylineOptions = new PolylineOptions().width(10) | ||
| 455 | - .color(context.getResources().getColor(lineColor)).points(points); | ||
| 456 | - } | ||
| 457 | - if (endCircleOptions != null) { | ||
| 458 | - resultOverlays.add(baiduMap.addOverlay(endCircleOptions)); | ||
| 459 | - } | ||
| 460 | - if (startCircleOptions != null) { | ||
| 461 | - resultOverlays.add(baiduMap.addOverlay(startCircleOptions)); | ||
| 462 | - } | ||
| 463 | - if (startOptions != null) { | ||
| 464 | - resultOverlays.add(baiduMap.addOverlay(startOptions)); | 449 | + LatLng startPoint; |
| 450 | + LatLng endPoint; | ||
| 451 | + if (sortType == SortType.asc) { | ||
| 452 | + startPoint = points.get(0); | ||
| 453 | + endPoint = points.get(points.size() - 1); | ||
| 454 | + } else { | ||
| 455 | + startPoint = points.get(points.size() - 1); | ||
| 456 | + endPoint = points.get(0); | ||
| 457 | + } | ||
| 458 | + // 添加起点图标 | ||
| 459 | + Bitmap startPointBitmap = null; | ||
| 460 | + if (null != context.getResources()) { | ||
| 461 | + startPointBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), startIconRes), 24, 30); | ||
| 462 | + } | ||
| 463 | + OverlayOptions startOptions = null; | ||
| 464 | + if (startPointBitmap != null) { | ||
| 465 | + startOptions = new MarkerOptions() | ||
| 466 | + .position(startPoint) | ||
| 467 | + .icon(BitmapDescriptorFactory.fromBitmap(startPointBitmap)) | ||
| 468 | + .perspective(false) | ||
| 469 | + .animateType(MarkerOptions.MarkerAnimateType.grow); | ||
| 470 | + } | ||
| 471 | + // 添加终点图标 | ||
| 472 | + Bitmap endPointBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), endIconRes), 24, 30); | ||
| 473 | + OverlayOptions endOptions = null; | ||
| 474 | + if (endPointBitmap != null) { | ||
| 475 | + endOptions = new MarkerOptions() | ||
| 476 | + .position(endPoint) | ||
| 477 | + .icon(BitmapDescriptorFactory.fromBitmap(endPointBitmap)) | ||
| 478 | + .perspective(false) | ||
| 479 | + .anchor(0.6f, 0.96f) | ||
| 480 | + .animateType(MarkerOptions.MarkerAnimateType.grow); | ||
| 481 | + } | ||
| 482 | + // 添加圆形范围 | ||
| 483 | + Bitmap startCircleBitmap = BitmapUtil.getBitmapFromDp(context, BitmapFactory.decodeResource(context.getResources(), R.drawable.circle_point_raduis), 60, 60); | ||
| 484 | + OverlayOptions startCircleOptions = null; | ||
| 485 | + OverlayOptions endCircleOptions = null; | ||
| 486 | + if (startCircleBitmap != null) { | ||
| 487 | + startCircleOptions = new MarkerOptions() | ||
| 488 | + .position(startPoint) | ||
| 489 | + .icon(BitmapDescriptorFactory.fromBitmap(startCircleBitmap)) | ||
| 490 | + .perspective(false) | ||
| 491 | + .anchor(0.5f, 0.6f) | ||
| 492 | + .animateType(MarkerOptions.MarkerAnimateType.grow); | ||
| 493 | + | ||
| 494 | + endCircleOptions = new MarkerOptions() | ||
| 495 | + .position(endPoint) | ||
| 496 | + .icon(BitmapDescriptorFactory.fromBitmap(startCircleBitmap)) | ||
| 497 | + .perspective(false) | ||
| 498 | + .anchor(0.5f, 0.6f) | ||
| 499 | + .animateType(MarkerOptions.MarkerAnimateType.grow); | ||
| 500 | + } | ||
| 501 | + // 添加路线(轨迹) | ||
| 502 | + OverlayOptions polylineOptions = null; | ||
| 503 | + if (points != null && points.size() > 1) { | ||
| 504 | + polylineOptions = new PolylineOptions().width(10) | ||
| 505 | + .color(context.getResources().getColor(lineColor)).points(points); | ||
| 506 | + } | ||
| 507 | + if (endCircleOptions != null) { | ||
| 508 | + resultOverlays.add(baiduMap.addOverlay(endCircleOptions)); | ||
| 509 | + } | ||
| 510 | + if (startCircleOptions != null) { | ||
| 511 | + resultOverlays.add(baiduMap.addOverlay(startCircleOptions)); | ||
| 512 | + } | ||
| 513 | + if (startOptions != null) { | ||
| 514 | + resultOverlays.add(baiduMap.addOverlay(startOptions)); | ||
| 465 | 515 | ||
| 466 | - } | ||
| 467 | - if (endOptions != null) { | ||
| 468 | - resultOverlays.add(baiduMap.addOverlay(endOptions)); | ||
| 469 | - } | ||
| 470 | - if (polylineOptions != null) { | ||
| 471 | - resultOverlays.add(baiduMap.addOverlay(polylineOptions)); | 516 | + } |
| 517 | + if (endOptions != null) { | ||
| 518 | + resultOverlays.add(baiduMap.addOverlay(endOptions)); | ||
| 519 | + } | ||
| 520 | + if (polylineOptions != null) { | ||
| 521 | + resultOverlays.add(baiduMap.addOverlay(polylineOptions)); | ||
| 472 | 522 | ||
| 473 | - } | ||
| 474 | - if (resultOverlays != null) { | ||
| 475 | - return resultOverlays; | ||
| 476 | - } else { | 523 | + } |
| 524 | + if (resultOverlays != null) { | ||
| 525 | + return resultOverlays; | ||
| 526 | + } else { | ||
| 527 | + return null; | ||
| 528 | + } | ||
| 529 | + } catch (Exception e) { | ||
| 477 | return null; | 530 | return null; |
| 478 | } | 531 | } |
| 479 | } | 532 | } |
| 480 | 533 | ||
| 481 | 534 | ||
| 482 | - public static Overlay drawMapLine(Context context, BaiduMap baiduMap, List<LatLng> points, int lineColor) { | 535 | + public static Overlay drawMapLine(Context context, BaiduMap |
| 536 | + baiduMap, List<LatLng> points, int lineColor) { | ||
| 483 | OverlayOptions polylineOptions = new PolylineOptions().width(10) | 537 | OverlayOptions polylineOptions = new PolylineOptions().width(10) |
| 484 | .color(context.getResources().getColor(lineColor)).points(points); | 538 | .color(context.getResources().getColor(lineColor)).points(points); |
| 485 | return baiduMap.addOverlay(polylineOptions); | 539 | return baiduMap.addOverlay(polylineOptions); |
| 486 | } | 540 | } |
| 487 | 541 | ||
| 488 | - public static Overlay drawMapLineRoutePoint(Context context, BaiduMap baiduMap, List<RoutePoint> points, int lineColor) { | 542 | + public static Overlay drawMapLineRoutePoint(Context context, BaiduMap |
| 543 | + baiduMap, List<RoutePoint> points, int lineColor) { | ||
| 489 | List<LatLng> latLngs = new ArrayList<>(); | 544 | List<LatLng> latLngs = new ArrayList<>(); |
| 490 | for (RoutePoint routePoint : points) { | 545 | for (RoutePoint routePoint : points) { |
| 491 | if (routePoint != null && routePoint.getLat() != 0 && routePoint.getLng() != 0) { | 546 | if (routePoint != null && routePoint.getLat() != 0 && routePoint.getLng() != 0) { |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/utils/StepUtil.java
| @@ -6,9 +6,12 @@ import android.util.Log; | @@ -6,9 +6,12 @@ import android.util.Log; | ||
| 6 | 6 | ||
| 7 | import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; | 7 | import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; |
| 8 | import com.cnlive.moudle.pedometer.model.Constant; | 8 | import com.cnlive.moudle.pedometer.model.Constant; |
| 9 | +import com.cnlive.moudle.pedometer.sql.dao.CollUserStepEntityDao; | ||
| 9 | import com.cnlive.moudle.pedometer.sql.dao.FailedEntityDao; | 10 | import com.cnlive.moudle.pedometer.sql.dao.FailedEntityDao; |
| 10 | import com.cnlive.moudle.pedometer.sql.dao.UserStepEntityDao; | 11 | import com.cnlive.moudle.pedometer.sql.dao.UserStepEntityDao; |
| 11 | import com.cnlive.moudle.pedometer.sql.db.DbCore; | 12 | import com.cnlive.moudle.pedometer.sql.db.DbCore; |
| 13 | +import com.cnlive.moudle.pedometer.sql.entity.CollFailedEntity; | ||
| 14 | +import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity; | ||
| 12 | import com.cnlive.moudle.pedometer.sql.entity.FailedEntity; | 15 | import com.cnlive.moudle.pedometer.sql.entity.FailedEntity; |
| 13 | import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity; | 16 | import com.cnlive.moudle.pedometer.sql.entity.UserStepEntity; |
| 14 | 17 | ||
| @@ -81,6 +84,12 @@ public class StepUtil { | @@ -81,6 +84,12 @@ public class StepUtil { | ||
| 81 | DbCore.getDaoSession().getFailedEntityDao().insert(failedEntity); | 84 | DbCore.getDaoSession().getFailedEntityDao().insert(failedEntity); |
| 82 | } | 85 | } |
| 83 | 86 | ||
| 87 | + //设置运营失败数据 | ||
| 88 | + public static void setCollFailData(Context context, CollFailedEntity failedEntity) { | ||
| 89 | + DbCore.init(context, dbName); | ||
| 90 | + DbCore.getDaoSession().getCollFailedEntityDao().insert(failedEntity); | ||
| 91 | + } | ||
| 92 | + | ||
| 84 | /** | 93 | /** |
| 85 | * 设置赛事标题 | 94 | * 设置赛事标题 |
| 86 | * | 95 | * |
| @@ -97,6 +106,8 @@ public class StepUtil { | @@ -97,6 +106,8 @@ public class StepUtil { | ||
| 97 | } | 106 | } |
| 98 | } | 107 | } |
| 99 | 108 | ||
| 109 | + | ||
| 110 | + | ||
| 100 | /** | 111 | /** |
| 101 | * 设置重要点 | 112 | * 设置重要点 |
| 102 | * | 113 | * |
| @@ -199,6 +210,8 @@ public class StepUtil { | @@ -199,6 +210,8 @@ public class StepUtil { | ||
| 199 | 210 | ||
| 200 | } | 211 | } |
| 201 | 212 | ||
| 213 | + | ||
| 214 | + | ||
| 202 | /** | 215 | /** |
| 203 | * 得到当前速度 | 216 | * 得到当前速度 |
| 204 | * | 217 | * |
| @@ -264,6 +277,27 @@ public class StepUtil { | @@ -264,6 +277,27 @@ public class StepUtil { | ||
| 264 | } | 277 | } |
| 265 | 278 | ||
| 266 | /** | 279 | /** |
| 280 | + * 获取运营用户数据 | ||
| 281 | + * | ||
| 282 | + * @param context | ||
| 283 | + * @param uid | ||
| 284 | + * @return | ||
| 285 | + */ | ||
| 286 | + public static CollUserStepEntity getCollUserStepData(Context context, String uid) { | ||
| 287 | + if (!TextUtils.isEmpty(uid)) { | ||
| 288 | + DbCore.init(context, dbName); | ||
| 289 | + List<CollUserStepEntity> list = DbCore.getDaoSession().getCollUserStepEntityDao().queryBuilder().where(CollUserStepEntityDao.Properties.UserId.eq(uid)).list(); | ||
| 290 | + if (list != null && list.size() > 0) { | ||
| 291 | + return list.get(0); | ||
| 292 | + } else { | ||
| 293 | + return null; | ||
| 294 | + } | ||
| 295 | + } else { | ||
| 296 | + return null; | ||
| 297 | + } | ||
| 298 | + } | ||
| 299 | + | ||
| 300 | + /** | ||
| 267 | * 设置用户数据 | 301 | * 设置用户数据 |
| 268 | * | 302 | * |
| 269 | * @param context | 303 | * @param context |
| @@ -303,6 +337,8 @@ public class StepUtil { | @@ -303,6 +337,8 @@ public class StepUtil { | ||
| 303 | } | 337 | } |
| 304 | } | 338 | } |
| 305 | 339 | ||
| 340 | + | ||
| 341 | + | ||
| 306 | /** | 342 | /** |
| 307 | * 设置计步开始时间 | 343 | * 设置计步开始时间 |
| 308 | * | 344 | * |
| @@ -337,6 +373,8 @@ public class StepUtil { | @@ -337,6 +373,8 @@ public class StepUtil { | ||
| 337 | } | 373 | } |
| 338 | 374 | ||
| 339 | 375 | ||
| 376 | + | ||
| 377 | + | ||
| 340 | /** | 378 | /** |
| 341 | * 获取用户暂停次数 | 379 | * 获取用户暂停次数 |
| 342 | * | 380 | * |
moudle_pedometer/src/main/res/drawable-hdpi/icon_slide_up.png
0 → 100644
469 Bytes
moudle_pedometer/src/main/res/drawable-xhdpi/icon_slide_up.png
0 → 100644
517 Bytes
moudle_pedometer/src/main/res/drawable-xxhdpi/icon_slide_up.png
0 → 100644
1002 Bytes
moudle_pedometer/src/main/res/drawable/shape_circle_30_btn_black_green.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android"> | ||
| 3 | + <corners android:radius="100dp" /> | ||
| 4 | + <stroke | ||
| 5 | + android:width="1dp" | ||
| 6 | + android:color="@color/green_round" /> | ||
| 7 | + <solid android:color="@color/black_20" /> | ||
| 8 | +</shape> | ||
| 0 | \ No newline at end of file | 9 | \ No newline at end of file |
moudle_pedometer/src/main/res/layout/fragment_coll_run_main.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<layout xmlns:android="http://schemas.android.com/apk/res/android"> | ||
| 3 | + | ||
| 4 | + <LinearLayout | ||
| 5 | + android:layout_width="match_parent" | ||
| 6 | + android:layout_height="match_parent" | ||
| 7 | + android:orientation="vertical"> | ||
| 8 | + | ||
| 9 | + <FrameLayout | ||
| 10 | + android:layout_width="match_parent" | ||
| 11 | + android:layout_height="match_parent"> | ||
| 12 | + | ||
| 13 | + <LinearLayout | ||
| 14 | + android:id="@+id/ll_run_main_root" | ||
| 15 | + android:layout_width="match_parent" | ||
| 16 | + android:layout_height="match_parent" | ||
| 17 | + android:background="@color/run_main_bg" | ||
| 18 | + android:orientation="vertical"> | ||
| 19 | + | ||
| 20 | + <RelativeLayout | ||
| 21 | + android:id="@+id/rl_close" | ||
| 22 | + android:layout_width="match_parent" | ||
| 23 | + android:layout_height="wrap_content" | ||
| 24 | + android:visibility="gone"> | ||
| 25 | + | ||
| 26 | + <ImageView | ||
| 27 | + android:layout_width="25dp" | ||
| 28 | + android:layout_height="25dp" | ||
| 29 | + android:layout_alignParentRight="true" | ||
| 30 | + android:layout_margin="10dp" | ||
| 31 | + android:src="@drawable/icon_right_close" /> | ||
| 32 | + </RelativeLayout> | ||
| 33 | + <!--公里数显示--> | ||
| 34 | + <FrameLayout | ||
| 35 | + android:layout_width="match_parent" | ||
| 36 | + android:layout_height="0dp" | ||
| 37 | + android:layout_weight="1.2"> | ||
| 38 | + | ||
| 39 | + <LinearLayout | ||
| 40 | + android:layout_width="match_parent" | ||
| 41 | + android:layout_height="match_parent" | ||
| 42 | + android:gravity="center" | ||
| 43 | + android:paddingLeft="50dp"> | ||
| 44 | + | ||
| 45 | + <TextView | ||
| 46 | + android:id="@+id/tv_run_distance" | ||
| 47 | + android:layout_width="wrap_content" | ||
| 48 | + android:layout_height="wrap_content" | ||
| 49 | + android:text="0.00" | ||
| 50 | + android:textColor="@color/white" | ||
| 51 | + android:textSize="70sp" | ||
| 52 | + android:textStyle="bold" /> | ||
| 53 | + | ||
| 54 | + <TextView | ||
| 55 | + android:layout_width="wrap_content" | ||
| 56 | + android:layout_height="wrap_content" | ||
| 57 | + android:layout_marginLeft="10dp" | ||
| 58 | + android:layout_marginTop="20dp" | ||
| 59 | + android:text="公里" | ||
| 60 | + android:textColor="@color/white" | ||
| 61 | + android:textSize="15sp" /> | ||
| 62 | + </LinearLayout> | ||
| 63 | + | ||
| 64 | + <LinearLayout | ||
| 65 | + android:id="@+id/ll_back" | ||
| 66 | + android:layout_width="wrap_content" | ||
| 67 | + android:layout_height="wrap_content" | ||
| 68 | + android:padding="10dp"> | ||
| 69 | + | ||
| 70 | + <ImageView | ||
| 71 | + android:layout_width="12dp" | ||
| 72 | + android:layout_height="20dp" | ||
| 73 | + android:layout_margin="10dp" | ||
| 74 | + android:background="@drawable/icon_white_back" /> | ||
| 75 | + </LinearLayout> | ||
| 76 | + </FrameLayout> | ||
| 77 | + <!--GPS信息--> | ||
| 78 | + <LinearLayout | ||
| 79 | + android:layout_width="match_parent" | ||
| 80 | + android:layout_height="0dp" | ||
| 81 | + android:layout_weight="2.2" | ||
| 82 | + android:orientation="vertical"> | ||
| 83 | + | ||
| 84 | + <RelativeLayout | ||
| 85 | + android:id="@+id/rl_gps" | ||
| 86 | + android:layout_width="match_parent" | ||
| 87 | + android:layout_height="wrap_content"> | ||
| 88 | + | ||
| 89 | + <TextView | ||
| 90 | + android:id="@+id/tv_gps" | ||
| 91 | + android:layout_width="wrap_content" | ||
| 92 | + android:layout_height="wrap_content" | ||
| 93 | + android:layout_centerVertical="true" | ||
| 94 | + android:layout_marginLeft="20dp" | ||
| 95 | + android:text="GPS" | ||
| 96 | + android:textColor="@color/white" | ||
| 97 | + android:textSize="18sp" | ||
| 98 | + android:textStyle="bold" /> | ||
| 99 | + | ||
| 100 | + <ImageView | ||
| 101 | + android:id="@+id/iv_gps" | ||
| 102 | + android:layout_width="18dp" | ||
| 103 | + android:layout_height="5dp" | ||
| 104 | + android:layout_centerVertical="true" | ||
| 105 | + android:layout_marginLeft="5dp" | ||
| 106 | + android:layout_toRightOf="@id/tv_gps" /> | ||
| 107 | + | ||
| 108 | + <TextView | ||
| 109 | + android:id="@+id/tv_look_trace" | ||
| 110 | + android:layout_width="wrap_content" | ||
| 111 | + android:layout_height="wrap_content" | ||
| 112 | + android:layout_centerVertical="true" | ||
| 113 | + android:layout_marginLeft="5dp" | ||
| 114 | + android:layout_toRightOf="@id/iv_gps" | ||
| 115 | + android:textColor="@color/text_gray99" | ||
| 116 | + android:textSize="12sp" | ||
| 117 | + android:textStyle="bold" /> | ||
| 118 | + | ||
| 119 | + <LinearLayout | ||
| 120 | + android:layout_width="wrap_content" | ||
| 121 | + android:layout_height="wrap_content" | ||
| 122 | + android:layout_alignParentRight="true" | ||
| 123 | + android:layout_marginRight="15dp" | ||
| 124 | + android:gravity="center" | ||
| 125 | + android:orientation="vertical"> | ||
| 126 | + | ||
| 127 | + <ImageView | ||
| 128 | + android:layout_width="55dp" | ||
| 129 | + android:layout_height="55dp" | ||
| 130 | + android:src="@drawable/rt_ic_home_map" /> | ||
| 131 | + | ||
| 132 | + <TextView | ||
| 133 | + android:layout_width="wrap_content" | ||
| 134 | + android:layout_height="wrap_content" | ||
| 135 | + android:layout_marginTop="5dp" | ||
| 136 | + android:text="点击查看轨迹" | ||
| 137 | + android:textColor="@color/text_gray99" | ||
| 138 | + android:textSize="10sp" /> | ||
| 139 | + </LinearLayout> | ||
| 140 | + </RelativeLayout> | ||
| 141 | + <!--计时--> | ||
| 142 | + <LinearLayout | ||
| 143 | + android:layout_width="match_parent" | ||
| 144 | + android:layout_height="wrap_content" | ||
| 145 | + android:layout_marginTop="35dp"> | ||
| 146 | + | ||
| 147 | + <LinearLayout | ||
| 148 | + android:layout_width="0dp" | ||
| 149 | + android:layout_height="wrap_content" | ||
| 150 | + android:layout_weight="1" | ||
| 151 | + android:gravity="center" | ||
| 152 | + android:orientation="vertical"> | ||
| 153 | + | ||
| 154 | + <ImageView | ||
| 155 | + android:layout_width="26dp" | ||
| 156 | + android:layout_height="23dp" | ||
| 157 | + android:layout_marginBottom="5dp" | ||
| 158 | + android:src="@drawable/sport_speed" /> | ||
| 159 | + | ||
| 160 | + <LinearLayout | ||
| 161 | + android:layout_width="match_parent" | ||
| 162 | + android:layout_height="wrap_content" | ||
| 163 | + android:gravity="center"> | ||
| 164 | + | ||
| 165 | + <TextView | ||
| 166 | + android:id="@+id/tv_speed" | ||
| 167 | + android:layout_width="wrap_content" | ||
| 168 | + android:layout_height="wrap_content" | ||
| 169 | + android:text="--" | ||
| 170 | + android:textColor="@color/white" | ||
| 171 | + android:textSize="20sp" | ||
| 172 | + android:textStyle="bold" /> | ||
| 173 | + | ||
| 174 | + </LinearLayout> | ||
| 175 | + | ||
| 176 | + <TextView | ||
| 177 | + android:layout_width="wrap_content" | ||
| 178 | + android:layout_height="wrap_content" | ||
| 179 | + android:layout_marginTop="5dp" | ||
| 180 | + android:gravity="center" | ||
| 181 | + android:text="配速" | ||
| 182 | + android:textColor="@color/text_gray99" | ||
| 183 | + android:textSize="15sp" /> | ||
| 184 | + </LinearLayout> | ||
| 185 | + <!--用时--> | ||
| 186 | + <LinearLayout | ||
| 187 | + android:layout_width="0dp" | ||
| 188 | + android:layout_height="wrap_content" | ||
| 189 | + android:layout_weight="1" | ||
| 190 | + android:gravity="center" | ||
| 191 | + android:orientation="vertical"> | ||
| 192 | + | ||
| 193 | + <ImageView | ||
| 194 | + android:layout_width="23dp" | ||
| 195 | + android:layout_height="25dp" | ||
| 196 | + android:layout_marginBottom="5dp" | ||
| 197 | + android:src="@drawable/sport_time_cost" /> | ||
| 198 | + | ||
| 199 | + <Chronometer | ||
| 200 | + android:id="@+id/chronometer" | ||
| 201 | + android:layout_width="wrap_content" | ||
| 202 | + android:layout_height="wrap_content" | ||
| 203 | + android:format="00:00:00" | ||
| 204 | + android:textColor="@color/white" | ||
| 205 | + android:textSize="20sp" | ||
| 206 | + android:textStyle="bold" /> | ||
| 207 | + | ||
| 208 | + <TextView | ||
| 209 | + android:layout_width="wrap_content" | ||
| 210 | + android:layout_height="wrap_content" | ||
| 211 | + android:layout_marginTop="5dp" | ||
| 212 | + android:gravity="center" | ||
| 213 | + android:text="用时" | ||
| 214 | + android:textColor="@color/text_gray99" | ||
| 215 | + android:textSize="15sp" /> | ||
| 216 | + </LinearLayout> | ||
| 217 | + <!--热量--> | ||
| 218 | + <LinearLayout | ||
| 219 | + android:layout_width="0dp" | ||
| 220 | + android:layout_height="wrap_content" | ||
| 221 | + android:layout_weight="1" | ||
| 222 | + android:gravity="center" | ||
| 223 | + android:orientation="vertical"> | ||
| 224 | + | ||
| 225 | + <ImageView | ||
| 226 | + android:layout_width="26dp" | ||
| 227 | + android:layout_height="24dp" | ||
| 228 | + android:layout_marginBottom="5dp" | ||
| 229 | + android:src="@drawable/sport_step" /> | ||
| 230 | + | ||
| 231 | + <TextView | ||
| 232 | + android:id="@+id/tv_step_count" | ||
| 233 | + android:layout_width="match_parent" | ||
| 234 | + android:layout_height="wrap_content" | ||
| 235 | + android:gravity="center" | ||
| 236 | + android:text="--" | ||
| 237 | + android:textColor="@color/white" | ||
| 238 | + android:textSize="20sp" | ||
| 239 | + android:textStyle="bold" /> | ||
| 240 | + | ||
| 241 | + <TextView | ||
| 242 | + android:layout_width="wrap_content" | ||
| 243 | + android:layout_height="wrap_content" | ||
| 244 | + android:layout_marginTop="5dp" | ||
| 245 | + android:gravity="center" | ||
| 246 | + android:text="步" | ||
| 247 | + android:textColor="@color/text_gray99" | ||
| 248 | + android:textSize="15sp" /> | ||
| 249 | + </LinearLayout> | ||
| 250 | + </LinearLayout> | ||
| 251 | + | ||
| 252 | + <RelativeLayout | ||
| 253 | + android:layout_width="match_parent" | ||
| 254 | + android:layout_height="wrap_content"> | ||
| 255 | + <!--限制速度--> | ||
| 256 | + <TextView | ||
| 257 | + android:layout_width="wrap_content" | ||
| 258 | + android:layout_height="wrap_content" | ||
| 259 | + android:layout_marginLeft="15dp" | ||
| 260 | + android:layout_marginTop="10dp" | ||
| 261 | + android:text="限速10m/s" | ||
| 262 | + android:textColor="@color/white" | ||
| 263 | + android:textSize="15sp" | ||
| 264 | + android:visibility="gone" /> | ||
| 265 | + | ||
| 266 | + | ||
| 267 | + </RelativeLayout> | ||
| 268 | + <!--按钮--> | ||
| 269 | + <FrameLayout | ||
| 270 | + android:layout_width="match_parent" | ||
| 271 | + android:layout_height="match_parent"> | ||
| 272 | + <!--底部;两个按钮--> | ||
| 273 | + <LinearLayout | ||
| 274 | + android:id="@+id/ll_two_bottom_button" | ||
| 275 | + android:layout_width="match_parent" | ||
| 276 | + android:layout_height="wrap_content" | ||
| 277 | + android:layout_gravity="center" | ||
| 278 | + android:layout_marginBottom="25dp" | ||
| 279 | + android:gravity="center_horizontal" | ||
| 280 | + android:visibility="visible"> | ||
| 281 | + | ||
| 282 | + <LinearLayout | ||
| 283 | + android:layout_width="wrap_content" | ||
| 284 | + android:layout_height="match_parent" | ||
| 285 | + android:layout_marginRight="50dp" | ||
| 286 | + android:orientation="vertical" | ||
| 287 | + android:visibility="gone"> | ||
| 288 | + | ||
| 289 | + <FrameLayout | ||
| 290 | + android:layout_width="match_parent" | ||
| 291 | + android:layout_height="wrap_content" | ||
| 292 | + android:layout_marginTop="10dp" | ||
| 293 | + android:visibility="invisible"> | ||
| 294 | + | ||
| 295 | + <ImageView | ||
| 296 | + android:layout_width="72dp" | ||
| 297 | + android:layout_height="33dp" | ||
| 298 | + android:layout_gravity="center" /> | ||
| 299 | + | ||
| 300 | + <TextView | ||
| 301 | + android:layout_width="wrap_content" | ||
| 302 | + android:layout_height="wrap_content" | ||
| 303 | + android:layout_gravity="center" | ||
| 304 | + android:layout_marginBottom="5dp" | ||
| 305 | + android:gravity="center" | ||
| 306 | + android:src="@drawable/bg_tips_bottom_center" | ||
| 307 | + android:textSize="12sp" /> | ||
| 308 | + </FrameLayout> | ||
| 309 | + <!--暂停--> | ||
| 310 | + <FrameLayout | ||
| 311 | + android:layout_width="wrap_content" | ||
| 312 | + android:layout_height="wrap_content"> | ||
| 313 | + | ||
| 314 | + <FrameLayout | ||
| 315 | + android:id="@+id/fl_continue" | ||
| 316 | + android:layout_width="85dp" | ||
| 317 | + android:layout_height="85dp" | ||
| 318 | + android:layout_margin="10dp" | ||
| 319 | + android:background="@drawable/shape_green_round" | ||
| 320 | + android:focusable="true"> | ||
| 321 | + | ||
| 322 | + <ImageView | ||
| 323 | + android:layout_width="17dp" | ||
| 324 | + android:layout_height="20dp" | ||
| 325 | + android:layout_gravity="center" | ||
| 326 | + android:layout_marginBottom="10dp" | ||
| 327 | + android:background="@drawable/rt_training_button_resume" | ||
| 328 | + android:focusable="false" /> | ||
| 329 | + | ||
| 330 | + <TextView | ||
| 331 | + android:layout_width="wrap_content" | ||
| 332 | + android:layout_height="wrap_content" | ||
| 333 | + android:layout_gravity="center" | ||
| 334 | + android:layout_marginTop="15dp" | ||
| 335 | + android:focusable="false" | ||
| 336 | + android:text="继续" | ||
| 337 | + android:textColor="@color/white" | ||
| 338 | + android:textSize="14sp" /> | ||
| 339 | + </FrameLayout> | ||
| 340 | + <!--暂停--> | ||
| 341 | + <FrameLayout | ||
| 342 | + android:id="@+id/fl_pause" | ||
| 343 | + android:layout_width="85dp" | ||
| 344 | + android:layout_height="85dp" | ||
| 345 | + android:layout_margin="10dp" | ||
| 346 | + android:background="@drawable/shape_white_round" | ||
| 347 | + android:focusable="true"> | ||
| 348 | + | ||
| 349 | + <ImageView | ||
| 350 | + android:layout_width="wrap_content" | ||
| 351 | + android:layout_height="18dp" | ||
| 352 | + android:layout_gravity="center" | ||
| 353 | + android:layout_marginBottom="10dp" | ||
| 354 | + android:background="@drawable/rt_training_button_pause" | ||
| 355 | + android:focusable="false" /> | ||
| 356 | + | ||
| 357 | + <TextView | ||
| 358 | + android:layout_width="wrap_content" | ||
| 359 | + android:layout_height="wrap_content" | ||
| 360 | + android:layout_gravity="center" | ||
| 361 | + android:layout_marginTop="15dp" | ||
| 362 | + android:focusable="false" | ||
| 363 | + android:text="暂停" | ||
| 364 | + android:textColor="@color/blacktext" | ||
| 365 | + android:textSize="14sp" /> | ||
| 366 | + </FrameLayout> | ||
| 367 | + <!----> | ||
| 368 | + </FrameLayout> | ||
| 369 | + </LinearLayout> | ||
| 370 | + | ||
| 371 | + <LinearLayout | ||
| 372 | + android:layout_width="wrap_content" | ||
| 373 | + android:layout_height="match_parent" | ||
| 374 | + android:orientation="vertical"> | ||
| 375 | + | ||
| 376 | + <FrameLayout | ||
| 377 | + android:id="@+id/fl_stop_tip" | ||
| 378 | + android:layout_width="match_parent" | ||
| 379 | + android:layout_height="wrap_content" | ||
| 380 | + android:layout_marginTop="10dp" | ||
| 381 | + android:visibility="invisible"> | ||
| 382 | + | ||
| 383 | + <ImageView | ||
| 384 | + android:layout_width="72dp" | ||
| 385 | + android:layout_height="33dp" | ||
| 386 | + android:layout_gravity="center" | ||
| 387 | + android:background="@drawable/bg_tips_bottom_center" /> | ||
| 388 | + | ||
| 389 | + <TextView | ||
| 390 | + android:layout_width="wrap_content" | ||
| 391 | + android:layout_height="wrap_content" | ||
| 392 | + android:layout_gravity="center" | ||
| 393 | + android:layout_marginBottom="3dp" | ||
| 394 | + android:gravity="center" | ||
| 395 | + android:src="@drawable/bg_tips_bottom_center" | ||
| 396 | + android:text="长按结束" | ||
| 397 | + android:textSize="12sp" /> | ||
| 398 | + </FrameLayout> | ||
| 399 | + | ||
| 400 | + <FrameLayout | ||
| 401 | + android:id="@+id/fl_stop" | ||
| 402 | + android:layout_width="85dp" | ||
| 403 | + android:layout_height="85dp" | ||
| 404 | + android:layout_margin="10dp" | ||
| 405 | + android:background="@drawable/shape_red_round"> | ||
| 406 | + | ||
| 407 | + <com.cnlive.moudle.pedometer.ui.widget.CircularProgressBar | ||
| 408 | + android:id="@+id/cp_current" | ||
| 409 | + android:layout_width="match_parent" | ||
| 410 | + android:layout_height="match_parent" | ||
| 411 | + android:layout_margin="7dp" | ||
| 412 | + android:visibility="gone" /> | ||
| 413 | + | ||
| 414 | + <ImageView | ||
| 415 | + android:layout_width="17dp" | ||
| 416 | + android:layout_height="17dp" | ||
| 417 | + android:layout_gravity="center" | ||
| 418 | + android:layout_marginBottom="10dp" | ||
| 419 | + android:background="@drawable/rt_training_button_stop" | ||
| 420 | + android:focusable="false" /> | ||
| 421 | + | ||
| 422 | + <TextView | ||
| 423 | + android:layout_width="wrap_content" | ||
| 424 | + android:layout_height="wrap_content" | ||
| 425 | + android:layout_gravity="center" | ||
| 426 | + android:layout_marginTop="15dp" | ||
| 427 | + android:focusable="false" | ||
| 428 | + android:text="结束" | ||
| 429 | + android:textColor="@color/white" | ||
| 430 | + android:textSize="14sp" /> | ||
| 431 | + </FrameLayout> | ||
| 432 | + </LinearLayout> | ||
| 433 | + </LinearLayout> | ||
| 434 | + <!--暂停按钮--> | ||
| 435 | + <!--<LinearLayout--> | ||
| 436 | + <!--android:id="@+id/ll_pause"--> | ||
| 437 | + <!--android:layout_width="match_parent"--> | ||
| 438 | + <!--android:layout_height="match_parent"--> | ||
| 439 | + <!--android:gravity="center">--> | ||
| 440 | + | ||
| 441 | + <!--<FrameLayout--> | ||
| 442 | + <!--android:id="@+id/fl_pause"--> | ||
| 443 | + <!--android:layout_width="85dp"--> | ||
| 444 | + <!--android:layout_height="85dp"--> | ||
| 445 | + <!--android:layout_marginBottom="12dp"--> | ||
| 446 | + <!--android:background="@drawable/shape_white_round"--> | ||
| 447 | + <!--android:focusable="true">--> | ||
| 448 | + | ||
| 449 | + <!--<ImageView--> | ||
| 450 | + <!--android:layout_width="15dp"--> | ||
| 451 | + <!--android:layout_height="18dp"--> | ||
| 452 | + <!--android:layout_gravity="center"--> | ||
| 453 | + <!--android:layout_marginBottom="10dp"--> | ||
| 454 | + <!--android:background="@drawable/rt_training_button_pause"--> | ||
| 455 | + <!--android:focusable="false" />--> | ||
| 456 | + | ||
| 457 | + <!--<TextView--> | ||
| 458 | + <!--android:layout_width="wrap_content"--> | ||
| 459 | + <!--android:layout_height="wrap_content"--> | ||
| 460 | + <!--android:layout_gravity="center"--> | ||
| 461 | + <!--android:layout_marginTop="15dp"--> | ||
| 462 | + <!--android:focusable="false"--> | ||
| 463 | + <!--android:text="暂停"--> | ||
| 464 | + <!--android:textColor="@color/blacktext"--> | ||
| 465 | + <!--android:textSize="14sp" />--> | ||
| 466 | + <!--</FrameLayout>--> | ||
| 467 | + <!--</LinearLayout>--> | ||
| 468 | + </FrameLayout> | ||
| 469 | + </LinearLayout> | ||
| 470 | + </LinearLayout> | ||
| 471 | + <!----> | ||
| 472 | + </FrameLayout> | ||
| 473 | + </LinearLayout> | ||
| 474 | +</layout> | ||
| 0 | \ No newline at end of file | 475 | \ No newline at end of file |
moudle_pedometer/src/main/res/layout/fragment_collect_run_race_detail.xml
| @@ -2,128 +2,139 @@ | @@ -2,128 +2,139 @@ | ||
| 2 | <layout xmlns:android="http://schemas.android.com/apk/res/android" | 2 | <layout xmlns:android="http://schemas.android.com/apk/res/android" |
| 3 | xmlns:app="http://schemas.android.com/apk/res-auto"> | 3 | xmlns:app="http://schemas.android.com/apk/res-auto"> |
| 4 | 4 | ||
| 5 | - <com.sothree.slidinguppanel.SlidingUpPanelLayout xmlns:sothree="http://schemas.android.com/apk/res-auto" | ||
| 6 | - android:id="@+id/sliding_layout" | 5 | + <FrameLayout |
| 7 | android:layout_width="match_parent" | 6 | android:layout_width="match_parent" |
| 8 | - android:layout_height="match_parent" | ||
| 9 | - android:gravity="bottom" | ||
| 10 | - sothree:umanoDragView="@+id/dragView" | ||
| 11 | - sothree:umanoFadeColor="@color/black_20" | ||
| 12 | - sothree:umanoOverlay="true" | ||
| 13 | - sothree:umanoPanelHeight="100dp" | ||
| 14 | - sothree:umanoParallaxOffset="250dp" | ||
| 15 | - sothree:umanoScrollableView="@+id/scrollView" | ||
| 16 | - sothree:umanoShadowHeight="0dp"> | ||
| 17 | - | ||
| 18 | - <!-- MAIN CONTENT --> | ||
| 19 | - <LinearLayout | 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" | ||
| 20 | android:layout_width="match_parent" | 11 | android:layout_width="match_parent" |
| 21 | android:layout_height="match_parent" | 12 | android:layout_height="match_parent" |
| 22 | - android:orientation="vertical"> | ||
| 23 | - | ||
| 24 | - <com.qmuiteam.qmui.widget.QMUITopBar | ||
| 25 | - android:id="@+id/topbar" | 13 | + android:gravity="bottom" |
| 14 | + sothree:umanoDragView="@+id/dragView" | ||
| 15 | + sothree:umanoFadeColor="@color/black_20" | ||
| 16 | + sothree:umanoOverlay="true" | ||
| 17 | + sothree:umanoParallaxOffset="250dp" | ||
| 18 | + sothree:umanoScrollableView="@+id/scrollView" | ||
| 19 | + sothree:umanoShadowHeight="0dp"> | ||
| 20 | + | ||
| 21 | + <!-- MAIN CONTENT --> | ||
| 22 | + <LinearLayout | ||
| 26 | android:layout_width="match_parent" | 23 | android:layout_width="match_parent" |
| 27 | - android:layout_height="?attr/qmui_topbar_height" | ||
| 28 | - app:qmui_topbar_text_btn_color_state_list="@color/text_black" /> | ||
| 29 | - | ||
| 30 | - <FrameLayout | ||
| 31 | - android:id="@+id/fl_root" | ||
| 32 | - android:layout_width="match_parent" | ||
| 33 | - android:layout_height="match_parent"> | 24 | + android:layout_height="match_parent" |
| 25 | + android:orientation="vertical"> | ||
| 34 | 26 | ||
| 35 | - <com.baidu.mapapi.map.MapView | ||
| 36 | - android:id="@+id/mapView" | 27 | + <com.qmuiteam.qmui.widget.QMUITopBar |
| 28 | + android:id="@+id/topbar" | ||
| 37 | android:layout_width="match_parent" | 29 | android:layout_width="match_parent" |
| 38 | - android:layout_height="match_parent"></com.baidu.mapapi.map.MapView> | 30 | + android:layout_height="?attr/qmui_topbar_height" |
| 31 | + app:qmui_topbar_text_btn_color_state_list="@color/text_black" /> | ||
| 39 | 32 | ||
| 40 | - <!--地图上面加一层类似于全透明黑色蒙版--> | ||
| 41 | - <LinearLayout | ||
| 42 | - android:layout_width="match_parent" | ||
| 43 | - android:layout_height="match_parent" | ||
| 44 | - android:background="#0D000000" | ||
| 45 | - android:clickable="false" | ||
| 46 | - android:focusable="false" | ||
| 47 | - android:focusableInTouchMode="false"></LinearLayout> | ||
| 48 | - | ||
| 49 | - <Button | ||
| 50 | - android:id="@+id/btn_add_trace" | ||
| 51 | - android:layout_width="wrap_content" | ||
| 52 | - android:layout_height="wrap_content" | ||
| 53 | - android:layout_gravity="center" | ||
| 54 | - android:layout_marginBottom="100dp" | ||
| 55 | - android:text="@string/layout_collect_bind_trace" | ||
| 56 | - android:textSize="15sp" /> | ||
| 57 | - <!----> | ||
| 58 | - <com.cnlive.strike.ui.widget.UIEmptyView | ||
| 59 | - android:id="@+id/empty_layout" | 33 | + <FrameLayout |
| 34 | + android:id="@+id/fl_root" | ||
| 60 | android:layout_width="match_parent" | 35 | android:layout_width="match_parent" |
| 61 | - android:layout_height="match_parent" | ||
| 62 | - android:background="@color/color_fff" | ||
| 63 | - android:focusable="true" | ||
| 64 | - android:focusableInTouchMode="true" | ||
| 65 | - android:visibility="gone" /> | 36 | + android:layout_height="match_parent"> |
| 66 | 37 | ||
| 67 | - </FrameLayout> | ||
| 68 | - </LinearLayout> | ||
| 69 | - <!-- SLIDING LAYOUT --> | ||
| 70 | - <FrameLayout | ||
| 71 | - android:id="@+id/dragView" | ||
| 72 | - android:layout_width="match_parent" | ||
| 73 | - android:layout_height="match_parent" | ||
| 74 | - android:clickable="false" | ||
| 75 | - android:focusable="false"> | 38 | + <com.baidu.mapapi.map.MapView |
| 39 | + android:id="@+id/mapView" | ||
| 40 | + android:layout_width="match_parent" | ||
| 41 | + android:layout_height="match_parent"></com.baidu.mapapi.map.MapView> | ||
| 76 | 42 | ||
| 77 | - <ScrollView | ||
| 78 | - android:id="@+id/scrollView" | 43 | + <!--地图上面加一层类似于全透明黑色蒙版--> |
| 44 | + <LinearLayout | ||
| 45 | + android:layout_width="match_parent" | ||
| 46 | + android:layout_height="match_parent" | ||
| 47 | + android:background="#0D000000" | ||
| 48 | + android:clickable="false" | ||
| 49 | + android:focusable="false" | ||
| 50 | + android:focusableInTouchMode="false"></LinearLayout> | ||
| 51 | + | ||
| 52 | + <!----> | ||
| 53 | + | ||
| 54 | + | ||
| 55 | + </FrameLayout> | ||
| 56 | + </LinearLayout> | ||
| 57 | + <!-- SLIDING LAYOUT --> | ||
| 58 | + <FrameLayout | ||
| 59 | + android:id="@+id/dragView" | ||
| 79 | android:layout_width="match_parent" | 60 | android:layout_width="match_parent" |
| 80 | android:layout_height="match_parent" | 61 | android:layout_height="match_parent" |
| 81 | - android:scrollbars="none"> | 62 | + android:background="@drawable/shape_left_right_10dp_white_raduis_bg" |
| 63 | + android:clickable="false" | ||
| 64 | + android:focusable="false"> | ||
| 82 | 65 | ||
| 83 | - <LinearLayout | ||
| 84 | - android:id="@+id/ll_root" | 66 | + <ScrollView |
| 67 | + android:id="@+id/scrollView" | ||
| 85 | android:layout_width="match_parent" | 68 | android:layout_width="match_parent" |
| 86 | - android:layout_height="wrap_content" | ||
| 87 | - android:orientation="vertical"> | ||
| 88 | - <!--跑道--> | ||
| 89 | - <include | ||
| 90 | - android:id="@+id/include_street" | ||
| 91 | - layout="@layout/layout_collect_run_detail_street" /> | ||
| 92 | - <!----> | ||
| 93 | - <View | 69 | + android:layout_height="match_parent" |
| 70 | + android:scrollbars="none"> | ||
| 71 | + | ||
| 72 | + <LinearLayout | ||
| 73 | + android:id="@+id/ll_root" | ||
| 94 | android:layout_width="match_parent" | 74 | android:layout_width="match_parent" |
| 95 | - android:layout_height="20dp" | ||
| 96 | - android:background="#F4F4F4" /> | ||
| 97 | - <!--路线介绍--> | ||
| 98 | - <include | ||
| 99 | - android:id="@+id/include_street_introduce" | ||
| 100 | - layout="@layout/layout_run_detail_street_introduce" /> | ||
| 101 | - </LinearLayout> | ||
| 102 | - | ||
| 103 | - </ScrollView> | ||
| 104 | - <!--按钮--> | ||
| 105 | - <RelativeLayout | ||
| 106 | - android:id="@+id/rl_scrollView_startBtn" | ||
| 107 | - android:layout_width="match_parent" | ||
| 108 | - android:layout_height="40sp" | ||
| 109 | - android:layout_gravity="bottom" | ||
| 110 | - android:background="@color/green_round" | ||
| 111 | - android:tag="0"> | ||
| 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:tag="0" | ||
| 119 | - android:text="@string/layout_collect_bind_trace" | ||
| 120 | - android:textColor="@color/white" | ||
| 121 | - android:textSize="18sp" /> | ||
| 122 | - | ||
| 123 | - | ||
| 124 | - </RelativeLayout> | ||
| 125 | - </FrameLayout> | ||
| 126 | - </com.sothree.slidinguppanel.SlidingUpPanelLayout> | 75 | + android:layout_height="wrap_content" |
| 76 | + android:orientation="vertical"> | ||
| 77 | + <!--跑道--> | ||
| 78 | + <include | ||
| 79 | + android:id="@+id/include_street" | ||
| 80 | + layout="@layout/layout_collect_run_detail_street" /> | ||
| 81 | + <!----> | ||
| 82 | + <View | ||
| 83 | + android:layout_width="match_parent" | ||
| 84 | + android:layout_height="10dp" | ||
| 85 | + android:background="#F4F4F4" /> | ||
| 86 | + <!--路线介绍--> | ||
| 87 | + <include | ||
| 88 | + android:id="@+id/include_street_introduce" | ||
| 89 | + layout="@layout/layout_run_detail_street_introduce" /> | ||
| 90 | + </LinearLayout> | ||
| 91 | + | ||
| 92 | + </ScrollView> | ||
| 93 | + </FrameLayout> | ||
| 94 | + </com.sothree.slidinguppanel.SlidingUpPanelLayout> | ||
| 95 | + <!--按钮--> | ||
| 96 | + <RelativeLayout | ||
| 97 | + android:id="@+id/rl_scrollView_add_trace" | ||
| 98 | + android:layout_width="match_parent" | ||
| 99 | + android:layout_height="40sp" | ||
| 100 | + android:layout_gravity="bottom" | ||
| 101 | + android:background="@color/green_round" | ||
| 102 | + android:tag="0"> | ||
| 103 | + | ||
| 104 | + <TextView | ||
| 105 | + android:id="@+id/tv_run_now" | ||
| 106 | + android:layout_width="wrap_content" | ||
| 107 | + android:layout_height="wrap_content" | ||
| 108 | + android:layout_centerInParent="true" | ||
| 109 | + android:tag="0" | ||
| 110 | + android:text="@string/layout_collect_bind_trace" | ||
| 111 | + android:textColor="@color/white" | ||
| 112 | + android:textSize="18sp" /> | ||
| 113 | + | ||
| 114 | + <TextView | ||
| 115 | + android:id="@+id/tv_go_tip" | ||
| 116 | + android:layout_width="wrap_content" | ||
| 117 | + android:layout_height="wrap_content" | ||
| 118 | + android:layout_alignParentRight="true" | ||
| 119 | + android:layout_centerInParent="true" | ||
| 120 | + android:layout_centerVertical="true" | ||
| 121 | + android:layout_marginRight="10dp" | ||
| 122 | + android:text="Go!" | ||
| 123 | + android:textColor="@color/white" | ||
| 124 | + android:textSize="18sp" | ||
| 125 | + android:visibility="gone" /> | ||
| 126 | + | ||
| 127 | + </RelativeLayout> | ||
| 128 | + | ||
| 129 | + <com.cnlive.strike.ui.widget.UIEmptyView | ||
| 130 | + android:id="@+id/empty_layout" | ||
| 131 | + android:layout_width="match_parent" | ||
| 132 | + android:layout_height="match_parent" | ||
| 133 | + android:background="@color/color_fff" | ||
| 134 | + android:focusable="true" | ||
| 135 | + android:focusableInTouchMode="true" | ||
| 136 | + android:visibility="gone" /> | ||
| 137 | + </FrameLayout> | ||
| 127 | 138 | ||
| 128 | 139 | ||
| 129 | </layout> | 140 | </layout> |
| 130 | \ No newline at end of file | 141 | \ No newline at end of file |
moudle_pedometer/src/main/res/layout/fragment_finish_run_map.xml
| @@ -93,6 +93,8 @@ | @@ -93,6 +93,8 @@ | ||
| 93 | android:layout_width="match_parent" | 93 | android:layout_width="match_parent" |
| 94 | android:layout_height="wrap_content" | 94 | android:layout_height="wrap_content" |
| 95 | android:orientation="vertical"> | 95 | android:orientation="vertical"> |
| 96 | + | ||
| 97 | + | ||
| 96 | <!--用户个人信息--> | 98 | <!--用户个人信息--> |
| 97 | <include | 99 | <include |
| 98 | android:id="@+id/include_finish_user_info" | 100 | android:id="@+id/include_finish_user_info" |
moudle_pedometer/src/main/res/layout/fragment_run_race_detail.xml
| @@ -80,6 +80,8 @@ | @@ -80,6 +80,8 @@ | ||
| 80 | android:layout_width="match_parent" | 80 | android:layout_width="match_parent" |
| 81 | android:layout_height="wrap_content" | 81 | android:layout_height="wrap_content" |
| 82 | android:orientation="vertical"> | 82 | android:orientation="vertical"> |
| 83 | + | ||
| 84 | + | ||
| 83 | <!--跑道--> | 85 | <!--跑道--> |
| 84 | <include | 86 | <include |
| 85 | android:id="@+id/include_street" | 87 | android:id="@+id/include_street" |
| @@ -172,8 +174,7 @@ | @@ -172,8 +174,7 @@ | ||
| 172 | android:layout_gravity="center" | 174 | android:layout_gravity="center" |
| 173 | android:text="路线详情" | 175 | android:text="路线详情" |
| 174 | android:textColor="@color/white" | 176 | android:textColor="@color/white" |
| 175 | - android:textSize="18sp" | ||
| 176 | - /> | 177 | + android:textSize="18sp" /> |
| 177 | </FrameLayout> | 178 | </FrameLayout> |
| 178 | 179 | ||
| 179 | <com.cnlive.strike.ui.widget.UIEmptyView | 180 | <com.cnlive.strike.ui.widget.UIEmptyView |
moudle_pedometer/src/main/res/layout/layout_collect_run_detail_street.xml
| @@ -22,15 +22,21 @@ | @@ -22,15 +22,21 @@ | ||
| 22 | android:id="@+id/ll_first_panel_root" | 22 | android:id="@+id/ll_first_panel_root" |
| 23 | android:layout_width="match_parent" | 23 | android:layout_width="match_parent" |
| 24 | android:layout_height="wrap_content" | 24 | android:layout_height="wrap_content" |
| 25 | - android:background="@drawable/shape_left_right_10dp_white_raduis_bg" | ||
| 26 | android:orientation="vertical"> | 25 | android:orientation="vertical"> |
| 26 | + | ||
| 27 | + <ImageView | ||
| 28 | + android:layout_width="13dp" | ||
| 29 | + android:layout_height="7dp" | ||
| 30 | + android:layout_gravity="center_horizontal" | ||
| 31 | + android:layout_marginTop="5dp" | ||
| 32 | + android:background="@drawable/icon_slide_up" /> | ||
| 27 | <!--活动标题--> | 33 | <!--活动标题--> |
| 28 | <TextView | 34 | <TextView |
| 29 | android:id="@+id/tv_race_title" | 35 | android:id="@+id/tv_race_title" |
| 30 | android:layout_width="wrap_content" | 36 | android:layout_width="wrap_content" |
| 31 | android:layout_height="wrap_content" | 37 | android:layout_height="wrap_content" |
| 32 | android:layout_marginLeft="10dp" | 38 | android:layout_marginLeft="10dp" |
| 33 | - android:layout_marginTop="10dp" | 39 | + android:layout_marginTop="5dp" |
| 34 | android:text="--" | 40 | android:text="--" |
| 35 | android:textColor="@color/text_black" | 41 | android:textColor="@color/text_black" |
| 36 | android:textSize="18sp" | 42 | android:textSize="18sp" |
| @@ -76,6 +82,15 @@ | @@ -76,6 +82,15 @@ | ||
| 76 | 82 | ||
| 77 | </LinearLayout> | 83 | </LinearLayout> |
| 78 | </LinearLayout> | 84 | </LinearLayout> |
| 85 | + | ||
| 86 | + <View | ||
| 87 | + android:layout_width="match_parent" | ||
| 88 | + android:layout_height="1dp" | ||
| 89 | + android:layout_marginLeft="35dp" | ||
| 90 | + android:layout_marginTop="-5dp" | ||
| 91 | + android:layout_marginRight="35dp" | ||
| 92 | + android:layout_marginBottom="5dp" | ||
| 93 | + android:background="@color/line" /> | ||
| 79 | </LinearLayout> | 94 | </LinearLayout> |
| 80 | <!----> | 95 | <!----> |
| 81 | <LinearLayout | 96 | <LinearLayout |
| @@ -92,8 +107,8 @@ | @@ -92,8 +107,8 @@ | ||
| 92 | android:gravity="center_vertical"> | 107 | android:gravity="center_vertical"> |
| 93 | 108 | ||
| 94 | <View | 109 | <View |
| 95 | - android:layout_width="10dp" | ||
| 96 | - android:layout_height="10dp" | 110 | + android:layout_width="6dp" |
| 111 | + android:layout_height="6dp" | ||
| 97 | android:layout_marginLeft="25dp" | 112 | android:layout_marginLeft="25dp" |
| 98 | android:background="@drawable/shape_circle_green" /> | 113 | android:background="@drawable/shape_circle_green" /> |
| 99 | 114 | ||
| @@ -114,6 +129,14 @@ | @@ -114,6 +129,14 @@ | ||
| 114 | android:textColor="@color/text_black" | 129 | android:textColor="@color/text_black" |
| 115 | android:textSize="15sp" /> | 130 | android:textSize="15sp" /> |
| 116 | </LinearLayout> | 131 | </LinearLayout> |
| 132 | + <!--竖线--> | ||
| 133 | + <View | ||
| 134 | + android:layout_width="1dp" | ||
| 135 | + android:layout_height="20dp" | ||
| 136 | + android:layout_marginLeft="37dp" | ||
| 137 | + android:layout_marginTop="-3dp" | ||
| 138 | + android:layout_marginBottom="-13dp" | ||
| 139 | + android:background="@color/vertical_line" /> | ||
| 117 | <!--终点--> | 140 | <!--终点--> |
| 118 | <LinearLayout | 141 | <LinearLayout |
| 119 | android:id="@+id/ll_end_point" | 142 | android:id="@+id/ll_end_point" |
| @@ -124,8 +147,8 @@ | @@ -124,8 +147,8 @@ | ||
| 124 | android:gravity="center_vertical"> | 147 | android:gravity="center_vertical"> |
| 125 | 148 | ||
| 126 | <View | 149 | <View |
| 127 | - android:layout_width="10dp" | ||
| 128 | - android:layout_height="10dp" | 150 | + android:layout_width="6dp" |
| 151 | + android:layout_height="6dp" | ||
| 129 | android:layout_marginLeft="25dp" | 152 | android:layout_marginLeft="25dp" |
| 130 | android:background="@drawable/shape_circle_red" /> | 153 | android:background="@drawable/shape_circle_red" /> |
| 131 | 154 | ||
| @@ -189,7 +212,7 @@ | @@ -189,7 +212,7 @@ | ||
| 189 | android:layout_width="wrap_content" | 212 | android:layout_width="wrap_content" |
| 190 | android:layout_height="match_parent" | 213 | android:layout_height="match_parent" |
| 191 | android:layout_marginLeft="5dp" | 214 | android:layout_marginLeft="5dp" |
| 192 | - android:text="——" | 215 | + android:text="一" |
| 193 | android:textColor="@color/text_black" | 216 | android:textColor="@color/text_black" |
| 194 | android:textSize="15sp" /> | 217 | android:textSize="15sp" /> |
| 195 | 218 | ||
| @@ -206,9 +229,9 @@ | @@ -206,9 +229,9 @@ | ||
| 206 | <View | 229 | <View |
| 207 | android:layout_width="match_parent" | 230 | android:layout_width="match_parent" |
| 208 | android:layout_height="1dp" | 231 | android:layout_height="1dp" |
| 209 | - android:layout_marginLeft="10dp" | 232 | + android:layout_marginLeft="35dp" |
| 210 | android:layout_marginTop="5dp" | 233 | android:layout_marginTop="5dp" |
| 211 | - android:layout_marginRight="10dp" | 234 | + android:layout_marginRight="35dp" |
| 212 | android:background="@color/line" /> | 235 | android:background="@color/line" /> |
| 213 | <!--活动时间--> | 236 | <!--活动时间--> |
| 214 | <LinearLayout | 237 | <LinearLayout |
| @@ -251,7 +274,7 @@ | @@ -251,7 +274,7 @@ | ||
| 251 | android:layout_width="wrap_content" | 274 | android:layout_width="wrap_content" |
| 252 | android:layout_height="match_parent" | 275 | android:layout_height="match_parent" |
| 253 | android:layout_marginLeft="5dp" | 276 | android:layout_marginLeft="5dp" |
| 254 | - android:text="——" | 277 | + android:text="一" |
| 255 | android:textColor="@color/text_black" | 278 | android:textColor="@color/text_black" |
| 256 | android:textSize="15sp" /> | 279 | android:textSize="15sp" /> |
| 257 | 280 | ||
| @@ -268,9 +291,9 @@ | @@ -268,9 +291,9 @@ | ||
| 268 | <View | 291 | <View |
| 269 | android:layout_width="match_parent" | 292 | android:layout_width="match_parent" |
| 270 | android:layout_height="1dp" | 293 | android:layout_height="1dp" |
| 271 | - android:layout_marginLeft="10dp" | 294 | + android:layout_marginLeft="35dp" |
| 272 | android:layout_marginTop="5dp" | 295 | android:layout_marginTop="5dp" |
| 273 | - android:layout_marginRight="10dp" | 296 | + android:layout_marginRight="35dp" |
| 274 | android:background="@color/line" /> | 297 | android:background="@color/line" /> |
| 275 | <!--活动类型--> | 298 | <!--活动类型--> |
| 276 | <LinearLayout | 299 | <LinearLayout |
| @@ -311,6 +334,15 @@ | @@ -311,6 +334,15 @@ | ||
| 311 | android:textStyle="bold" /> | 334 | android:textStyle="bold" /> |
| 312 | 335 | ||
| 313 | </LinearLayout> | 336 | </LinearLayout> |
| 337 | + | ||
| 338 | + <View | ||
| 339 | + android:layout_width="match_parent" | ||
| 340 | + android:layout_height="1dp" | ||
| 341 | + android:layout_marginLeft="35dp" | ||
| 342 | + android:layout_marginTop="5dp" | ||
| 343 | + android:layout_marginRight="35dp" | ||
| 344 | + android:layout_marginBottom="15dp" | ||
| 345 | + android:background="@color/line" /> | ||
| 314 | </LinearLayout> | 346 | </LinearLayout> |
| 315 | <!----> | 347 | <!----> |
| 316 | </LinearLayout> | 348 | </LinearLayout> |
moudle_pedometer/src/main/res/layout/layout_run_detail_street.xml
| @@ -26,13 +26,20 @@ | @@ -26,13 +26,20 @@ | ||
| 26 | android:layout_marginRight="15dp" | 26 | android:layout_marginRight="15dp" |
| 27 | android:background="@color/white" | 27 | android:background="@color/white" |
| 28 | android:orientation="vertical"> | 28 | android:orientation="vertical"> |
| 29 | + | ||
| 30 | + <ImageView | ||
| 31 | + android:layout_width="13dp" | ||
| 32 | + android:layout_height="7dp" | ||
| 33 | + android:layout_gravity="center_horizontal" | ||
| 34 | + android:layout_marginTop="5dp" | ||
| 35 | + android:background="@drawable/icon_slide_up" /> | ||
| 29 | <!--活动标题--> | 36 | <!--活动标题--> |
| 30 | <TextView | 37 | <TextView |
| 31 | android:id="@+id/tv_race_title" | 38 | android:id="@+id/tv_race_title" |
| 32 | android:layout_width="wrap_content" | 39 | android:layout_width="wrap_content" |
| 33 | android:layout_height="wrap_content" | 40 | android:layout_height="wrap_content" |
| 34 | android:layout_marginLeft="10dp" | 41 | android:layout_marginLeft="10dp" |
| 35 | - android:layout_marginTop="15dp" | 42 | + android:layout_marginTop="5dp" |
| 36 | android:text="--" | 43 | android:text="--" |
| 37 | android:textColor="@color/text_black" | 44 | android:textColor="@color/text_black" |
| 38 | android:textSize="18sp" | 45 | android:textSize="18sp" |
moudle_pedometer/src/main/res/values/colors.xml
| @@ -20,6 +20,7 @@ | @@ -20,6 +20,7 @@ | ||
| 20 | <color name="black_50">#80000000</color> | 20 | <color name="black_50">#80000000</color> |
| 21 | <color name="black_20">#33000000</color> | 21 | <color name="black_20">#33000000</color> |
| 22 | 22 | ||
| 23 | + | ||
| 23 | <color name="white_50">#80FFFFFF</color> | 24 | <color name="white_50">#80FFFFFF</color> |
| 24 | 25 | ||
| 25 | <color name="green">#23D026</color> | 26 | <color name="green">#23D026</color> |