【推送】播放广告时可以点击推送信息返回游戏界面中

This commit is contained in:
renhaoting 2026-01-16 18:29:48 +08:00
parent 60fa7faa2f
commit e5797d5f80
4 changed files with 68 additions and 26 deletions

View File

@ -45,12 +45,18 @@
android:name="com.gamedog.vididin.main.MainActivity" android:name="com.gamedog.vididin.main.MainActivity"
android:screenOrientation="portrait" android:exported="true" android:screenOrientation="portrait" android:exported="true"
android:launchMode="singleTask" > android:launchMode="singleTask" >
</activity>
<activity-alias
android:name="com.gamedog.vididin.main.MainActivityAlias"
android:targetActivity="com.gamedog.vididin.main.MainActivity"
android:exported="true"
android:enabled="true">
<intent-filter> <intent-filter>
<action android:name="com.remax.notification.ACTION_OPEN_APP" /> <action android:name="com.remax.notification.ACTION_OPEN_APP" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
</intent-filter> </intent-filter>
</activity> </activity-alias>
<activity android:name="com.gamedog.vididin.login.LoginActivity" android:exported="false" /> <activity android:name="com.gamedog.vididin.login.LoginActivity" android:exported="false" />
<activity android:name="com.gamedog.vididin.features.benefit.BenefitActivity" android:exported="false" /> <activity android:name="com.gamedog.vididin.features.benefit.BenefitActivity" android:exported="false" />

View File

