首页, 菜单 guide

This commit is contained in:
renhaoting 2025-12-18 19:18:11 +08:00
parent 9c83bbe0c1
commit 50341765a2
3 changed files with 56 additions and 3 deletions

View File

@ -325,7 +325,7 @@ class WithDrawActivity : AppViewsEmptyViewModelActivity<ViewBinding>() {
} }
private fun saveGuideState() { private fun saveGuideState() {
return SpUtil.instance().putInt(SpUtil.KEY_GUIDE_HAS_SHOW, 4) SpUtil.instance().putInt(SpUtil.KEY_GUIDE_HAS_SHOW, 4)
} }

View File

@ -13,14 +13,22 @@ import android.view.animation.AnimationSet
import android.view.animation.ScaleAnimation import android.view.animation.ScaleAnimation
import android.widget.FrameLayout import android.widget.FrameLayout
import androidx.annotation.NonNull import androidx.annotation.NonNull
import androidx.core.graphics.toColorInt
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.ama.core.architecture.appBase.AppViewsEmptyViewModelFragment import com.ama.core.architecture.appBase.AppViewsEmptyViewModelFragment
import com.ama.core.architecture.highlightpro.HighlightPro
import com.ama.core.architecture.highlightpro.parameter.Constraints
import com.ama.core.architecture.highlightpro.parameter.HighlightParameter
import com.ama.core.architecture.highlightpro.parameter.MarginOffset
import com.ama.core.architecture.highlightpro.shape.OvalShape
import com.ama.core.architecture.highlightpro.shape.RectShape
import com.ama.core.architecture.util.AndroidUtil import com.ama.core.architecture.util.AndroidUtil
import com.ama.core.architecture.util.ResUtil.dp
import com.ama.core.architecture.util.SpUtil
import com.ama.core.architecture.util.setOnClickBatch import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.common.widget.PopMenuIconView import com.ama.core.common.widget.PopMenuIconView
import com.vididin.real.money.game.R import com.vididin.real.money.game.R
import com.gamedog.vididin.VidiConst import com.gamedog.vididin.VidiConst
import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.beans.YoutubeVideo import com.gamedog.vididin.beans.YoutubeVideo
import com.gamedog.vididin.main.WatchAdDialog import com.gamedog.vididin.main.WatchAdDialog
import com.gamedog.vididin.router.Router import com.gamedog.vididin.router.Router
@ -35,6 +43,7 @@ import com.vididin.real.money.game.databinding.VididinappFeatureHomeItemLayoutBi
class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() { class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() {
private var mHasShowGuide: Boolean = false
private var mMaskBitmap: Bitmap? = null private var mMaskBitmap: Bitmap? = null
private var mPlayerView: YouTubePlayerView? = null private var mPlayerView: YouTubePlayerView? = null
private var mPlayer: YouTubePlayer? = null private var mPlayer: YouTubePlayer? = null
@ -109,6 +118,38 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() {
mMaskBitmap?.recycle() mMaskBitmap?.recycle()
} }
private fun showGuide() {
HighlightPro.with(this@HomeItemFragment)
.setHighlightParameter {
HighlightParameter.Builder()
.setHighlightView(binding?.popMenu!!, {
})
.setTipsViewId(R.layout.guide_step_withdraw)
.setHighlightShape(OvalShape(binding?.popMenu?.measuredWidth!!.toFloat()/2))
.setHighlightHorizontalPadding(0.dp)
.setConstraints(Constraints.TopToBottomOfHighlight + Constraints.EndToEndOfHighlight)
.setMarginOffset(MarginOffset(top = -20.dp.toInt(), end = -20.dp.toInt()))
.build()
}
.setBackgroundColor("#cc000000".toColorInt())
.setOnShowCallback { index ->
}
.setOnDismissCallback {
binding?.popMenu!!.toggleMenu()
saveGuideState()
}
.interceptBackPressed(true)
.show()
}
private fun saveGuideState() {
SpUtil.instance().putInt(SpUtil.KEY_GUIDE_HAS_SHOW, 6)
}
private fun playVideo() { private fun playVideo() {
if (mPlayer != null && mVideoData != null && !mVideoData?.id.isNullOrEmpty()) { if (mPlayer != null && mVideoData != null && !mVideoData?.id.isNullOrEmpty()) {
mPlayer?.loadOrCueVideo( mPlayer?.loadOrCueVideo(
@ -232,8 +273,20 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
mPlayer?.play() mPlayer?.play()
if (!mHasShowGuide) {
val guideStateValue = SpUtil.instance().getInt(SpUtil.KEY_GUIDE_HAS_SHOW)
if (binding?.popMenu?.isVisible == true && guideStateValue == 5) {
binding?.popMenu?.postDelayed({
showGuide()
mHasShowGuide = true
}, 5)
}
}
} }
override fun onStop() { override fun onStop() {
super.onStop() super.onStop()
} }

View File

@ -40,7 +40,7 @@ class SpUtil private constructor(spFileName: String) {
const val KEY_GUIDE_HAS_GOT_NEWBIE_GOLD = "KEY_GUIDE_HAS_GOT_NEWBIE_GOLD" const val KEY_GUIDE_HAS_GOT_NEWBIE_GOLD = "KEY_GUIDE_HAS_GOT_NEWBIE_GOLD"
const val KEY_GUIDE_HAS_SHOW = "KEY_GUIDE_STATE" // 1,2,3,4,5 5 stands for finish const val KEY_GUIDE_HAS_SHOW = "KEY_GUIDE_STATE" // 1,2,3,4,5, 6 6 stands for finish