Fix bug - 新手引导改为 从哪一步退出,下次进游戏就从哪一步开始,如过引导在界面里,就等进入那个界面在弹出

This commit is contained in:
renhaoting 2026-01-08 18:27:07 +08:00
parent 241dda68c1
commit b8bb2bbffe
8 changed files with 60 additions and 21 deletions

1
app/.gitignore vendored
View File

@ -2,3 +2,4 @@
/release/baselineProfiles/0/app-release.dm
/release/baselineProfiles/1/app-release.dm
/release/output-metadata.json
/release/app-release.apk.zip

View File

@ -2,6 +2,13 @@ package com.gamedog.vididin
object VidiConst {
// adjust
const val GUIDE_INDEX_GIFT: Int = 1
const val GUIDE_INDEX_CASH_GOLD: Int = 2
const val GUIDE_INDEX_WITHDRAW: Int = 3
const val GUIDE_INDEX_ZERO: Int = 4
const val GUIDE_INDEX_POP_MENU: Int = 5
// adjust
const val ADJUST_TOKEN: String = "sa8ei0td10xs"

View File

@ -16,6 +16,7 @@ import com.ama.core.architecture.util.ResUtil.dp
import com.ama.core.architecture.util.SpUtil
import com.ama.core.architecture.util.setOnClickBatch
import com.gamedog.statisticreporter.StatisticUtil
import com.gamedog.vididin.VidiConst
import com.viddin.videos.free.R
import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.beans.RecordCash
@ -25,6 +26,7 @@ import com.gamedog.vididin.features.withdraw.dialogs.WithdrawFailDialog
import com.gamedog.vididin.features.withdraw.dialogs.WithdrawInfoConfirmDialog
import com.gamedog.vididin.features.withdraw.dialogs.WithdrawSuccessDialog
import com.gamedog.vididin.features.withdraw.widget.WithDrawItemView
import com.gamedog.vididin.manager.GuideManager
import com.gamedog.vididin.manager.TaskManager
import com.gamedog.vididin.manager.WithdrawManager
import com.gamedog.vididin.manager.WithdrawManager.Companion.TRANSACTION_STATE_FAIL
@ -244,11 +246,11 @@ class WithDrawActivity : AppViewsEmptyViewModelActivity<ViewBinding>() {
}
private fun needShowGuide(): Boolean {
return SpUtil.instance().getInt(SpUtil.KEY_GUIDE_HAS_SHOW) < 5
return GuideManager.instance().getCurGuideIndex() == VidiConst.GUIDE_INDEX_CASH_GOLD
}
private fun saveGuideState() {
SpUtil.instance().putInt(SpUtil.KEY_GUIDE_HAS_SHOW, 4)
GuideManager.instance().setGuideIndex(VidiConst.GUIDE_INDEX_WITHDRAW)
}
override fun onDestroy() {

View File

@ -14,9 +14,11 @@ import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.architecture.widget.BindingDialog
import com.gamedog.statisticreporter.StatisticUtil
import com.gamedog.vididin.VidiConst
import com.gamedog.vididin.VidiConst.GUIDE_INDEX_GIFT
import com.gamedog.vididin.beans.RECORD_GOLD_PLUS_NEWBIE_GIFT
import com.gamedog.vididin.beans.RecordGold
import com.gamedog.vididin.core.login.login.AccountManager
import com.gamedog.vididin.manager.GuideManager
import com.viddin.videos.free.R
import com.viddin.videos.free.databinding.DialogBeginnerGiftBinding
@ -61,8 +63,6 @@ class BeginnerGiftDialog(activity: Activity) : BindingDialog<DialogBeginnerGiftB
private fun showGuide() {
SpUtil.instance().putInt(SpUtil.KEY_GUIDE_HAS_SHOW, 0)
HighlightPro.with(window?.decorView as FrameLayout)
.setHighlightParameter {
HighlightParameter.Builder()
@ -81,6 +81,7 @@ class BeginnerGiftDialog(activity: Activity) : BindingDialog<DialogBeginnerGiftB
}
.setOnDismissCallback {
GuideManager.instance().setGuideIndex(GUIDE_INDEX_GIFT)
handleClickEvent()
}
.interceptBackPressed(true)

View File

@ -23,12 +23,14 @@ import com.ama.core.common.util.asSafe
import com.blankj.utilcode.util.ActivityUtils
import com.gamedog.statisticreporter.StatisticUtil
import com.gamedog.vididin.VidiConst
import com.gamedog.vididin.VidiConst.GUIDE_INDEX_GIFT
import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.adapter.MainTabsAdapter
import com.gamedog.vididin.adapter.MainViewPagerAdapter
import com.gamedog.vididin.main.fragments.task.DailySignSuccessDialog
import com.gamedog.vididin.main.interfaces.OnTabStyleListener
import com.gamedog.vididin.manager.DateChangeReceiver
import com.gamedog.vididin.manager.GuideManager
import com.gamedog.vididin.manager.NotificationController
import com.gamedog.vididin.router.Router
import com.remax.base.report.DataReportManager
@ -84,7 +86,7 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
viewPager2.offscreenPageLimit
if (SpUtil.instance().getInt(SpUtil.KEY_GUIDE_HAS_SHOW) < 5) {
if (GuideManager.instance().getCurGuideIndex() < GUIDE_INDEX_GIFT) {
BeginnerGiftDialog(this@MainActivity).show()
}
}

View File

@ -32,6 +32,7 @@ import com.gamedog.vididin.main.WatchAdDialog
import com.gamedog.vididin.main.fragments.home.HomeFragmentStateAdapter
import com.gamedog.vididin.main.fragments.home.fragment.HomeItemFragment
import com.gamedog.vididin.main.interfaces.OnSwitchTabListener
import com.gamedog.vididin.manager.GuideManager
import com.gamedog.vididin.manager.TaskManager
import com.gamedog.vididin.router.Router
import com.gamedog.vididin.youtubestatistic.RewardConst
@ -161,8 +162,8 @@ class HomeFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnSwit
}
.setOnDismissCallback {
binding?.popMenu!!.toggleMenu()
saveGuideState()
binding?.popMenu!!.toggleMenu()
}
.interceptBackPressed(true)
.show()
@ -171,7 +172,7 @@ class HomeFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnSwit
}
private fun saveGuideState() {
SpUtil.instance().putInt(SpUtil.KEY_GUIDE_HAS_SHOW, 6)
GuideManager.instance().setGuideIndex(VidiConst.GUIDE_INDEX_POP_MENU)
}
private fun handleEventOneVideoWatched() {
@ -247,8 +248,8 @@ class HomeFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnSwit
setStatusBarDarkFont(isDarkFont = isStatusBarDarkFont)
if (!mHasShowGuide) {
val guideStateValue = SpUtil.instance().getInt(SpUtil.KEY_GUIDE_HAS_SHOW)
if (binding?.popMenu?.isVisible == true && guideStateValue == 5) {
val guideStateValue = GuideManager.instance().getCurGuideIndex()
if (binding?.popMenu?.isVisible == true && guideStateValue == VidiConst.GUIDE_INDEX_ZERO) {
binding?.popMenu?.postDelayed({
showGuide()
mHasShowGuide = true

View File

@ -44,6 +44,7 @@ import com.ama.core.architecture.highlightpro.shape.OvalShape
import com.ama.core.architecture.highlightpro.shape.RectShape
import com.ama.core.architecture.util.SpUtil
import com.gamedog.statisticreporter.StatisticUtil
import com.gamedog.vididin.manager.GuideManager
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.Runnable
import kotlinx.coroutines.launch
@ -156,7 +157,7 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
mTaskConfig = TaskManager.instance().getTaskConfig()
}
if (needShowZerobuyGuide() < 5) {
if (GuideManager.instance().getCurGuideIndex() == VidiConst.GUIDE_INDEX_GIFT) {
llTaskGame.postDelayed({
ivAdIndi.isVisible = false
showGuide1()
@ -168,7 +169,6 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
private fun gotoZeroBuy() {
Router.ZeroBuy.startActivity(requireActivity())
StatisticUtil.reportEvents(StatisticUtil.KEY_lottery_Button_Click)
}
@ -418,19 +418,12 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
super.onResume()
setStatusBarDarkFont(isDarkFont = isBackgroundBright)
if (needShowZerobuyGuide() == 4) {
val guideIndex = GuideManager.instance().getCurGuideIndex()
if (guideIndex == VidiConst.GUIDE_INDEX_WITHDRAW) {
showGuide2()
}
}
private fun needShowZerobuyGuide(): Int {
return SpUtil.instance().getInt(SpUtil.KEY_GUIDE_HAS_SHOW)
}
private fun saveGuideDoneFlag() {
SpUtil.instance().putInt(SpUtil.KEY_GUIDE_HAS_SHOW, 5)
}
override fun onTabClickAgain() {
}
@ -530,6 +523,7 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
}
.setOnDismissCallback {
binding?.ivAdIndi?.isVisible = true
GuideManager.instance().setGuideIndex(VidiConst.GUIDE_INDEX_CASH_GOLD)
gotoWithDraw()
}
.interceptBackPressed(true)
@ -563,7 +557,7 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
}
.setOnDismissCallback {
saveGuideDoneFlag()
GuideManager.instance().setGuideIndex(VidiConst.GUIDE_INDEX_ZERO)
gotoZeroBuy()
}
.interceptBackPressed(true)

View File

@ -0,0 +1,31 @@
package com.gamedog.vididin.manager
import com.ama.core.architecture.util.SpUtil
class GuideManager private constructor() {
companion object {
@Volatile
private var instance: GuideManager? = null
fun instance(): GuideManager {
return instance ?: synchronized(this) {
instance ?: GuideManager().also {
instance = it
}
}
}
}
private var mGuideIndex = SpUtil.instance().getInt(SpUtil.KEY_GUIDE_HAS_SHOW)
public fun getCurGuideIndex(): Int {
return mGuideIndex
}
public fun setGuideIndex(newIndex: Int) {
mGuideIndex = newIndex
SpUtil.instance().putInt(SpUtil.KEY_GUIDE_HAS_SHOW, newIndex)
}
}