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

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:screenOrientation="portrait" android:exported="true"
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>
<action android:name="com.remax.notification.ACTION_OPEN_APP" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</activity-alias>
<activity android:name="com.gamedog.vididin.login.LoginActivity" 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
object VididinEvents {
const val Event_Sign_State_Changed = 600
const val Event_Account_Gold_Changed = 601
const val Event_Account_Cash_Changed = 602
@ -46,6 +47,9 @@ object VididinEvents {
const val EVENT_JUMP_2_SIGN= 902
const val AD_ACT_SHOWING = 951
const val AD_ACT_DESTROY = 952
// Withdraw related
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.content.Intent
import android.os.Bundle
import android.os.CountDownTimer
import android.view.LayoutInflater
import androidx.core.view.ViewCompat
@ -159,6 +160,13 @@ class WatchAdActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyl
override fun onDestroy() {
super.onDestroy()
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() {
@ -184,7 +192,7 @@ class WatchAdActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyl
if (!mIsLoadSuccess) {
handleLoadFailed()
}
}, 3000)
}, 30000)
try {

View File

@ -2,8 +2,10 @@ package com.gamedog.vididin.main
import android.app.Activity
import android.content.BroadcastReceiver
import android.content.ComponentName
import android.content.Intent
import android.content.IntentFilter
import android.content.pm.PackageManager
import android.view.LayoutInflater
import androidx.activity.addCallback
import androidx.activity.viewModels
@ -12,7 +14,6 @@ import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks
import androidx.lifecycle.lifecycleScope
import androidx.viewpager2.widget.ViewPager2
import com.ama.core.architecture.BaseApp
import com.ama.core.architecture.appBase.AppViewsActivity
import com.ama.core.architecture.appBase.OnFragmentBackgroundListener
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.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
@ -82,6 +82,8 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
override fun ViewBinding.initViews() {
onAdShowingStateChanged(true)
activityLauncher = ActivityLauncher(this@MainActivity)
navigatorAdapter = MainTabsAdapter(
@ -146,9 +148,18 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
VididinEvents.EVENT_JUMP_2_VIDEO-> {
switchTab(0)
}
VididinEvents.AD_ACT_SHOWING-> {
onAdShowingStateChanged(true)
}
}, VididinEvents.EVENT_AD_WATCHED_FOR_EARN_GOLD, VididinEvents.EVENT_JUMP_2_VIDEO)
VididinEvents.AD_ACT_DESTROY-> {
onAdShowingStateChanged(false)
}
}
}, VididinEvents.EVENT_AD_WATCHED_FOR_EARN_GOLD, VididinEvents.EVENT_JUMP_2_VIDEO,
VididinEvents.AD_ACT_SHOWING, VididinEvents.AD_ACT_DESTROY)
}
override fun ViewBinding.initObservers() {
@ -186,13 +197,27 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
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) {
binding.viewPager2.setCurrentItem(itemIndex, false)
}
private fun handleNotificationAction() {
if (NotificationLandingController.isFromNotification(intent)) {
if (BaseApp.getCurrentActivity()?.localClassName?.contains("WatchAdActivity") != true) {
val notificationAction = intent.getIntExtra(LANDING_NOTIFICATION_ACTION, -1)
when (notificationAction) {
PushContent.ACTION_TYPE_GAME -> {
@ -216,7 +241,6 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
sendNotificationClickStatistics(notificationAction)
}
}
}
private fun showSplashAd() {
val startTime = DateUtil.getCurTimeMs()