统一到基类

This commit is contained in:
renhaoting 2025-12-17 18:36:21 +08:00
parent 08a09d8cf3
commit 1b38648b3a
4 changed files with 51 additions and 24 deletions

View File

@ -61,7 +61,7 @@ class SplashActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyle
private fun startFallbackTimer() {
lifecycleScope.launch {
delay(MAX_SPLASH_TIME)
Router.Main.startActivity(this@SplashActivity)
gotoMain()
}
}
@ -178,7 +178,12 @@ class SplashActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyle
delay(remainingTime)
}
gotoMain()
}
private fun gotoMain() {
Router.Main.startActivity(this@SplashActivity)
finish()
}
companion object {

View File

@ -6,8 +6,6 @@ import android.app.Activity
import android.content.Intent
import android.content.IntentFilter
import com.ama.core.common.util.asSafe
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks
@ -61,6 +59,8 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
override fun ViewBinding.initViews() {
enableBannerAd(binding.adContainer)
navigatorAdapter = MainTabsAdapter(
this@MainActivity, viewPager2, fragmentStateAdapter, magicIndicator
)
@ -124,7 +124,7 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
}
override fun ViewBinding.initObservers() {
loadBannerAd()
}
@ -151,26 +151,6 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
binding.viewPager2.setCurrentItem(itemIndex, false)
}
private fun loadBannerAd() {
lifecycleScope.launch {
try {
when (AdShowExt.showBannerAd(this@MainActivity, binding.adContainer)) {
is AdResult.Success<*> -> {
}
is AdResult.Failure -> {
}
AdResult.Loading -> {
}
}
} catch (e: Exception) {
}
}
}
companion object {
internal fun startActivity(activity: Activity) {

View File

@ -33,5 +33,6 @@ dependencies {
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.8.22'
api 'io.github.pengxurui:modular-eventbus-api:1.0.5'
api 'io.github.pengxurui:modular-eventbus-compiler:1.0.5'
implementation project(':bill')
}

View File

@ -1,13 +1,18 @@
package com.ama.core.architecture.appBase
import android.os.Build
import android.os.Bundle
import android.view.ViewGroup
import androidx.lifecycle.lifecycleScope
import androidx.viewbinding.ViewBinding
import com.ama.core.architecture.base.BaseViewModel
import com.ama.core.architecture.base.views.BaseViewsActivity
import com.ama.core.architecture.util.eventbus.NotifyMan
import com.ama.core.architecture.util.state.createAppStateView
import com.ama.core.designsystem.widget.interfaces.LoadingDialog
import com.remax.bill.ads.AdResult
import com.remax.bill.ads.ext.AdShowExt
import kotlinx.coroutines.launch
abstract class AppViewsActivity<Binding : ViewBinding, UiState : Any, ViewModel : BaseViewModel<UiState>> :
@ -29,6 +34,11 @@ abstract class AppViewsActivity<Binding : ViewBinding, UiState : Any, ViewModel
NotifyMan.instance().register(mEventCallback, *eventTypes)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
tryShowAdBanner()
}
override fun onDestroy() {
super.onDestroy()
if (mEventCallback != null) {
@ -58,4 +68,35 @@ abstract class AppViewsActivity<Binding : ViewBinding, UiState : Any, ViewModel
loadingDialog.dialog.setCancelable(false)
loadingDialog.dialog.setCanceledOnTouchOutside(false)
}
private var mAdContainer: ViewGroup? = null
fun tryShowAdBanner() {
mAdContainer?.let {
lifecycleScope.launch {
try {
when (AdShowExt.showBannerAd(this@AppViewsActivity, it)) {
is AdResult.Success<*> -> {
}
is AdResult.Failure -> {
}
AdResult.Loading -> {
}
}
} catch (e: Exception) {
}
}
}
}
protected fun enableBannerAd(adContainer: ViewGroup) {
mAdContainer = adContainer
}
}