Commit 447fd4309fcee93435de4da870d4c4c2f37537ca

Authored by 杨帅
1 parent 3765c74e

1.对接运动赛事详情页接口

library_baidumap/build.gradle
... ... @@ -51,3 +51,4 @@ dependencies {
51 51 }
52 52  
53 53  
  54 +
... ...
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&lt;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&lt;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&lt;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
... ... @@ -141,7 +141,9 @@ public class QMUITipDialogUtil {
141 141  
142 142 public static void dismessDialog() {
143 143 if (tipDialog != null) {
144   - tipDialog.dismiss();
  144 + if (tipDialog.isShowing()) {
  145 + tipDialog.dismiss();
  146 + }
145 147 }
146 148 }
147 149 }
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/utils/TimeUtil.java
... ... @@ -69,6 +69,7 @@ public class TimeUtil {
69 69  
70 70 /**
71 71 * 取得指定时间的格式化的时间戳(精确到秒)
  72 + * yyyy-MM-dd HH:mm:ss
72 73 *
73 74 * @return 格式化后的日期
74 75 */
... ...
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
... ... @@ -70,4 +70,8 @@
70 70 <string name="layout_street_active_type">活动类型</string>
71 71 <string name="open_gps_tip">您尚未开启GPS,为确保定位准确性,请您打开后使用!</string>
72 72 <!---->
  73 + <!--网络请求-->
  74 + <string name="retry">重试</string>
  75 +
  76 +
73 77 </resources>
... ...