diff --git a/app/src/main/java/com/gh/common/constant/Constants.java b/app/src/main/java/com/gh/common/constant/Constants.java index 3207f5b3be..addc69b0a1 100644 --- a/app/src/main/java/com/gh/common/constant/Constants.java +++ b/app/src/main/java/com/gh/common/constant/Constants.java @@ -218,6 +218,8 @@ public class Constants { public static final String SP_QUESTION_VIDEO_GUIDE = "question_video_guide"; // 社区首页引导 public static final String SP_COMMUNITY_HOME_GUIDE = "community_home_guide"; + // 论坛详情申请版主引导 + public static final String SP_FORUM_DETAIL_MODERATOR_GUIDE = "forum_detail_moderator_guide"; //手机号码匹配规则 public static final String REGEX_MOBILE = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$"; diff --git a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailFragment.kt index 3149144c57..d9f038745b 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailFragment.kt @@ -284,6 +284,38 @@ class ForumDetailFragment : BaseLazyTabFragment() { } mBinding.followTv.setTextColor(ContextCompat.getColor(requireContext(), if (me.isFollower) R.color.text_999999 else R.color.white)) mBinding.followTv.background = ContextCompat.getDrawable(requireContext(), if (me.isFollower) R.drawable.bg_shape_f5_radius_999 else R.drawable.login_btn_bg) + + mBinding.moderatorContainer.post { + showModeratorGuide() + } + } + } + + private fun showModeratorGuide() { + var time = SPUtils.getInt(Constants.SP_FORUM_DETAIL_MODERATOR_GUIDE) + if (time >= 2) return + + mBinding.run { + val location = IntArray(2) + moderatorTv.getLocationOnScreen(location) + moderatorGuideContainer.visibility = View.VISIBLE + moderatorGuideContainer.layoutParams = (moderatorGuideContainer.layoutParams as ViewGroup.MarginLayoutParams).apply { + leftMargin = location[0] - 16F.dip2px() + } + moderatorGuideClose.setOnClickListener { + moderatorGuideContainer.visibility = View.GONE + } + + countDownTimer(3) { finish, _ -> + tryCatchInRelease { + if (finish) { + moderatorGuideContainer.visibility = View.GONE + SPUtils.setBoolean(Constants.SP_SHOW_CATEGORY_GUIDE, true) + } + } + } + + SPUtils.setInt(Constants.SP_FORUM_DETAIL_MODERATOR_GUIDE, ++time) } } diff --git a/app/src/main/res/drawable-xxxhdpi/pic_apply_moderator_guide.webp b/app/src/main/res/drawable-xxxhdpi/pic_apply_moderator_guide.webp new file mode 100644 index 0000000000..175a818eb7 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/pic_apply_moderator_guide.webp differ diff --git a/app/src/main/res/layout/fragment_forum_detail.xml b/app/src/main/res/layout/fragment_forum_detail.xml index 6443bdad36..35c056d8af 100644 --- a/app/src/main/res/layout/fragment_forum_detail.xml +++ b/app/src/main/res/layout/fragment_forum_detail.xml @@ -248,6 +248,30 @@ android:textSize="12sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/forumThumbBig" /> + + + + + + +