85 lines
2.8 KiB
Kotlin
85 lines
2.8 KiB
Kotlin
package com.gh.base
|
||
|
||
import android.app.Activity
|
||
import android.app.Application
|
||
import android.os.Bundle
|
||
import androidx.appcompat.app.AppCompatActivity
|
||
import com.gh.common.util.FloatingBackViewManager
|
||
import com.gh.download.DownloadManager
|
||
import com.gh.gamecenter.SingletonWebActivity
|
||
import com.gh.gamecenter.SkipActivity
|
||
import com.gh.gamecenter.SplashScreenActivity
|
||
import com.gh.gamecenter.authorization.AuthorizationActivity
|
||
import com.gh.gamecenter.common.base.GlobalActivityManager
|
||
import com.gh.gamecenter.common.utils.PackageFlavorHelper
|
||
import com.gh.vspace.VHelper
|
||
import com.halo.assistant.HaloApp
|
||
|
||
// TODO:移动到对应的模块
|
||
class GlobalActivityLifecycleObserver : Application.ActivityLifecycleCallbacks {
|
||
|
||
override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
|
||
// do nothing
|
||
}
|
||
|
||
override fun onActivityStarted(activity: Activity) {
|
||
GlobalActivityManager.currentActivity = activity
|
||
}
|
||
|
||
override fun onActivityResumed(activity: Activity) {
|
||
// 判断是否需要显示或隐藏返回小浮窗
|
||
if (FloatingBackViewManager.getType().isNotEmpty()) {
|
||
if (activity is SingletonWebActivity
|
||
&& FloatingBackViewManager.getType() == FloatingBackViewManager.TYPE_ACTIVITY
|
||
) {
|
||
FloatingBackViewManager.disableBackView()
|
||
} else {
|
||
FloatingBackViewManager.showBackView(activity)
|
||
}
|
||
}
|
||
|
||
if (HaloApp.isUserAcceptPrivacyPolicy(activity)) {
|
||
// FIXME 这里应该只是部分Activity需要
|
||
try {
|
||
// 初始化gameMap
|
||
if (activity !is SplashScreenActivity) {
|
||
DownloadManager.getInstance().initGameMap()
|
||
}
|
||
} catch (e: Exception) {
|
||
e.printStackTrace()
|
||
}
|
||
}
|
||
|
||
if (PackageFlavorHelper.IS_TEST_FLAVOR && activity is AppCompatActivity) {
|
||
DarkModeSwitchHelper.showDarkModeSwitchFloatingView(activity)
|
||
}
|
||
|
||
if (activity is AppCompatActivity
|
||
&& activity !is SplashScreenActivity
|
||
&& activity !is SkipActivity
|
||
&& activity !is AuthorizationActivity
|
||
) {
|
||
VHelper.showFeedbackDialogIfLastSuccessfulLaunchedGameExitUnexpectedly(activity)
|
||
}
|
||
}
|
||
|
||
override fun onActivityPaused(activity: Activity) {
|
||
FloatingBackViewManager.dismissBackView()
|
||
if (PackageFlavorHelper.IS_TEST_FLAVOR && activity is AppCompatActivity) {
|
||
DarkModeSwitchHelper.dismissDarkModeSwitchFloatingView()
|
||
}
|
||
}
|
||
|
||
override fun onActivityStopped(activity: Activity) {
|
||
// do nothing
|
||
}
|
||
|
||
override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {
|
||
// do nothing
|
||
}
|
||
|
||
override fun onActivityDestroyed(activity: Activity) {
|
||
// do nothing
|
||
}
|
||
|
||
} |