main 中尝试显示开屏广告

This commit is contained in:
renhaoting 2026-01-16 17:04:07 +08:00
parent c9e9984ee6
commit d12cccb13c
4 changed files with 51 additions and 7 deletions

View File

@ -186,7 +186,7 @@ class SplashActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyle
private fun gotoMain(needShowSplashAd: Boolean) { private fun gotoMain(needShowSplashAd: Boolean) {
if (!mHasGotoMain) { if (!mHasGotoMain) {
mHasGotoMain = true mHasGotoMain = true
Router.Main.startActivity(this@SplashActivity) Router.Main.startActivity(this@SplashActivity, needShowSplashAd)
finish() finish()
} }
} }

View File

@ -15,7 +15,7 @@ import androidx.viewpager2.widget.ViewPager2
import com.ama.core.architecture.appBase.AppViewsActivity import com.ama.core.architecture.appBase.AppViewsActivity
import com.ama.core.architecture.appBase.OnFragmentBackgroundListener import com.ama.core.architecture.appBase.OnFragmentBackgroundListener
import com.ama.core.architecture.ext.toast import com.ama.core.architecture.ext.toast
import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.DateUtil
import com.ama.core.architecture.util.bindViewPager2 import com.ama.core.architecture.util.bindViewPager2
import com.ama.core.architecture.util.setCommonNavigator import com.ama.core.architecture.util.setCommonNavigator
import com.ama.core.architecture.util.setDataOrAdapter import com.ama.core.architecture.util.setDataOrAdapter
@ -36,6 +36,11 @@ import com.gamedog.vididin.manager.NotificationController
import com.gamedog.vididin.router.Router import com.gamedog.vididin.router.Router
import com.remax.base.report.DataReportManager import com.remax.base.report.DataReportManager
import com.remax.base.utils.ActivityLauncher import com.remax.base.utils.ActivityLauncher
import com.remax.bill.ads.AdResult
import com.remax.bill.ads.PreloadController
import com.remax.bill.ads.config.AdConfigManager
import com.remax.bill.ads.ext.AdShowExt
import com.remax.bill.ads.log.AdLogger
import com.remax.notification.builder.LANDING_NOTIFICATION_ACTION import com.remax.notification.builder.LANDING_NOTIFICATION_ACTION
import com.remax.notification.builder.LANDING_NOTIFICATION_CONTENT import com.remax.notification.builder.LANDING_NOTIFICATION_CONTENT
import com.remax.notification.builder.LANDING_NOTIFICATION_FROM import com.remax.notification.builder.LANDING_NOTIFICATION_FROM
@ -48,6 +53,8 @@ import com.remax.notification.newUtil.events.PowerConnectionReceiver
import com.remax.notification.service.NotificationKeepAliveServiceManager import com.remax.notification.service.NotificationKeepAliveServiceManager
import com.viddin.videos.free.R import com.viddin.videos.free.R
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.launch
import kotlin.math.ceil
import com.gamedog.vididin.main.MainUiState as UiState import com.gamedog.vididin.main.MainUiState as UiState
import com.gamedog.vididin.main.MainViewModel as ViewModel import com.gamedog.vididin.main.MainViewModel as ViewModel
import com.viddin.videos.free.databinding.ActivityMainBinding as ViewBinding import com.viddin.videos.free.databinding.ActivityMainBinding as ViewBinding
@ -90,6 +97,10 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
if (GuideManager.instance().getCurGuideIndex() < GUIDE_INDEX_GIFT) { if (GuideManager.instance().getCurGuideIndex() < GUIDE_INDEX_GIFT) {
BeginnerGiftDialog(this@MainActivity).show() BeginnerGiftDialog(this@MainActivity).show()
} }
if (intent.getBooleanExtra(EXTRA_NEED_SHOW_SPLASH_AD, false)) {
showSplashAd()
}
} }
override fun ViewBinding.initListeners() { override fun ViewBinding.initListeners() {
@ -204,6 +215,34 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
} }
} }
private fun showSplashAd() {
val startTime = DateUtil.getCurTimeMs()
lifecycleScope.launch {
when (val result = AdShowExt.showAppOpenAd(this@MainActivity) { loaded ->
PreloadController.preload(this@MainActivity)
PreloadController.preloadPangle(this@MainActivity)
PreloadController.preloadTopOn(this@MainActivity)
DataReportManager.reportData(
"loading_page_end", mapOf(
"pass_time" to ceil((System.currentTimeMillis() - startTime) / 1000.0).toInt()
)
)
}) {
is AdResult.Success -> {
AdLogger.e("开屏广告显示成功 in MainAct")
}
is AdResult.Failure -> {
AdLogger.e("开屏广告显示失败 in MainAct: ${result.error.message} ")
}
AdResult.Loading -> {
AdLogger.d("开屏广告显示中... in MainAct")
}
}
}
}
private fun sendNotificationClickStatistics(notificationAction: Int) { private fun sendNotificationClickStatistics(notificationAction: Int) {
var pushType = 1 var pushType = 1
if (notificationAction == PushContent.ACTION_TYPE_GAME if (notificationAction == PushContent.ACTION_TYPE_GAME
@ -340,8 +379,13 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
companion object { companion object {
internal fun startActivity(activity: Activity) { val EXTRA_NEED_SHOW_SPLASH_AD = "EXTRA_NEED_SHOW_SPLASH_AD"
activity.startActivity(Intent(activity.applicationContext, MainActivity::class.java))
internal fun startActivity(activity: Activity, needShowSplashAd: Boolean) {
val intent = Intent(activity.applicationContext, MainActivity::class.java).apply {
putExtra(EXTRA_NEED_SHOW_SPLASH_AD, needShowSplashAd)
}
activity.startActivity(intent)
} }
} }

View File

@ -4,7 +4,7 @@ import android.app.Activity
import com.gamedog.vididin.main.MainActivity import com.gamedog.vididin.main.MainActivity
class DefaultMainRouter: MainRouter { class DefaultMainRouter: MainRouter {
override fun startActivity(activity: Activity) { override fun startActivity(activity: Activity, needShowSplashAd: Boolean) {
MainActivity.Companion.startActivity(activity) MainActivity.Companion.startActivity(activity, needShowSplashAd)
} }
} }

View File

@ -3,5 +3,5 @@ package com.gamedog.vididin.router
import android.app.Activity import android.app.Activity
interface MainRouter { interface MainRouter {
fun startActivity(activity: Activity) fun startActivity(activity: Activity, needShowSplashAd: Boolean)
} }