PeachApplication.kt

1.0 KB · raw

1package com.peachpasswords23import android.app.Application4import androidx.lifecycle.DefaultLifecycleObserver5import androidx.lifecycle.LifecycleOwner6import androidx.lifecycle.ProcessLifecycleOwner7import com.peachpasswords.vault.VaultLockTimer8import com.peachpasswords.vault.VaultRepository9import dagger.hilt.android.HiltAndroidApp10import javax.inject.Inject1112@HiltAndroidApp13class PeachApplication : Application() {14    @Inject lateinit var vault: VaultRepository15    @Inject lateinit var lockTimer: VaultLockTimer1617    override fun onCreate() {18        super.onCreate()19        // Lock the vault the moment the whole app goes to background (CF-1).20        // ProcessLifecycleOwner is process-wide and debounced, so a rotation or a21        // brief Activity restart does not trip it — only a genuine backgrounding.22        ProcessLifecycleOwner.get().lifecycle.addObserver(object : DefaultLifecycleObserver {23            override fun onStop(owner: LifecycleOwner) {24                vault.lock()25                lockTimer.cancel()26            }27        })28    }29}