弹出菜单迁移到 HomeFragment
This commit is contained in:
parent
02587b7e21
commit
328cbd205d
|
|
@ -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<ViewBinding, UiState, ViewModel>(), 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<ViewBinding, UiState, ViewModel>(), 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<ViewBinding, UiState, ViewModel>(), 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<ViewBinding, UiState, ViewModel>(), 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() {
|
||||
|
|
|
|||
|
|
@ -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<ViewBinding>() {
|
||||
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<ViewBinding>() {
|
|||
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<ViewBinding>() {
|
|||
|
||||
|
||||
|
||||
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<ViewBinding>() {
|
|||
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)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -18,4 +18,13 @@
|
|||
android:layout_marginTop="40dp"
|
||||
/>
|
||||
|
||||
<com.ama.core.common.widget.PopMenuIconView
|
||||
android:id="@+id/pop_menu"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="top|right"
|
||||
android:layout_marginRight="20dp"
|
||||
android:layout_marginTop="20dp"
|
||||
/>
|
||||
|
||||
</FrameLayout>
|
||||
|
|
@ -85,15 +85,6 @@
|
|||
</LinearLayout>
|
||||
|
||||
|
||||
<com.ama.core.common.widget.PopMenuIconView
|
||||
android:id="@+id/pop_menu"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="top|right"
|
||||
android:layout_marginRight="20dp"
|
||||
android:layout_marginTop="20dp"
|
||||
/>
|
||||
|
||||
<com.ama.core.architecture.widget.CustomProgressBar
|
||||
android:id="@+id/progress_bar_player"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.pierfrancescosoffritti.androidyoutubeplayer.core.player
|
||||
|
||||
import android.webkit.WebView
|
||||
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.listeners.YouTubePlayerListener
|
||||
|
||||
/**
|
||||
|
|
@ -57,4 +58,6 @@ interface YouTubePlayer {
|
|||
|
||||
fun addListener(listener: YouTubePlayerListener): Boolean
|
||||
fun removeListener(listener: YouTubePlayerListener): Boolean
|
||||
|
||||
fun getWebView(): WebView
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,6 +61,10 @@ private class YouTubePlayerImpl(
|
|||
override fun addListener(listener: YouTubePlayerListener) = synchronized(lock) { listeners.add(listener) }
|
||||
override fun removeListener(listener: YouTubePlayerListener) = synchronized(lock) { listeners.remove(listener) }
|
||||
|
||||
override fun getWebView(): WebView {
|
||||
return webView
|
||||
}
|
||||
|
||||
fun getListeners(): Collection<YouTubePlayerListener> = synchronized(lock) { listeners.toList() }
|
||||
|
||||
fun release() {
|
||||
|
|
@ -117,6 +121,7 @@ internal class WebViewYouTubePlayer constructor(
|
|||
override val listeners: Collection<YouTubePlayerListener> 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)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue