From 90dbd265f0db4b89774091f17a387b7480ccb8da Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Tue, 16 Dec 2025 17:33:12 +0800 Subject: [PATCH] =?UTF-8?q?guide=20in=20=E6=8F=90=E7=8E=B0=20=E5=92=8C=200?= =?UTF-8?q?=E5=85=83=E8=B4=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../features/withdraw/WithDrawActivity.kt | 49 ++++++++++++++- .../com/gamedog/vididin/main/MainActivity.kt | 5 +- .../vididin/main/fragments/TasksFragment.kt | 60 ++++++++++++++++--- .../main/res/layout/guide_step_withdraw.xml | 14 +++++ .../main/res/layout/guide_step_zerobuy.xml | 34 +++++++++++ app/src/main/res/values/strings.xml | 1 + .../com/ama/core/architecture/util/SpUtil.kt | 3 + 7 files changed, 157 insertions(+), 9 deletions(-) create mode 100644 app/src/main/res/layout/guide_step_withdraw.xml create mode 100644 app/src/main/res/layout/guide_step_zerobuy.xml diff --git a/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawActivity.kt b/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawActivity.kt index 7ddb638..67706ca 100644 --- a/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawActivity.kt +++ b/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawActivity.kt @@ -4,10 +4,18 @@ import android.app.Activity import android.content.Intent import android.view.LayoutInflater import androidx.activity.viewModels +import androidx.core.graphics.toColorInt import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import com.ama.core.architecture.appBase.AppViewsEmptyViewModelActivity +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.RectShape +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.vididin.VidiConst import com.vididin.real.money.game.R @@ -21,7 +29,6 @@ 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.WithdrawManager -import com.gamedog.vididin.manager.WithdrawManager.Companion.FAIL_TYPE_APP_VERSION_LOW import com.gamedog.vididin.manager.WithdrawManager.Companion.TRANSACTION_STATE_FAIL import com.gamedog.vididin.manager.WithdrawManager.Companion.TRANSACTION_STATE_ONGOING import com.gamedog.vididin.manager.WithdrawManager.Companion.TRANSACTION_STATE_SUCCESS @@ -152,6 +159,12 @@ class WithDrawActivity : AppViewsEmptyViewModelActivity() { VididinEvents.EVENT_WITHDRAW_CHECK_RESULT_UPDATED,) readTransactionsAndShowResult() + + if (needShowGuide()) { + binding.tvCashTotal.postDelayed({ + showGuide() + }, 5) + } } @@ -307,6 +320,40 @@ class WithDrawActivity : AppViewsEmptyViewModelActivity() { WithdrawManager.instance().saveNewRecord(newRecord) } + private fun needShowGuide(): Boolean { + return SpUtil.instance().getInt(SpUtil.KEY_GUIDE_HAS_SHOW) < 5 + } + + private fun saveGuideState() { + return SpUtil.instance().putInt(SpUtil.KEY_GUIDE_HAS_SHOW, 4) + } + + + private fun showGuide() { + HighlightPro.with(this@WithDrawActivity) + .setHighlightParameter { + HighlightParameter.Builder() + .setHighlightView(mItemViewList.get(0), { + }) + .setTipsViewId(R.layout.guide_step_withdraw) + .setHighlightShape(RectShape(10.dp, 10.dp, 10.dp)) + .setHighlightHorizontalPadding(0.dp) + .setConstraints(Constraints.TopToBottomOfHighlight + Constraints.EndToEndOfHighlight) + .setMarginOffset(MarginOffset(top = -20.dp.toInt())) + .build() + } + .setBackgroundColor("#cc000000".toColorInt()) + .setOnShowCallback { index -> + + } + .setOnDismissCallback { + saveGuideState() + handleGotoWithdraw(0) + } + .interceptBackPressed(true) + .show() + + } companion object { diff --git a/app/src/main/java/com/gamedog/vididin/main/MainActivity.kt b/app/src/main/java/com/gamedog/vididin/main/MainActivity.kt index 7cd2f97..fb88002 100644 --- a/app/src/main/java/com/gamedog/vididin/main/MainActivity.kt +++ b/app/src/main/java/com/gamedog/vididin/main/MainActivity.kt @@ -17,6 +17,7 @@ import androidx.activity.viewModels import com.ama.core.architecture.appBase.AppViewsActivity import com.ama.core.architecture.appBase.OnFragmentBackgroundListener import com.ama.core.architecture.ext.toast +import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.bindViewPager2 import com.ama.core.architecture.util.setCommonNavigator import com.ama.core.architecture.util.setDataOrAdapter @@ -77,7 +78,9 @@ class MainActivity : AppViewsActivity(), OnTabS viewPager2.offscreenPageLimit - BeginnerGiftDialog(this@MainActivity).show() + if (SpUtil.instance().getInt(SpUtil.KEY_GUIDE_HAS_SHOW) < 5) { + BeginnerGiftDialog(this@MainActivity).show() + } } override fun ViewBinding.initListeners() { diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt index bc19e38..f4c9e60 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt @@ -4,7 +4,6 @@ import android.Manifest import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.ImageView import android.widget.LinearLayout import androidx.core.graphics.toColorInt import androidx.core.view.ViewCompat @@ -40,7 +39,9 @@ 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.SpUtil import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.Runnable import kotlinx.coroutines.launch @@ -100,7 +101,7 @@ class TasksFragment : AppViewsFragment(), OnTab } llTaskZerobuy->{ - Router.ZeroBuy.startActivity(requireActivity()) + gotoZeroBuy() } tvWatchVideoForConvertGoldToCash->{ @@ -145,9 +146,15 @@ class TasksFragment : AppViewsFragment(), OnTab mTaskConfig = TaskManager.instance().getTaskConfig() } - binding?.llTaskGame?.postDelayed({ - showGuide() - }, 50) + if (needShowZerobuyGuide() < 5) { + binding?.llTaskGame?.postDelayed({ + showGuide1() + }, 5) + } + } + + private fun gotoZeroBuy() { + Router.ZeroBuy.startActivity(requireActivity()) } private fun addDailySubTasks() { @@ -280,7 +287,7 @@ class TasksFragment : AppViewsFragment(), OnTab VididinEvents.Event_Account_Gold_Changed, VididinEvents.EVENT_DAILY_WATCHED_VIDEO_NUM_CHANGED, VididinEvents.EVENT_DAILY_WATCHED_AD_NUM_CHANGED, VididinEvents.EVENT_JUMP_2_FIRST_WITHDRAW, VididinEvents.EVENT_NEWBIE_DISCORD_TASK_CHANGED, VididinEvents.EVENT_NEWBIE_NOTIFY_TASK_CHANGED, - VididinEvents.EVENT_NEWBIE_FIRST_WITHDRAW_TASK_CHANGED,) + VididinEvents.EVENT_NEWBIE_FIRST_WITHDRAW_TASK_CHANGED) } private fun scroll2FirstWithdraw() { @@ -364,6 +371,18 @@ class TasksFragment : AppViewsFragment(), OnTab override fun onResume() { super.onResume() setStatusBarDarkFont(isDarkFont = isBackgroundBright) + + if (needShowZerobuyGuide() == 4) { + 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() { @@ -434,7 +453,7 @@ class TasksFragment : AppViewsFragment(), OnTab } - private fun showGuide() { + private fun showGuide1() { HighlightPro.with(this@TasksFragment) .setHighlightParameter { HighlightParameter.Builder() @@ -473,4 +492,31 @@ class TasksFragment : AppViewsFragment(), OnTab } + private fun showGuide2() { + HighlightPro.with(this@TasksFragment) + .setHighlightParameter { + HighlightParameter.Builder() + .setHighlightView(binding!!.llTaskZerobuy, { + val temp = 111 + }) + .setTipsViewId(R.layout.guide_step_zerobuy) + .setHighlightShape(OvalShape(37.dp)) + .setHighlightHorizontalPadding(0.dp) + .setConstraints(Constraints.TopToBottomOfHighlight + Constraints.EndToEndOfHighlight) + .setMarginOffset(MarginOffset(top = -20.dp.toInt(), end = -10.dp.toInt())) + .build() + } + .setBackgroundColor("#cc000000".toColorInt()) + .setOnShowCallback { index -> + + } + .setOnDismissCallback { + saveGuideDoneFlag() + gotoZeroBuy() + } + .interceptBackPressed(true) + .show() + + } + } \ No newline at end of file diff --git a/app/src/main/res/layout/guide_step_withdraw.xml b/app/src/main/res/layout/guide_step_withdraw.xml new file mode 100644 index 0000000..c520036 --- /dev/null +++ b/app/src/main/res/layout/guide_step_withdraw.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/guide_step_zerobuy.xml b/app/src/main/res/layout/guide_step_zerobuy.xml new file mode 100644 index 0000000..b843d7e --- /dev/null +++ b/app/src/main/res/layout/guide_step_zerobuy.xml @@ -0,0 +1,34 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d94fff5..3a4e589 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -151,5 +151,6 @@ Vincular conta para saque Clique no botão para converter todas \nas “Moedas” em “Dinheiro”. Clique aqui para ir para o saque. + Montes de recompensas em dinheiro \nte aguardam. Boa sorte! \ No newline at end of file diff --git a/core/architecture/src/main/java/com/ama/core/architecture/util/SpUtil.kt b/core/architecture/src/main/java/com/ama/core/architecture/util/SpUtil.kt index 4d098ea..68d8435 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/util/SpUtil.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/util/SpUtil.kt @@ -39,6 +39,9 @@ class SpUtil private constructor(spFileName: String) { const val KEY_WITHDRAW_ITEM_LIST = "KEY_WITHDRAW_ITEM_LIST" + const val KEY_GUIDE_HAS_SHOW = "KEY_GUIDE_STATE" // 1,2,3,4,5 5 stands for finish + + @Volatile