Updated on 2026-08-14

This commit is contained in:
Tangem 2022-07-07 19:56:44 +03:00
parent 8c080fdb58
commit ba350d0de0
2 changed files with 50 additions and 0 deletions

View file

@ -0,0 +1,46 @@
package com.tangem.tap
import android.app.Activity
import android.app.Application.ActivityLifecycleCallbacks
import android.os.Bundle
import java.util.WeakHashMap
import kotlin.reflect.KClass
class ForegroundActivityObserver {
private val activities = WeakHashMap<KClass<out Activity>, Activity>()
val foregroundActivity: Activity?
get() = activities.entries
.filterNot { it.value.isDestroyed }
.firstOrNull()
?.value
val callbacks get() = Callbacks()
inner class Callbacks : ActivityLifecycleCallbacks {
override fun onActivityResumed(activity: Activity) {
activities[activity::class] = activity
}
override fun onActivityDestroyed(activity: Activity) {
activities.remove(activity::class)
}
override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
}
override fun onActivityStarted(activity: Activity) {
}
override fun onActivityPaused(activity: Activity) {
}
override fun onActivityStopped(activity: Activity) {
}
override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {
}
}
}
fun ForegroundActivityObserver.withForegroundActivity(
block: (Activity) -> Unit
) {
foregroundActivity?.let { block(it) }
}

View file

@ -40,6 +40,8 @@ val store = Store(
)
val logConfig = LogConfig()
lateinit var foregroundActivityObserver: ForegroundActivityObserver
lateinit var preferencesStorage: PreferencesStorage
lateinit var currenciesRepository: CurrenciesRepository
lateinit var walletConnectRepository: WalletConnectRepository
@ -68,6 +70,8 @@ class TapApplication : Application(), ImageLoaderFactory {
)
walletConnectRepository = WalletConnectRepository(this)
foregroundActivityObserver = ForegroundActivityObserver()
registerActivityLifecycleCallbacks(foregroundActivityObserver.callbacks)
initFeedbackManager()
loadConfigs()