统一设置 基类
This commit is contained in:
parent
1b38648b3a
commit
ec9dabdc0e
|
|
@ -30,6 +30,8 @@ class SplashActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyle
|
|||
|
||||
override fun inflateViewBinding(inflater: LayoutInflater) = ViewBinding.inflate(inflater)
|
||||
|
||||
override var mEnableBannerAd = false
|
||||
|
||||
override fun ViewBinding.initViews() {
|
||||
startTime = System.currentTimeMillis()
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import android.content.Intent
|
|||
import android.os.CountDownTimer
|
||||
import android.view.LayoutInflater
|
||||
import androidx.activity.addCallback
|
||||
import androidx.activity.viewModels
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import androidx.core.view.updatePadding
|
||||
|
|
@ -22,7 +21,6 @@ import com.remax.bill.ads.AdResult
|
|||
import com.remax.bill.ads.ext.AdShowExt
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlin.getValue
|
||||
import com.vididin.real.money.game.databinding.ActivityWatchAdBinding as ViewBinding
|
||||
|
||||
|
||||
|
|
@ -31,7 +29,7 @@ import com.vididin.real.money.game.databinding.ActivityWatchAdBinding as ViewBin
|
|||
class WatchAdActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyleListener {
|
||||
|
||||
override fun inflateViewBinding(inflater: LayoutInflater) = ViewBinding.inflate(inflater)
|
||||
|
||||
override var mEnableBannerAd = false
|
||||
|
||||
private lateinit var mCountDownTimer: CountDownTimer
|
||||
private var mWatchType: Int = 0
|
||||
|
|
|
|||
|
|
@ -1,21 +1,10 @@
|
|||
package com.ama.core.architecture.base
|
||||
|
||||
import android.view.View
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
|
||||
|
||||
abstract class BaseActivity : AppCompatActivity() {
|
||||
|
||||
protected fun setImmerseRootView(rootView: View) {
|
||||
ViewCompat.setOnApplyWindowInsetsListener(rootView) { v, insets ->
|
||||
val systemBars = insets.getInsets(
|
||||
WindowInsetsCompat.Type.systemBars() or WindowInsetsCompat.Type.displayCutout() or WindowInsetsCompat.Type.ime()
|
||||
)
|
||||
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
|
||||
insets
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -2,11 +2,18 @@ package com.ama.core.architecture.base.views
|
|||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.Gravity
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.FrameLayout
|
||||
import android.widget.RelativeLayout
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import androidx.lifecycle.flowWithLifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import com.ama.core.architecture.R
|
||||
import com.ama.core.architecture.base.BaseActivity
|
||||
import com.ama.core.architecture.base.BaseViewModel
|
||||
import com.ama.core.architecture.interfaces.ViewBindingActivity
|
||||
|
|
@ -24,8 +31,9 @@ import kotlinx.coroutines.launch
|
|||
|
||||
abstract class BaseViewsActivity<Binding : ViewBinding, UiState : Any,
|
||||
ViewModel : BaseViewModel<UiState>> :
|
||||
BaseActivity(), ViewBindingActivity<Binding, UiState>, ViewModelOwner<UiState, ViewModel>,
|
||||
DefaultStateViewManager, MessageCollectorOwner {
|
||||
BaseActivity(), ViewBindingActivity<Binding, UiState>, ViewModelOwner<UiState, ViewModel>, DefaultStateViewManager, MessageCollectorOwner {
|
||||
private lateinit var mFinalRootView: ViewGroup
|
||||
protected open var mEnableBannerAd = true
|
||||
|
||||
override val binding: Binding by lazy { inflateViewBinding(layoutInflater) }
|
||||
|
||||
|
|
@ -57,9 +65,7 @@ abstract class BaseViewsActivity<Binding : ViewBinding, UiState : Any,
|
|||
super.onCreate(savedInstanceState)
|
||||
initEdgeToEdge()
|
||||
readIntent(intent)
|
||||
// 内容
|
||||
setContentView(binding.root)
|
||||
// 初始化
|
||||
setContentView(getContentView())
|
||||
binding.initWindowInsets()
|
||||
binding.initViews()
|
||||
binding.initListeners()
|
||||
|
|
@ -100,4 +106,51 @@ abstract class BaseViewsActivity<Binding : ViewBinding, UiState : Any,
|
|||
initLoadStateUiStateCollect(mViewModel, lifecycleScope, lifecycle)
|
||||
}
|
||||
|
||||
|
||||
protected fun setImmerseRootView(rootView: View) {
|
||||
ViewCompat.setOnApplyWindowInsetsListener(rootView) { v, insets ->
|
||||
val systemBars = insets.getInsets(
|
||||
WindowInsetsCompat.Type.systemBars() or WindowInsetsCompat.Type.displayCutout() or WindowInsetsCompat.Type.ime()
|
||||
)
|
||||
if (mEnableBannerAd) {
|
||||
v.setPadding(systemBars.left, systemBars.top, systemBars.right, 0)
|
||||
mFinalRootView.run {
|
||||
setPadding(paddingLeft, paddingTop, paddingRight,systemBars.bottom)
|
||||
}
|
||||
} else {
|
||||
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
|
||||
}
|
||||
|
||||
insets
|
||||
}
|
||||
}
|
||||
|
||||
private fun getContentView(): View {
|
||||
if (mEnableBannerAd) {
|
||||
mFinalRootView = RelativeLayout(this)
|
||||
val adContainer = FrameLayout(this).apply {
|
||||
layoutParams = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,100).apply {
|
||||
addRule(RelativeLayout.ALIGN_PARENT_BOTTOM)
|
||||
}
|
||||
setBackgroundResource(R.color.gray_3)
|
||||
id = ViewCompat.generateViewId()
|
||||
}
|
||||
mFinalRootView.addView(adContainer)
|
||||
|
||||
val bindingRootLayoutParams = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT).apply {
|
||||
addRule(RelativeLayout.ABOVE, adContainer.id)
|
||||
}
|
||||
mFinalRootView.addView(binding.root, bindingRootLayoutParams)
|
||||
} else {
|
||||
return binding.root
|
||||
}
|
||||
return mFinalRootView
|
||||
}
|
||||
|
||||
private fun addShowAdView() {
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue