Commit 447fd4309fcee93435de4da870d4c4c2f37537ca
1 parent
3765c74e
1.对接运动赛事详情页接口
Showing
11 changed files
with
220 additions
and
61 deletions
library_baidumap/build.gradle
moudle_pedometer/build.gradle
| ... | ... | @@ -110,9 +110,11 @@ dependencies { |
| 110 | 110 | implementation project(':library_baidumap') |
| 111 | 111 | implementation project(':share') |
| 112 | 112 | implementation project(':lib_network') |
| 113 | + compile project(path: ':lib_network') | |
| 113 | 114 | |
| 114 | 115 | } |
| 115 | 116 | |
| 117 | + | |
| 116 | 118 | configurations { |
| 117 | 119 | all*.exclude group: 'com.squareup.okhttp3', module: 'okhttp' |
| 118 | 120 | all*.exclude group: 'com.squareup.okio' | ... | ... |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/presenter/RunRaceDetailFragmentPresenter.java
| 1 | 1 | package com.cnlive.moudle.pedometer.frame.presenter; |
| 2 | 2 | |
| 3 | 3 | import android.content.Context; |
| 4 | +import android.view.View; | |
| 5 | +import android.widget.Toast; | |
| 4 | 6 | |
| 7 | +import com.cnlive.libs.base.logic.Config; | |
| 5 | 8 | import com.cnlive.libs.base.logic.Logic; |
| 9 | +import com.cnlive.libs.base.logic.callback.DataCallback; | |
| 6 | 10 | import com.cnlive.libs.base.logic.callback.FailureCallback; |
| 11 | +import com.cnlive.libs.base.logic.callback.StateCallback; | |
| 12 | +import com.cnlive.libs.base.logic.callback.SuccessCallback; | |
| 7 | 13 | import com.cnlive.libs.data.network.model.IBaseInfo; |
| 8 | 14 | import com.cnlive.moudle.pedometer.frame.view.RunRaceDetailFragmentView; |
| 9 | 15 | import com.cnlive.moudle.pedometer.frame.view.RunningMapFragmentView; |
| 16 | +import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil; | |
| 17 | +import com.cnlive.strike.data.network.api.ApiRequest; | |
| 18 | +import com.cnlive.strike.data.network.api.ApiServiceDaren; | |
| 19 | +import com.cnlive.strike.data.network.model.BaseInfo; | |
| 20 | +import com.cnlive.strike.data.network.model.runAbout.RunRaceDetailInfo; | |
| 10 | 21 | import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; |
| 11 | 22 | |
| 12 | 23 | import java.util.HashMap; |
| ... | ... | @@ -14,6 +25,9 @@ import java.util.Map; |
| 14 | 25 | |
| 15 | 26 | import io.reactivex.disposables.Disposable; |
| 16 | 27 | |
| 28 | +import static com.cnlive.libs.base.logic.Config.STATE_IDLE; | |
| 29 | +import static com.cnlive.libs.base.logic.Config.STATE_LOAD; | |
| 30 | + | |
| 17 | 31 | public class RunRaceDetailFragmentPresenter extends MvpBasePresenter<RunRaceDetailFragmentView> { |
| 18 | 32 | |
| 19 | 33 | public void getRunRaceDetailInfo(Context context, String id, String userId) { |
| ... | ... | @@ -21,41 +35,87 @@ public class RunRaceDetailFragmentPresenter extends MvpBasePresenter<RunRaceDeta |
| 21 | 35 | Map<String, String> paramsMap = new HashMap<>(); |
| 22 | 36 | //赛事id |
| 23 | 37 | paramsMap.put("id", id); |
| 24 | - paramsMap.put("userId", userId); | |
| 38 | + paramsMap.put("sid", userId); | |
| 25 | 39 | |
| 26 | 40 | // Logic.create(paramsMap) |
| 27 | -// .action(new Logic.Action<Map<String, String>, BaseInfo>() { | |
| 41 | +// .action(new Logic.Action<Map<String, String>, BaseInfo<RunRaceDetailInfo>>() { | |
| 28 | 42 | // @Override |
| 29 | -// public Disposable action(Map<String, String> paramsMap, DataCallback<SubscriptionBaseInfo> dataCallback) { | |
| 30 | -// return SubscriptionRequest.service(ApiServiceInterest.class, api -> api.userFollowAddGroup(paramsMap)).subscribe(context, dataCallback); | |
| 43 | +// public Disposable action(Map<String, String> paramsMap, DataCallback<BaseInfo<RunRaceDetailInfo>> dataCallback) { | |
| 44 | +// return ApiRequest.service(ApiServiceDaren.class, api -> api.getRunRaceDetail(paramsMap)).subscribe(context, dataCallback); | |
| 31 | 45 | // } |
| 32 | -// }).<SubscriptionBaseInfo>event() | |
| 33 | -// .setSuccessCallback(new SuccessCallback<SubscriptionBaseInfo>() { | |
| 46 | +// }).<BaseInfo<RunRaceDetailInfo>>event() | |
| 47 | +// .setStateCallback(new StateCallback() { | |
| 34 | 48 | // @Override |
| 35 | -// public void onSuccess(SubscriptionBaseInfo subscriptionBaseInfo) { | |
| 36 | -// if (getView() != null) { | |
| 37 | -// getView().hideQmuiDialog(); | |
| 49 | +// public void onState(int i) { | |
| 50 | +// if (getView() == null) { | |
| 51 | +// return; | |
| 52 | +// } | |
| 53 | +// if (i == STATE_LOAD) { | |
| 54 | +// QMUITipDialogUtil.loadingDialog(context, "正在获取赛事详情", false); | |
| 55 | +// } else if (i == STATE_IDLE) { | |
| 38 | 56 | // } |
| 39 | -// callBack.onSuccess(); | |
| 40 | -// } | |
| 41 | 57 | // |
| 58 | +// } | |
| 42 | 59 | // }) |
| 43 | -// .setFailureCallback(new FailureCallback() { | |
| 60 | +// .setSuccessCallback(new SuccessCallback<BaseInfo<RunRaceDetailInfo>>() { | |
| 44 | 61 | // @Override |
| 45 | -// public void onFailure(int i, String s) { | |
| 46 | -// if (getView() != null) { | |
| 47 | -// getView().hideQmuiDialog(); | |
| 48 | -// getView().showFailDailog("网络请求失败,请稍后重试", 2); | |
| 49 | -// if (!TextUtils.isEmpty(s)) { | |
| 50 | -// callBack.onFailed(s); | |
| 51 | -// } else { | |
| 52 | -// callBack.onFailed("接口请求失败,请重试!"); | |
| 53 | -// } | |
| 62 | +// public void onSuccess(BaseInfo<RunRaceDetailInfo> runRaceDetailInfoBaseInfo) { | |
| 63 | +// if (getView() == null) { | |
| 64 | +// return; | |
| 54 | 65 | // } |
| 55 | 66 | // } |
| 56 | -// }) | |
| 57 | -// | |
| 58 | -// .start(); | |
| 67 | +// }).setFailureCallback(new FailureCallback() { | |
| 68 | +// @Override | |
| 69 | +// public void onFailure(int i, String s) { | |
| 70 | +// if (getView() == null) { | |
| 71 | +// return; | |
| 72 | +// } | |
| 73 | +// } | |
| 74 | +// }).start(); | |
| 75 | + Logic.create(paramsMap).action(new Logic.Action<Map<String, String>, BaseInfo<RunRaceDetailInfo>>() { | |
| 76 | + @Override | |
| 77 | + public Disposable action(Map<String, String> stringStringMap, DataCallback<BaseInfo<RunRaceDetailInfo>> dataCallback) { | |
| 78 | + return ApiRequest.observable(ApiServiceDaren.class, api -> api.getRunRaceDetail(stringStringMap)).subscribe(context, dataCallback); | |
| 79 | + } | |
| 80 | + }).<BaseInfo<RunRaceDetailInfo>>event() | |
| 81 | + .setStateCallback(new StateCallback() { | |
| 82 | + @Override | |
| 83 | + public void onState(int i) { | |
| 84 | + if (getView() == null) { | |
| 85 | + return; | |
| 86 | + } | |
| 87 | + if (i == STATE_LOAD) { | |
| 88 | + getView().showLoadingView(); | |
| 89 | + } else if (i == STATE_IDLE) { | |
| 90 | + getView().hideLoadingView(); | |
| 91 | + } | |
| 92 | + } | |
| 93 | + }) | |
| 94 | + .setFailureCallback(new FailureCallback() { | |
| 95 | + @Override | |
| 96 | + public void onFailure(int code, String message) { | |
| 97 | + if (getView() == null) { | |
| 98 | + return; | |
| 99 | + } | |
| 100 | + getView().hideLoadingView(); | |
| 101 | + getView().showRetryView(code, new View.OnClickListener() { | |
| 102 | + @Override | |
| 103 | + public void onClick(View view) { | |
| 104 | + getRunRaceDetailInfo(context, id, userId); | |
| 105 | + } | |
| 106 | + }); | |
| 107 | + } | |
| 108 | + }).setSuccessCallback(new SuccessCallback<BaseInfo<RunRaceDetailInfo>>() { | |
| 109 | + @Override | |
| 110 | + public void onSuccess(BaseInfo<RunRaceDetailInfo> baseInfo) { | |
| 111 | + if (getView() == null) { | |
| 112 | + return; | |
| 113 | + } | |
| 114 | + if (baseInfo.getData() != null) { | |
| 115 | + getView().initView(baseInfo.getData()); | |
| 116 | + } | |
| 117 | + } | |
| 118 | + }).start(); | |
| 59 | 119 | |
| 60 | 120 | } |
| 61 | 121 | } | ... | ... |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/RunRaceDetailFragmentView.java
| ... | ... | @@ -9,6 +9,7 @@ import android.hardware.Sensor; |
| 9 | 9 | import android.hardware.SensorEvent; |
| 10 | 10 | import android.hardware.SensorEventListener; |
| 11 | 11 | import android.hardware.SensorManager; |
| 12 | +import android.text.TextUtils; | |
| 12 | 13 | import android.util.Log; |
| 13 | 14 | import android.view.LayoutInflater; |
| 14 | 15 | import android.view.View; |
| ... | ... | @@ -63,6 +64,7 @@ import com.cnlive.moudle.pedometer.utils.BitmapUtil; |
| 63 | 64 | import com.cnlive.moudle.pedometer.utils.GsonUtil; |
| 64 | 65 | import com.cnlive.moudle.pedometer.utils.MyMapUtil; |
| 65 | 66 | import com.cnlive.moudle.pedometer.utils.ScreenUtil; |
| 67 | +import com.cnlive.strike.data.network.model.runAbout.RunRaceDetailInfo; | |
| 66 | 68 | import com.example.moudle_pedometer.R; |
| 67 | 69 | import com.hannesdorfmann.mosby3.mvp.MvpView; |
| 68 | 70 | import com.sothree.slidinguppanel.SlidingUpPanelLayout; |
| ... | ... | @@ -110,6 +112,7 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { |
| 110 | 112 | private LinkedList<LatLng> importLatLngs;//关键点 |
| 111 | 113 | private LatLng startLatLng = new LatLng(39.934733, 116.308646);//起始点 |
| 112 | 114 | private List<LatLng> trackPoints; |
| 115 | + private RunRaceDetailInfo runRaceDetailInfo; | |
| 113 | 116 | |
| 114 | 117 | public RunRaceDetailFragmentView(RunRaceDetailFragment fragment) { |
| 115 | 118 | this.fragment = fragment; |
| ... | ... | @@ -119,19 +122,25 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { |
| 119 | 122 | return fragment == null ? null : fragment.getActivity(); |
| 120 | 123 | } |
| 121 | 124 | |
| 122 | - public void initView() { | |
| 125 | + | |
| 126 | + public void initView(RunRaceDetailInfo runRaceDetailInfo) { | |
| 123 | 127 | if (fragment.getActivity() == null) { |
| 124 | 128 | return; |
| 125 | 129 | } |
| 126 | - //初始化运营人员所选的关键点 | |
| 127 | - trackPoints = GsonUtil.jsonToList(test, LatLng.class); | |
| 128 | - initMap(); | |
| 129 | - MyMapUtil.drawServerLineTrack(getContext(), baiduMap, trackPoints, SortType.asc, R.color.green_round, R.drawable.icon_start, R.drawable.icon_end); | |
| 130 | + this.runRaceDetailInfo = runRaceDetailInfo; | |
| 131 | +// //初始化运营人员所选的关键点 | |
| 132 | +// trackPoints = GsonUtil.jsonToList(test, LatLng.class); | |
| 133 | +// MyMapUtil.drawServerLineTrack(getContext(), baiduMap, trackPoints, SortType.asc, R.color.green_round, R.drawable.icon_start, R.drawable.icon_end); | |
| 134 | + //显示地图 | |
| 135 | + fragment.binding.mapView.setVisibility(View.VISIBLE); | |
| 136 | + //隐藏底部滑动卡片 | |
| 137 | + fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); | |
| 138 | + //隐藏空视图 | |
| 139 | + fragment.binding.emptyLayout.setVisibility(View.GONE); | |
| 140 | + //显示立即报名按钮 | |
| 141 | + fragment.binding.includeStreet.rlStartBtn.setVisibility(View.VISIBLE); | |
| 130 | 142 | //设置底部卡片第一次可滑动的位置 |
| 131 | 143 | fragment.binding.slidingLayout.setAnchorPoint(0.6f); |
| 132 | - //设置底部卡片初始位置 | |
| 133 | -// fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(fragment.getActivity(), 140)); | |
| 134 | - fragment.binding.includeStreet.rlStartBtn.setVisibility(View.VISIBLE); | |
| 135 | 144 | fragment.binding.slidingLayout.addPanelSlideListener(new SlidingUpPanelLayout.PanelSlideListener() { |
| 136 | 145 | @Override |
| 137 | 146 | public void onPanelSlide(View panel, float slideOffset) { |
| ... | ... | @@ -176,6 +185,33 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { |
| 176 | 185 | public void onPanelStateChanged(View panel, SlidingUpPanelLayout.PanelState previousState, SlidingUpPanelLayout.PanelState newState) { |
| 177 | 186 | } |
| 178 | 187 | }); |
| 188 | + /*************************设置相关页面数据***************************/ | |
| 189 | + //设置标题 | |
| 190 | + if (!TextUtils.isEmpty(runRaceDetailInfo.getTitle())) { | |
| 191 | + fragment.binding.includeStreet.tvRaceTitle.setText(runRaceDetailInfo.getTitle()); | |
| 192 | + } | |
| 193 | + //设置活动地点 | |
| 194 | + if (!TextUtils.isEmpty(runRaceDetailInfo.getAddress())) { | |
| 195 | + fragment.binding.includeStreet.tvAddress.setText(runRaceDetailInfo.getAddress()); | |
| 196 | + } | |
| 197 | + //设置活动距离 | |
| 198 | + if (!TextUtils.isEmpty(runRaceDetailInfo.getMileage())) { | |
| 199 | + fragment.binding.includeStreet.tvMileage.setText(runRaceDetailInfo.getMileage()); | |
| 200 | + } | |
| 201 | + //设置起点 | |
| 202 | + if (!TextUtils.isEmpty(runRaceDetailInfo.getStartLocation())) { | |
| 203 | + fragment.binding.includeStreet.tvStartAddr.setText(runRaceDetailInfo.getStartLocation()); | |
| 204 | + } | |
| 205 | + //设置终点 | |
| 206 | + if (!TextUtils.isEmpty(runRaceDetailInfo.getEndLocation())) { | |
| 207 | + fragment.binding.includeStreet.tvEndAddr.setText(runRaceDetailInfo.getEndLocation()); | |
| 208 | + } | |
| 209 | + //设置起始报名时间 | |
| 210 | + if (!TextUtils.isEmpty(runRaceDetailInfo.getEndLocation())) { | |
| 211 | + fragment.binding.includeStreet.tvEndAddr.setText(runRaceDetailInfo.getEndLocation()); | |
| 212 | + } | |
| 213 | + | |
| 214 | + //设置 | |
| 179 | 215 | //开始按钮点击事件(未滑动) |
| 180 | 216 | fragment.binding.includeStreet.rlStartBtn.setOnClickListener(new View.OnClickListener() { |
| 181 | 217 | @Override |
| ... | ... | @@ -272,14 +308,15 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { |
| 272 | 308 | }); |
| 273 | 309 | } |
| 274 | 310 | |
| 275 | - private void initMap() { | |
| 311 | + public void initMap() { | |
| 276 | 312 | List<String> icons = new ArrayList<>(); |
| 277 | 313 | icons.add("http://yweb0.cnliveimg.com/images/headImg/2019/0505/1557039035723_small.jpg"); |
| 278 | 314 | icons.add("http://yweb0.cnliveimg.com/images/headImg/2019/0505/1557034319038_small.jpg"); |
| 279 | 315 | icons.add("http://yweb0.cnliveimg.com/images/headImg/2018/0902/1535858459612_small.jpg"); |
| 280 | 316 | icons.add("http://yweb0.cnliveimg.com/images/headImg/2019/0523/1558599016203_small.jpg"); |
| 281 | 317 | icons.add("http://yweb0.cnliveimg.com/images/headImg/2019/0505/1557039035723_small.jpg"); |
| 282 | - | |
| 318 | + //隐藏底部滑动卡片 | |
| 319 | + fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.HIDDEN); | |
| 283 | 320 | fragment.binding.includeStreet.fiveJoinPerson.initIconData(icons); |
| 284 | 321 | this.mMapView = fragment.binding.mapView; |
| 285 | 322 | if (baiduMap == null) { |
| ... | ... | @@ -295,13 +332,6 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { |
| 295 | 332 | mCurrentMode = MyLocationConfiguration.LocationMode.NORMAL; |
| 296 | 333 | // 设置定位图标修改为自定义marker |
| 297 | 334 | Bitmap pointBitmap = BitmapUtil.getBitmapFromDp(getContext(), BitmapFactory.decodeResource(getContext().getResources(), R.drawable.rt_ic_location), 50, 50); |
| 298 | -// View view = LayoutInflater.from(getContext()).inflate(R.layout.layout_anim, null); | |
| 299 | -// ImageView image = (ImageView) view.findViewById(R.id.iv_anim); | |
| 300 | -//// image.setBackgroundResource(R.drawable.fat_po); | |
| 301 | -// image.setImageResource(R.drawable.fat_po); | |
| 302 | -// AnimationDrawable anim = (AnimationDrawable) image.getDrawable(); | |
| 303 | -// anim.start(); | |
| 304 | -// BitmapDescriptorFactory.fromView(view); | |
| 305 | 335 | mCurrentMarker = BitmapDescriptorFactory.fromBitmap(pointBitmap); |
| 306 | 336 | //设置定位蓝点精度圆圈的填充颜色为透明色 |
| 307 | 337 | accuracyCircleFillColor = getContext().getResources().getColor(R.color.transparent); |
| ... | ... | @@ -346,11 +376,11 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { |
| 346 | 376 | baiduMap.setOnMapLoadedCallback(new BaiduMap.OnMapLoadedCallback() { |
| 347 | 377 | @Override |
| 348 | 378 | public void onMapLoaded() { |
| 349 | - //自动计算地图缩放 | |
| 350 | - MapStatus.Builder builder = new MapStatus.Builder(); | |
| 351 | - builder.target(MyMapUtil.getCenterZoomPosition(trackPoints)); | |
| 352 | - builder.zoom(MyMapUtil.getZoom(trackPoints)); | |
| 353 | - baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); | |
| 379 | +// //自动计算地图缩放 | |
| 380 | +// MapStatus.Builder builder = new MapStatus.Builder(); | |
| 381 | +// builder.target(MyMapUtil.getCenterZoomPosition(trackPoints)); | |
| 382 | +// builder.zoom(MyMapUtil.getZoom(trackPoints)); | |
| 383 | +// baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); | |
| 354 | 384 | |
| 355 | 385 | } |
| 356 | 386 | }); |
| ... | ... | @@ -689,4 +719,54 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { |
| 689 | 719 | // } |
| 690 | 720 | } |
| 691 | 721 | } |
| 722 | + | |
| 723 | + /** | |
| 724 | + * 显示loading | |
| 725 | + */ | |
| 726 | + public void showLoadingView() { | |
| 727 | + if (fragment.binding.emptyLayout == null) { | |
| 728 | + return; | |
| 729 | + } | |
| 730 | + fragment.binding.emptyLayout.show(true); | |
| 731 | + } | |
| 732 | + | |
| 733 | + /** | |
| 734 | + * 隐藏loading | |
| 735 | + */ | |
| 736 | + public void hideLoadingView() { | |
| 737 | + if (fragment.binding.emptyLayout == null) { | |
| 738 | + return; | |
| 739 | + } | |
| 740 | + fragment.binding.emptyLayout.hide(); | |
| 741 | + } | |
| 742 | + | |
| 743 | + /** | |
| 744 | + * 显示重试页面 | |
| 745 | + * | |
| 746 | + * @param errorCode | |
| 747 | + * @param listener | |
| 748 | + */ | |
| 749 | + public void showRetryView(int errorCode, View.OnClickListener listener) { | |
| 750 | + if (getContext() == null) { | |
| 751 | + return; | |
| 752 | + } | |
| 753 | + //隐藏地图 | |
| 754 | + fragment.binding.mapView.setVisibility(View.GONE); | |
| 755 | + //显示空视图 | |
| 756 | + fragment.binding.emptyLayout.setVisibility(View.VISIBLE); | |
| 757 | + //隐藏底部卡片 | |
| 758 | + fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.HIDDEN); | |
| 759 | + if (fragment.binding.emptyLayout == null) return; | |
| 760 | + String titleText = ""; | |
| 761 | + String detailText = ""; | |
| 762 | + if (errorCode == -3) { | |
| 763 | + titleText = getContext().getString(R.string.msg_failed_network_title); | |
| 764 | + detailText = getContext().getString(R.string.msg_failed_network_detail); | |
| 765 | + } else { | |
| 766 | + titleText = getContext().getString(R.string.msg_failed_other_title); | |
| 767 | + detailText = getContext().getString(R.string.msg_failed_other_detail); | |
| 768 | + } | |
| 769 | + fragment.binding.emptyLayout.show(false, titleText, detailText, getContext().getString(R.string.retry), R.drawable.wufalianjie, listener); | |
| 770 | + } | |
| 771 | + | |
| 692 | 772 | } | ... | ... |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/fragment/RaceRecorFragment.java
| ... | ... | @@ -14,7 +14,7 @@ import com.example.moudle_pedometer.databinding.FragmentRaceRecorBinding; |
| 14 | 14 | /** |
| 15 | 15 | * Created by hanyayun 019/05/30. |
| 16 | 16 | */ |
| 17 | -public class RaceRecorFragment extends MvpBindingFragment<RaceRecorView, RaceRecorPresenter,Object, FragmentRaceRecorBinding> { | |
| 17 | +public class RaceRecorFragment extends MvpBindingFragment<RaceRecorView, RaceRecorPresenter, Object, FragmentRaceRecorBinding> { | |
| 18 | 18 | |
| 19 | 19 | |
| 20 | 20 | public RaceRecorFragment() { |
| ... | ... | @@ -25,8 +25,7 @@ public class RaceRecorFragment extends MvpBindingFragment<RaceRecorView, RaceRec |
| 25 | 25 | @Override |
| 26 | 26 | public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { |
| 27 | 27 | super.onViewCreated(view, savedInstanceState); |
| 28 | - if(getMvpView() != null) getMvpView().initView(); | |
| 29 | - getPresenter().getData(); | |
| 28 | + if (getMvpView() != null) getMvpView().initView(); | |
| 30 | 29 | } |
| 31 | 30 | |
| 32 | 31 | @Override | ... | ... |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/fragment/RunRaceDetailFragment.java
| ... | ... | @@ -61,7 +61,10 @@ public class RunRaceDetailFragment extends QMUIFragment<RunRaceDetailFragmentVie |
| 61 | 61 | |
| 62 | 62 | mSensorManager = (SensorManager) getActivity().getSystemService(SENSOR_SERVICE);//获取传感器管理服务 |
| 63 | 63 | if (getMvpView() != null) { |
| 64 | - getMvpView().initView(); | |
| 64 | + getMvpView().initMap();; | |
| 65 | + } | |
| 66 | + if (getPresenter()!=null){ | |
| 67 | + getPresenter().getRunRaceDetailInfo(getActivity(),"116","10513196"); | |
| 65 | 68 | } |
| 66 | 69 | |
| 67 | 70 | } | ... | ... |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/utils/QMUITipDialogUtil.java
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/utils/TimeUtil.java
moudle_pedometer/src/main/res/layout/fragment_run_race_detail.xml
| ... | ... | @@ -17,6 +17,7 @@ |
| 17 | 17 | |
| 18 | 18 | <!-- MAIN CONTENT --> |
| 19 | 19 | <FrameLayout |
| 20 | + android:id="@+id/fl_root" | |
| 20 | 21 | android:layout_width="match_parent" |
| 21 | 22 | android:layout_height="match_parent"> |
| 22 | 23 | |
| ... | ... | @@ -50,7 +51,14 @@ |
| 50 | 51 | android:layout_margin="10dp" |
| 51 | 52 | android:background="@drawable/xqt_share" /> |
| 52 | 53 | <!----> |
| 53 | - | |
| 54 | + <com.cnlive.strike.ui.widget.UIEmptyView | |
| 55 | + android:id="@+id/empty_layout" | |
| 56 | + android:layout_width="match_parent" | |
| 57 | + android:layout_height="match_parent" | |
| 58 | + android:focusable="true" | |
| 59 | + android:focusableInTouchMode="true" | |
| 60 | + android:background="@color/color_fff" | |
| 61 | + android:visibility="gone" /> | |
| 54 | 62 | |
| 55 | 63 | </FrameLayout> |
| 56 | 64 | ... | ... |
moudle_pedometer/src/main/res/layout/layout_run_detail_street.xml
| ... | ... | @@ -66,15 +66,9 @@ |
| 66 | 66 | android:layout_marginTop="10dp" |
| 67 | 67 | android:layout_marginBottom="10dp"> |
| 68 | 68 | |
| 69 | - <TextView | |
| 70 | - android:layout_width="wrap_content" | |
| 71 | - android:layout_height="wrap_content" | |
| 72 | - android:layout_marginLeft="25dp" | |
| 73 | - android:text="北京" | |
| 74 | - android:textColor="@color/text_black" | |
| 75 | - android:textSize="15sp" /> | |
| 76 | 69 | |
| 77 | 70 | <TextView |
| 71 | + android:id="@+id/tv_address" | |
| 78 | 72 | android:layout_width="wrap_content" |
| 79 | 73 | android:layout_height="wrap_content" |
| 80 | 74 | android:layout_marginLeft="25dp" |
| ... | ... | @@ -83,6 +77,7 @@ |
| 83 | 77 | android:textSize="15sp" /> |
| 84 | 78 | |
| 85 | 79 | <TextView |
| 80 | + android:id="@+id/tv_mileage" | |
| 86 | 81 | android:layout_width="wrap_content" |
| 87 | 82 | android:layout_height="wrap_content" |
| 88 | 83 | android:layout_marginLeft="25dp" |
| ... | ... | @@ -154,6 +149,7 @@ |
| 154 | 149 | android:textSize="14sp" /> |
| 155 | 150 | |
| 156 | 151 | <TextView |
| 152 | + android:id="@+id/tv_start_addr" | |
| 157 | 153 | android:layout_width="wrap_content" |
| 158 | 154 | android:layout_height="wrap_content" |
| 159 | 155 | android:layout_marginLeft="10dp" |
| ... | ... | @@ -185,6 +181,7 @@ |
| 185 | 181 | android:textSize="14sp" /> |
| 186 | 182 | |
| 187 | 183 | <TextView |
| 184 | + android:id="@+id/tv_end_addr" | |
| 188 | 185 | android:layout_width="wrap_content" |
| 189 | 186 | android:layout_height="wrap_content" |
| 190 | 187 | android:layout_marginLeft="10dp" |
| ... | ... | @@ -223,6 +220,7 @@ |
| 223 | 220 | android:layout_marginTop="10dp"> |
| 224 | 221 | |
| 225 | 222 | <TextView |
| 223 | + android:id="@+id/tv_sign_up_start_time" | |
| 226 | 224 | android:layout_width="wrap_content" |
| 227 | 225 | android:layout_height="wrap_content" |
| 228 | 226 | android:layout_marginLeft="25dp" |
| ... | ... | @@ -239,6 +237,7 @@ |
| 239 | 237 | android:textSize="15sp" /> |
| 240 | 238 | |
| 241 | 239 | <TextView |
| 240 | + android:id="@+id/tv_sign_up_end_time" | |
| 242 | 241 | android:layout_width="wrap_content" |
| 243 | 242 | android:layout_height="wrap_content" |
| 244 | 243 | android:layout_marginLeft="5dp" |
| ... | ... | @@ -348,8 +347,8 @@ |
| 348 | 347 | android:layout_marginLeft="25dp" |
| 349 | 348 | android:text="徒步" |
| 350 | 349 | android:textColor="@color/text_black" |
| 351 | - android:textStyle="bold" | |
| 352 | - android:textSize="15sp" /> | |
| 350 | + android:textSize="15sp" | |
| 351 | + android:textStyle="bold" /> | |
| 353 | 352 | |
| 354 | 353 | </LinearLayout> |
| 355 | 354 | <!--参与人数--> | ... | ... |
moudle_pedometer/src/main/res/values/strings.xml