feat: ActivityProvider
This commit is contained in:
parent
3003e78912
commit
193036f37c
2 changed files with 38 additions and 0 deletions
|
|
@ -29,7 +29,11 @@ class ManagerApplication : Application() {
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
|
|
||||||
startKoin {
|
startKoin {
|
||||||
|
// Android activities & context
|
||||||
androidContext(this@ManagerApplication)
|
androidContext(this@ManagerApplication)
|
||||||
|
modules(module(createdAtStart = true) {
|
||||||
|
singleOf(::ActivityProvider)
|
||||||
|
})
|
||||||
|
|
||||||
// HTTP
|
// HTTP
|
||||||
modules(module {
|
modules(module {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
package com.aliucord.manager.di
|
||||||
|
|
||||||
|
import android.app.Activity
|
||||||
|
import android.app.Application
|
||||||
|
import android.os.Bundle
|
||||||
|
import java.util.Objects
|
||||||
|
|
||||||
|
class ActivityProvider(application: Application) {
|
||||||
|
private var activeActivity: Activity? = null
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the current active activity as a specific activity or errors otherwise.
|
||||||
|
*/
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
fun <T : Activity> get(): T = Objects.requireNonNull(activeActivity, "No active activity cached!") as T
|
||||||
|
|
||||||
|
init {
|
||||||
|
application.registerActivityLifecycleCallbacks(object : Application.ActivityLifecycleCallbacks {
|
||||||
|
override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {}
|
||||||
|
override fun onActivityPaused(activity: Activity) {}
|
||||||
|
override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {}
|
||||||
|
override fun onActivityStarted(activity: Activity) {}
|
||||||
|
override fun onActivityStopped(activity: Activity) {}
|
||||||
|
|
||||||
|
override fun onActivityResumed(activity: Activity) {
|
||||||
|
activeActivity = activity
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onActivityDestroyed(activity: Activity) {
|
||||||
|
activeActivity = null
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue