Commit 5146a702f0431f388a160d2552c433a72ab06a9f

Authored by YangShuai
1 parent 670d7c94

1 大众体育已结束的赛事详情页增加分享逻辑

2 修复首次进入已结束的活动详情页小概率显示异常问题
config.gradle
... ... @@ -21,7 +21,7 @@ ext {
21 21 //编译方式
22 22 debug : false,
23 23 //版本号
24   - version: "1.1.4",
  24 + version: "1.1.5",
25 25 //Lib库前缀
26 26 packeg : "com.cnlive.module",
27 27 //Lib库名称
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/OnGoingFragmentView.java
... ... @@ -17,6 +17,8 @@ import com.baidu.mapapi.model.LatLng;
17 17 import com.baidu.trace.LBSTraceClient;
18 18 import com.baidu.trace.model.SortType;
19 19 import com.cnlive.libs.base.application.AppConfig;
  20 +import com.cnlive.libs.base.arouter.share.CNLiveShareService;
  21 +import com.cnlive.libs.base.util.OpenServiceHelpUtil;
20 22 import com.cnlive.libs.base.util.StatusBarUtil2;
21 23 import com.cnlive.moudle.pedometer.commonInfo.CommonInfo;
22 24 import com.cnlive.moudle.pedometer.model.Constant;
... ... @@ -45,6 +47,8 @@ public class OnGoingFragmentView implements MvpView {
45 47 public RunRaceDetailInfo runRaceDetailInfo;
46 48 private LBSTraceClient mClient = null;
47 49 public WebView webView;
  50 + private final String SHARE_DEBUG_URL = "http://wjjh5test.cnlive.com/cnSportsDetail.html";
  51 + private final String SHARE_REL_URL = "http://wjjh5.cnlive.com/cnSportsDetail.html";
48 52  
49 53 public OnGoingFragmentView(OnGoingFragment fragment) {
50 54 this.fragment = fragment;
... ... @@ -77,10 +81,36 @@ public class OnGoingFragmentView implements MvpView {
77 81 }
78 82 WebViewUtil.setPtoHtmlData(fragment.getActivity(), html, webView, Constant.WEBVIEW_FONT_SIZE);
79 83 fragment.binding.includeStreetIntroduce.llWebview.addView(webView);
  84 + //view加载完成时回调
  85 + fragment.binding.includeStreetIntroduce.llWebview.post(new Runnable() {
  86 + @Override
  87 + public void run() {
  88 + fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
  89 + fragment.binding.scrollView.scrollTo(0, 0);
  90 + }
  91 + });
80 92 }
81 93  
82   - public void initView(RunRaceDetailInfo runRaceDetailInfo) {
  94 + /**
  95 + * 分享赛事
  96 + */
  97 + public void shareCurrentRace() {
  98 + CNLiveShareService shareService = OpenServiceHelpUtil.getShareService(getContext());
  99 + if (null != shareService && null != runRaceDetailInfo) {
  100 + String subTitle = "我在网家家上报名了线上赛事 快来和我一起动起来";
  101 + String shareUrl = AppConfig.isDebug() ? SHARE_DEBUG_URL : SHARE_REL_URL;
  102 +// String shareImgUrl = "http://wjj.ys1.cnliveimg.com/download/app_icon/share/strike_logo_mass_sports.png";
  103 + String shareImgUrl = "http://wjj.ys1.cnliveimg.com/download/app_icon/share/strike_logo_mass_sports_rec.png";
  104 + boolean isShowWjjLife = true;
  105 + boolean isShowWjjFriend = true;
  106 + boolean isShowOther = true;
  107 + shareUrl += "?eventId=" + fragment.eventId + "&channelName=" + runRaceDetailInfo.getChannelName();
  108 + shareService.shareLink(getContext(), runRaceDetailInfo.getTitle(), subTitle, shareUrl, shareImgUrl, isShowWjjLife, isShowWjjFriend, false);
  109 + }
  110 + }
83 111  
  112 +
  113 + public void initView(RunRaceDetailInfo runRaceDetailInfo) {
84 114 if (fragment.getActivity() == null) {
85 115 return;
86 116 }
... ... @@ -236,11 +266,11 @@ public class OnGoingFragmentView implements MvpView {
236 266 }
237 267 //显示底部滑动卡片
238 268 fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
239   - if (!TextUtils.isEmpty(runRaceDetailInfo.getE_subtitle())) {
240   - fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 169));
241   - } else {
242   - fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 140));
243   - }
  269 +// if (!TextUtils.isEmpty(runRaceDetailInfo.getE_subtitle())) {
  270 +// fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 169));
  271 +// } else {
  272 +// fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 140));
  273 +// }
244 274 //设置标题
245 275 if (!TextUtils.isEmpty(runRaceDetailInfo.getTitle())) {
246 276 fragment.binding.includeStreet.tvRaceTitle.setText(runRaceDetailInfo.getTitle());
... ... @@ -417,6 +447,21 @@ public class OnGoingFragmentView implements MvpView {
417 447 }
418 448 });
419 449 }
  450 +
  451 + //地图模式黑色分享按钮
  452 + fragment.binding.ivBlackShare.setOnClickListener(new View.OnClickListener() {
  453 + @Override
  454 + public void onClick(View v) {
  455 + shareCurrentRace();
  456 + }
  457 + });
  458 + //非地图模式
  459 + fragment.binding.llTopShare.setOnClickListener(new View.OnClickListener() {
  460 + @Override
  461 + public void onClick(View v) {
  462 + shareCurrentRace();
  463 + }
  464 + });
420 465 }
421 466  
422 467 public void initMap() {
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/RunRaceDetailFragmentView.java
... ... @@ -180,8 +180,14 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener {
180 180 }
181 181 WebViewUtil.setPtoHtmlData(fragment.getActivity(), html, webView, Constant.WEBVIEW_FONT_SIZE);
182 182 fragment.binding.includeStreetIntroduce.llWebview.addView(webView);
183   - fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
184   -
  183 + //view加载完成时回调
  184 + fragment.binding.includeStreetIntroduce.llWebview.post(new Runnable() {
  185 + @Override
  186 + public void run() {
  187 + fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
  188 + fragment.binding.scrollView.scrollTo(0, 0);
  189 + }
  190 + });
185 191 }
186 192  
187 193 public void initView(RunRaceDetailInfo runRaceDetailInfo) {
... ... @@ -235,9 +241,6 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener {
235 241 fragment.binding.mapView.setVisibility(View.VISIBLE);
236 242 //隐藏空视图
237 243 fragment.binding.emptyLayout.setVisibility(View.GONE);
238   - //显示立即报名按钮
239   -// fragment.binding.includeStreet.rlStartBtn.setVisibility(View.VISIBLE);
240   -
241 244 //设置底部卡片第一次可滑动的位置
242 245 fragment.binding.slidingLayout.setAnchorPoint(0.5f);
243 246 LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
... ... @@ -385,22 +388,14 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener {
385 388 //设置标题
386 389 if (!TextUtils.isEmpty(runRaceDetailInfo.getTitle())) {
387 390 fragment.binding.includeStreet.tvRaceTitle.setText(runRaceDetailInfo.getTitle());
388   -// fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
389   -// @Override
390   -// public boolean onPreDraw() {
391   -// Log.e(TAG, "initView: " + fragment.binding.includeStreet.tvRaceTitle.getLineCount());
392   -// fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().removeOnPreDrawListener(this);
393   -// return false;
394   -// }
395   -// });
  391 +// if (!TextUtils.isEmpty(runRaceDetailInfo.getE_subtitle())) {
  392 +// fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 210));
  393 +// } else {
  394 +// fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 181));
  395 +// }
  396 + fragment.binding.flTop.setVisibility(View.INVISIBLE);
396 397 //显示底部滑动卡片
397 398 fragment.binding.slidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
398   - if (!TextUtils.isEmpty(runRaceDetailInfo.getE_subtitle())) {
399   - fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 210));
400   - } else {
401   - fragment.binding.slidingLayout.setPanelHeight(ScreenUtil.dip2px(getContext(), 181));
402   - }
403   - fragment.binding.flTop.setVisibility(View.GONE);
404 399 // //根据标题行数,自动调整卡片大小
405 400 // fragment.binding.includeStreet.tvRaceTitle.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
406 401 // @Override
... ... @@ -480,10 +475,6 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener {
480 475 if (runRaceDetailInfo.isIndividualAchievement()) {
481 476 //显示
482 477 fragment.binding.includePersonScore.llPersonScoreRoot.setVisibility(View.VISIBLE);
483   -// //设置完成人数
484   -// if (!TextUtils.isEmpty(runRaceDetailInfo.getFinishNum())) {
485   -// fragment.binding.includeRank.tvFinishPerson.setText(runRaceDetailInfo.getFinishNum());
486   -// }
487 478 //设置个人行走距离
488 479 if (!TextUtils.isEmpty(runRaceDetailInfo.getUserMileage())) {
489 480 fragment.binding.includePersonScore.tvUserDistance.setText(runRaceDetailInfo.getUserMileage());
... ... @@ -555,65 +546,7 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener {
555 546 //判断按钮状态
556 547 initStartBtnState(runRaceDetailInfo);
557 548 checkStartBtnState();
558   -// //判断用户是否报名
559   -// if (runRaceDetailInfo.isSignResult()) {
560   -// fragment.binding.rlScrollViewStartBtn.setTag(BTN_START_RACE);
561   -// fragment.binding.tvRunNow.setText("现在开始");
562   -// fragment.binding.tvGoTip.setVisibility(View.VISIBLE);
563   -// checkStartBtnState();
564   -// } else {
565   -// fragment.binding.rlScrollViewStartBtn.setTag(BTN_REGIST_RACE);
566   -// fragment.binding.tvRunNow.setText("立即报名");
567   -// fragment.binding.tvGoTip.setVisibility(View.GONE);
568   -// }
569 549  
570   -// //开始按钮点击事件(未滑动)
571   -// fragment.binding.includeStreet.rlStartBtn.setOnClickListener(new View.OnClickListener() {
572   -// @Override
573   -// public void onClick(View view) {
574   -// if (fragment.getActivity() == null) {
575   -// return;
576   -// }
577   -// //立即报名
578   -// if ("0".equals(fragment.binding.includeStreet.rlStartBtn.getTag())) {
579   -// fragment.binding.includeStreet.rlStartBtn.setTag("1");
580   -// fragment.binding.includeStreet.tvRunNow.setText(getContext().getResources().getString(R.string.run_race_btn_start_now));
581   -// fragment.binding.includeStreet.tvGoTip.setVisibility(View.VISIBLE);
582   -//
583   -// //设置滑动
584   -// fragment.binding.rlScrollViewStartBtn.setTag("1");
585   -// fragment.binding.tvRunNow.setText(getContext().getResources().getString(R.string.run_race_btn_start_now));
586   -// fragment.binding.tvGoTip.setVisibility(View.VISIBLE);
587   -// RegistrationInfoActivity.newInstance(fragment.getActivity(), 1001);
588   -// } else {
589   -// //计算当前位置与起点坐标距离
590   -// if (userCurrentLatLng != null && trackPoints != null && trackPoints.size() > 0) {
591   -// double distance = DistanceUtil.getDistance(userCurrentLatLng, trackPoints.get(0));
592   -// if (distance < 20) {
593   -// //开始运动
594   -// fragment.binding.includeStreet.rlStartBtn.setTag("0");
595   -// fragment.binding.includeStreet.tvRunNow.setText(getContext().getResources().getString(R.string.run_race_btn_sign_up));
596   -// fragment.binding.includeStreet.tvGoTip.setVisibility(View.GONE);
597   -// fragment.getActivity().startActivity(new Intent(getContext(), PedometerMainActivity.class));
598   -// //设置滑动
599   -// fragment.binding.rlScrollViewStartBtn.setTag("0");
600   -// fragment.binding.tvRunNow.setText(getContext().getResources().getString(R.string.run_race_btn_sign_up));
601   -// fragment.binding.tvGoTip.setVisibility(View.GONE);
602   -// } else {
603   -// TipDialog tipDialog = new TipDialog(getContext(), getContext().getResources().getString(R.string.run_race_far_tip), "我知道了", R.color.green_round, new TipDialog.DialogInterface() {
604   -// @Override
605   -// public void onClick(TipDialog dialog) {
606   -// dialog.dismiss();
607   -// }
608   -// });
609   -// tipDialog.show();
610   -// tipDialog.setCancelable(false);
611   -// tipDialog.setCanceledOnTouchOutside(false);
612   -// }
613   -// }
614   -// }
615   -// }
616   -// });
617 550 //开始按钮点击事件(用户进行滑动滑动)
618 551 fragment.binding.rlScrollViewStartBtn.setOnClickListener(new View.OnClickListener() {
619 552 @Override
... ...
moudle_pedometer/src/main/res/layout/fragment_run_race_detail.xml
... ... @@ -14,6 +14,7 @@
14 14 sothree:umanoDragView="@+id/scrollView"
15 15 sothree:umanoFadeColor="@color/black_20"
16 16 sothree:umanoOverlay="true"
  17 + sothree:umanoPanelHeight="181dp"
17 18 sothree:umanoParallaxOffset="400dp"
18 19 sothree:umanoScrollableView="@+id/scrollView"
19 20 sothree:umanoShadowHeight="0dp">
... ... @@ -179,9 +180,9 @@
179 180 android:layout_width="0dp"
180 181 android:layout_height="wrap_content"
181 182 android:layout_gravity="center"
182   - android:text="路线详情"
183   - android:gravity="center"
184 183 android:layout_weight="1"
  184 + android:gravity="center"
  185 + android:text="路线详情"
185 186 android:textColor="@color/white"
186 187 android:textSize="18sp" />
187 188  
... ... @@ -191,8 +192,8 @@
191 192 android:layout_height="match_parent"
192 193 android:layout_gravity="center_vertical"
193 194 android:gravity="center"
194   - android:paddingRight="10dp"
195   - >
  195 + android:paddingRight="10dp">
  196 +
196 197 <ImageView
197 198 android:layout_width="20dp"
198 199 android:layout_height="19dp"
... ...