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" />
+
+
+
+
+
+
+