1package com.peachpasswords23import android.app.Application4import androidx.hilt.work.HiltWorkerFactory5import androidx.lifecycle.DefaultLifecycleObserver6import androidx.lifecycle.LifecycleOwner7import androidx.lifecycle.ProcessLifecycleOwner8import androidx.work.Configuration9import com.peachpasswords.sync.ForegroundSyncCoordinator10import com.peachpasswords.updates.UpdateCheckWorker11import com.peachpasswords.vault.VaultLockTimer12import com.peachpasswords.vault.VaultRepository13import dagger.hilt.android.HiltAndroidApp14import javax.inject.Inject1516@HiltAndroidApp17class PeachApplication : Application(), Configuration.Provider {18 @Inject lateinit var vault: VaultRepository19 @Inject lateinit var lockTimer: VaultLockTimer20 @Inject lateinit var foregroundSync: ForegroundSyncCoordinator21 @Inject lateinit var workerFactory: HiltWorkerFactory2223 override val workManagerConfiguration: Configuration24 get() = Configuration.Builder().setWorkerFactory(workerFactory).build()2526 override fun onCreate() {27 super.onCreate()2829 30 31 32 UpdateCheckWorker.schedulePeriodic(this)33 UpdateCheckWorker.checkNow(this)34 35 36 37 ProcessLifecycleOwner.get().lifecycle.addObserver(object : DefaultLifecycleObserver {38 override fun onStart(owner: LifecycleOwner) {39 foregroundSync.triggerForegroundSync()40 }4142 override fun onStop(owner: LifecycleOwner) {43 44 45 46 47 48 if (vault.consumeTransientBackgroundSuppression()) return49 vault.lock()50 lockTimer.cancel()51 }52 })53 }54}