@ -1,6 +1,7 @@
package com.gamedog.vididin package com.gamedog.vididin
object VididinEvents { object VididinEvents {
const val Event_Sign_State_Changed = 600 const val Event_Sign_State_Changed = 600
const val Event_Account_Gold_Changed = 601 const val Event_Account_Gold_Changed = 601
const val Event_Account_Cash_Changed = 602 const val Event_Account_Cash_Changed = 602
@ -46,6 +47,9 @@ object VididinEvents {
const val EVENT_JUMP_2_SIGN= 902 const val EVENT_JUMP_2_SIGN= 902
const val AD_ACT_SHOWING = 951
const val AD_ACT_DESTROY = 952
// Withdraw related // Withdraw related
const val EVENT_WITHDRAW_SUB_ITEM_PROGRESS_UPDATED = 500 const val EVENT_WITHDRAW_SUB_ITEM_PROGRESS_UPDATED = 500

View File

@ -2,6 +2,7 @@ package com.gamedog.vididin.features.watchad
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.os.Bundle
import android.os.CountDownTimer import android.os.CountDownTimer
import android.view.LayoutInflater import android.view.LayoutInflater
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
@ -159,6 +160,13 @@ class WatchAdActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyl
override fun onDestroy() { override fun onDestroy() {
super.onDestroy() super.onDestroy()
mCountDownTimer.cancel() mCountDownTimer.cancel()
NotifyMan.instance().sendEvent(VididinEvents.AD_ACT_DESTROY, null)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
NotifyMan.instance().sendEvent(VididinEvents.AD_ACT_SHOWING, null)
} }
override fun ViewBinding.initObservers() { override fun ViewBinding.initObservers() {
@ -184,7 +192,7 @@ class WatchAdActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyl
if (!mIsLoadSuccess) { if (!mIsLoadSuccess) {
handleLoadFailed() handleLoadFailed()
} }
}, 3000) }, 30000)
try { try {

View File

@ -2,8 +2,10 @@ package com.gamedog.vididin.main
import android.app.Activity import android.app.Activity
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
import android.content.ComponentName
import android.content.Intent import android.content.Intent
import android.content.IntentFilter import android.content.IntentFilter
import android.content.pm.PackageManager
import android.view.LayoutInflater import android.view.LayoutInflater
import androidx.activity.addCallback import androidx.activity.addCallback
import androidx.activity.viewModels import androidx.activity.viewModels
@ -12,7 +14,6 @@ import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks import androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.viewpager2.widget.ViewPager2 import androidx.viewpager2.widget.ViewPager2
import com.ama.core.architecture.BaseApp
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
@ -39,7 +40,6 @@ 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.AdResult
import com.remax.bill.ads.PreloadController 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.ext.AdShowExt
import com.remax.bill.ads.log.AdLogger import com.remax.bill.ads.log.AdLogger
import com.remax.notification.builder.LANDING_NOTIFICATION_ACTION import com.remax.notification.builder.LANDING_NOTIFICATION_ACTION
@ -82,6 +82,8 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
override fun ViewBinding.initViews() { override fun ViewBinding.initViews() {
onAdShowingStateChanged(true)
activityLauncher = ActivityLauncher(this@MainActivity) activityLauncher = ActivityLauncher(this@MainActivity)
navigatorAdapter = MainTabsAdapter( navigatorAdapter = MainTabsAdapter(
@ -146,9 +148,18 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
VididinEvents.EVENT_JUMP_2_VIDEO-> { VididinEvents.EVENT_JUMP_2_VIDEO-> {
switchTab(0) switchTab(0)
} }
VididinEvents.AD_ACT_SHOWING-> {
onAdShowingStateChanged(true)
}
VididinEvents.AD_ACT_DESTROY-> {
onAdShowingStateChanged(false)
}
} }
}, VididinEvents.EVENT_AD_WATCHED_FOR_EARN_GOLD, VididinEvents.EVENT_JUMP_2_VIDEO) }, VididinEvents.EVENT_AD_WATCHED_FOR_EARN_GOLD, VididinEvents.EVENT_JUMP_2_VIDEO,
VididinEvents.AD_ACT_SHOWING, VididinEvents.AD_ACT_DESTROY)
} }
override fun ViewBinding.initObservers() { override fun ViewBinding.initObservers() {
@ -186,35 +197,48 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
reportStatistics(intent, true) reportStatistics(intent, true)
} }
private fun onAdShowingStateChanged(isAdShowing: Boolean) {
val newState = if (isAdShowing) {
PackageManager.COMPONENT_ENABLED_STATE_DISABLED
} else {
PackageManager.COMPONENT_ENABLED_STATE_ENABLED
}
packageManager.setComponentEnabledSetting(
ComponentName(this, "com.gamedog.vididin.main.MainActivityAlias"),
newState,
PackageManager.DONT_KILL_APP
)
}
fun switchTab(itemIndex: Int) { fun switchTab(itemIndex: Int) {
binding.viewPager2.setCurrentItem(itemIndex, false) binding.viewPager2.setCurrentItem(itemIndex, false)
} }
private fun handleNotificationAction() { private fun handleNotificationAction() {
if (NotificationLandingController.isFromNotification(intent)) { if (NotificationLandingController.isFromNotification(intent)) {
if (BaseApp.getCurrentActivity()?.localClassName?.contains("WatchAdActivity") != true) { val notificationAction = intent.getIntExtra(LANDING_NOTIFICATION_ACTION, -1)
val notificationAction = intent.getIntExtra(LANDING_NOTIFICATION_ACTION, -1) when (notificationAction) {
when (notificationAction) { PushContent.ACTION_TYPE_GAME -> {
PushContent.ACTION_TYPE_GAME -> { Router.Game.startActivity(this)
Router.Game.startActivity(this)
}
PushContent.ACTION_TYPE_GOLD -> {
switchTab(1)
}
PushContent.ACTION_TYPE_WITHDRAW -> {
Router.Withdraw.startActivity(this)
}
PushContent.ACTION_TYPE_BOX -> {
Router.Benefit.startActivity(this)
}
} }
NotificationLandingController.clearNotificationParameters(intent)
sendNotificationClickStatistics(notificationAction) PushContent.ACTION_TYPE_GOLD -> {
switchTab(1)
}
PushContent.ACTION_TYPE_WITHDRAW -> {
Router.Withdraw.startActivity(this)
}
PushContent.ACTION_TYPE_BOX -> {
Router.Benefit.startActivity(this)
}
} }
NotificationLandingController.clearNotificationParameters(intent)
sendNotificationClickStatistics(notificationAction)
} }
} }