From 328cbd205d53e1dad5f7a42defc65a12462b3b18 Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Mon, 22 Dec 2025 19:31:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=B9=E5=87=BA=E8=8F=9C=E5=8D=95=E8=BF=81?= =?UTF-8?q?=E7=A7=BB=E5=88=B0=20HomeFragment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vididin/main/fragments/HomeFragment.kt | 75 ++++++++++++++++++- .../home/fragment/HomeItemFragment.kt | 67 ----------------- .../vididinapp_feature_home_fragment_home.xml | 9 +++ .../vididinapp_feature_home_item_layout.xml | 9 --- .../core/player/YouTubePlayer.kt | 3 + .../core/player/views/WebViewYouTubePlayer.kt | 5 ++ 6 files changed, 91 insertions(+), 77 deletions(-) diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt index 4345468..0bccc49 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt @@ -2,8 +2,10 @@ package com.gamedog.vididin.main.fragments import android.view.LayoutInflater import android.view.ViewGroup +import androidx.core.graphics.toColorInt import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat +import androidx.core.view.isVisible import androidx.core.view.updatePadding import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager @@ -13,18 +15,31 @@ import androidx.lifecycle.lifecycleScope import androidx.viewpager2.widget.ViewPager2 import com.ama.core.architecture.appBase.AppViewsFragment import com.ama.core.architecture.appBase.OnFragmentBackgroundListener +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.util.AndroidUtil +import com.ama.core.architecture.util.ResUtil.dp +import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.setStatusBarDarkFont import com.ama.core.common.util.asSafe +import com.ama.core.common.widget.PopMenuIconView +import com.gamedog.vididin.VidiConst import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.core.login.login.AccountManager +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.main.interfaces.OnTabStyleListener +import com.gamedog.vididin.router.Router import com.gamedog.vididin.youtubestatistic.RewardConst import com.gamedog.vididin.youtubestatistic.RewardConst.Companion.Check_Interval_MS import com.remax.bill.ads.AdResult import com.remax.bill.ads.ext.AdShowExt +import com.vididin.real.money.game.R import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch import kotlin.getValue @@ -37,7 +52,7 @@ import com.gamedog.vididin.main.fragments.home.YoutubeUiState as UiState @AndroidEntryPoint class HomeFragment : AppViewsFragment(), OnSwitchTabListener, OnFragmentBackgroundListener { private var mWatchedVideoTotal = 0 - + private var mHasShowGuide: Boolean = false private var mTotalMs: Long = 0L override val mViewModel: ViewModel by viewModels() override var isBackgroundBright: Boolean = true @@ -63,6 +78,23 @@ class HomeFragment : AppViewsFragment(), OnSwit viewPager2.offscreenPageLimit = 1 viewPager2.adapter = mViewPagerAdapter + + popMenu.setMenuList( + mutableListOf( + PopMenuIconView.MenuItem(R.mipmap.home_menu_1) { + Router.Benefit.startActivity(requireActivity()) + }, + PopMenuIconView.MenuItem(R.mipmap.home_menu_2) { + WatchAdDialog(requireActivity(), VidiConst.WATCH_AD_FOR_DAILY_EARN_GOLD, null).show() + }, + PopMenuIconView.MenuItem(R.mipmap.home_menu_3) { + AndroidUtil.openUrl(VidiConst.URL_GAME) + }, + PopMenuIconView.MenuItem(R.mipmap.home_menu_4) { + Router.ZeroBuy.startActivity(requireActivity()) + } + )) + registerEvents({ data-> when (data?.mEventType) { VididinEvents.Event_HOME_WATCH_Time_TICK -> { @@ -75,6 +107,37 @@ class HomeFragment : AppViewsFragment(), OnSwit } }, VididinEvents.Event_HOME_WATCH_Time_TICK, VididinEvents.Event_Finish_One_Video) + + } + + + private fun showGuide() { + HighlightPro.with(this@HomeFragment) + .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 handleEventOneVideoWatched() { @@ -145,6 +208,16 @@ class HomeFragment : AppViewsFragment(), OnSwit override fun onResume() { super.onResume() setStatusBarDarkFont(isDarkFont = isBackgroundBright) + + 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 onPause() { diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/home/fragment/HomeItemFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/home/fragment/HomeItemFragment.kt index 362858a..7f648f0 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/home/fragment/HomeItemFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/home/fragment/HomeItemFragment.kt @@ -13,25 +13,12 @@ import android.view.animation.AnimationSet import android.view.animation.ScaleAnimation import android.widget.FrameLayout import androidx.annotation.NonNull -import androidx.core.graphics.toColorInt import androidx.core.view.isVisible 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.ResUtil.dp -import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.setOnClickBatch -import com.ama.core.common.widget.PopMenuIconView import com.vididin.real.money.game.R -import com.gamedog.vididin.VidiConst import com.gamedog.vididin.beans.YoutubeVideo -import com.gamedog.vididin.main.WatchAdDialog -import com.gamedog.vididin.router.Router import com.gamedog.vididin.widget.MyPlayerControlView import com.gamedog.vididin.youtubestatistic.TickerTimer import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.PlayerConstants @@ -43,7 +30,6 @@ import com.vididin.real.money.game.databinding.VididinappFeatureHomeItemLayoutBi class HomeItemFragment : AppViewsEmptyViewModelFragment() { - private var mHasShowGuide: Boolean = false private var mMaskBitmap: Bitmap? = null private var mPlayerView: YouTubePlayerView? = null private var mPlayer: YouTubePlayer? = null @@ -71,22 +57,6 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment() { ivIntroExpand.isVisible = tvVideoIntro.lineCount > 2 - popMenu.setMenuList( - mutableListOf( - PopMenuIconView.MenuItem(R.mipmap.home_menu_1) { - Router.Benefit.startActivity(requireActivity()) - }, - PopMenuIconView.MenuItem(R.mipmap.home_menu_2) { - WatchAdDialog(requireActivity(), VidiConst.WATCH_AD_FOR_DAILY_EARN_GOLD, null).show() - }, - PopMenuIconView.MenuItem(R.mipmap.home_menu_3) { - AndroidUtil.openUrl(VidiConst.URL_GAME) - }, - PopMenuIconView.MenuItem(R.mipmap.home_menu_4) { - Router.ZeroBuy.startActivity(requireActivity()) - } - )) - setOnClickBatch(ivIntroExpand, clickMaskView) { when (this) { clickMaskView -> { @@ -120,35 +90,9 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment() { - 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() { if (mPlayer != null && mVideoData != null && !mVideoData?.id.isNullOrEmpty()) { @@ -273,17 +217,6 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment() { override fun onResume() { super.onResume() 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) - } - } - } diff --git a/app/src/main/res/layout/vididinapp_feature_home_fragment_home.xml b/app/src/main/res/layout/vididinapp_feature_home_fragment_home.xml index d09f284..f65f0bc 100644 --- a/app/src/main/res/layout/vididinapp_feature_home_fragment_home.xml +++ b/app/src/main/res/layout/vididinapp_feature_home_fragment_home.xml @@ -18,4 +18,13 @@ android:layout_marginTop="40dp" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/vididinapp_feature_home_item_layout.xml b/app/src/main/res/layout/vididinapp_feature_home_item_layout.xml index 0b57805..b515783 100644 --- a/app/src/main/res/layout/vididinapp_feature_home_item_layout.xml +++ b/app/src/main/res/layout/vididinapp_feature_home_item_layout.xml @@ -85,15 +85,6 @@ - - = synchronized(lock) { listeners.toList() } fun release() { @@ -117,6 +121,7 @@ internal class WebViewYouTubePlayer constructor( override val listeners: Collection get() = _youTubePlayer.getListeners() override fun getInstance(): YouTubePlayer = _youTubePlayer override fun onYouTubeIFrameAPIReady() = youTubePlayerInitListener(_youTubePlayer) + fun addListener(listener: YouTubePlayerListener) = _youTubePlayer.addListener(listener) fun removeListener(listener: YouTubePlayerListener) = _youTubePlayer.removeListener(listener)