Only launch FlashActivity if app is foreground

This commit is contained in:
topjohnwu
2019-07-28 03:38:27 -07:00
parent 44368383f4
commit 9adfb382e8
5 changed files with 49 additions and 50 deletions

View File

@@ -1,12 +1,14 @@
package com.topjohnwu.magisk.di
import android.app.Activity
import android.app.Application
import android.content.Context
import android.os.Bundle
import androidx.preference.PreferenceManager
import com.skoumal.teanity.rxbus.RxBus
import com.topjohnwu.magisk.App
import org.koin.dsl.module
val applicationModule = module {
single { RxBus() }
factory { get<Context>().resources }
@@ -15,4 +17,31 @@ val applicationModule = module {
factory(Protected) { get<App>().protectedContext }
single(SUTimeout) { get<Context>(Protected).getSharedPreferences("su_timeout", 0) }
single { PreferenceManager.getDefaultSharedPreferences(get<Context>(Protected)) }
}
single { ActivityTracker() as Application.ActivityLifecycleCallbacks }
factory { (get<Application.ActivityLifecycleCallbacks>() as ActivityTracker).foreground }
}
private class ActivityTracker : Application.ActivityLifecycleCallbacks {
var foreground: Activity? = null
override fun onActivityCreated(activity: Activity, bundle: Bundle?) {}
override fun onActivityStarted(activity: Activity) {}
@Synchronized
override fun onActivityResumed(activity: Activity) {
foreground = activity
}
@Synchronized
override fun onActivityPaused(activity: Activity) {
foreground = null
}
override fun onActivityStopped(activity: Activity) {}
override fun onActivitySaveInstanceState(activity: Activity, bundle: Bundle) {}
override fun onActivityDestroyed(activity: Activity) {}
}