diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 768d128..25c669b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,12 +45,18 @@ android:name="com.gamedog.vididin.main.MainActivity" android:screenOrientation="portrait" android:exported="true" android:launchMode="singleTask" > + + + - - + diff --git a/app/src/main/java/com/gamedog/vididin/VididinEvents.kt b/app/src/main/java/com/gamedog/vididin/VididinEvents.kt index 30259ab..9a24774 100644 --- a/app/src/main/java/com/gamedog/vididin/VididinEvents.kt +++ b/app/src/main/java/com/gamedog/vididin/VididinEvents.kt @@ -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 diff --git a/app/src/main/java/com/gamedog/vididin/features/watchad/WatchAdActivity.kt b/app/src/main/java/com/gamedog/vididin/features/watchad/WatchAdActivity.kt index 16186ad..60fb687 100644 --- a/app/src/main/java/com/gamedog/vididin/features/watchad/WatchAdActivity.kt +++ b/app/src/main/java/com/gamedog/vididin/features/watchad/WatchAdActivity.kt @@ -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(), 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(), OnTabStyl if (!mIsLoadSuccess) { handleLoadFailed() } - }, 3000) + }, 30000) try { diff --git a/app/src/main/java/com/gamedog/vididin/main/MainActivity.kt b/app/src/main/java/com/gamedog/vididin/main/MainActivity.kt index c91c06f..ee6da2d 100644 --- a/app/src/main/java/com/gamedog/vididin/main/MainActivity.kt +++ b/app/src/main/java/com/gamedog/vididin/main/MainActivity.kt @@ -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(), OnTabS override fun ViewBinding.initViews() { + onAdShowingStateChanged(true) + activityLauncher = ActivityLauncher(this@MainActivity) navigatorAdapter = MainTabsAdapter( @@ -146,9 +148,18 @@ class MainActivity : AppViewsActivity(), OnTabS VididinEvents.EVENT_JUMP_2_VIDEO-> { 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() { @@ -186,35 +197,48 @@ class MainActivity : AppViewsActivity(), 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 -> { - 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) - } + val notificationAction = intent.getIntExtra(LANDING_NOTIFICATION_ACTION, -1) + when (notificationAction) { + PushContent.ACTION_TYPE_GAME -> { + Router.Game.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) } }