diff --git a/Stores/src/fdroid/java/com.infomaniak.lib.stores/InAppUpdateManager.kt b/Stores/src/fdroid/java/com.infomaniak.lib.stores/InAppUpdateManager.kt index c8158fef..ae275cf9 100644 --- a/Stores/src/fdroid/java/com.infomaniak.lib.stores/InAppUpdateManager.kt +++ b/Stores/src/fdroid/java/com.infomaniak.lib.stores/InAppUpdateManager.kt @@ -35,6 +35,10 @@ class InAppUpdateManager( onInstallSuccess: (() -> Unit)? = null, ) : BaseInAppUpdateManager(activity) { + init { + observeLifecycle() + } + override fun installDownloadedUpdate() = Unit override fun checkUpdateIsAvailable() { diff --git a/Stores/src/main/java/BaseInAppUpdateManager.kt b/Stores/src/main/java/BaseInAppUpdateManager.kt index 44a75264..fa1f780b 100644 --- a/Stores/src/main/java/BaseInAppUpdateManager.kt +++ b/Stores/src/main/java/BaseInAppUpdateManager.kt @@ -21,13 +21,17 @@ import androidx.fragment.app.FragmentActivity import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleOwner -abstract class BaseInAppUpdateManager(activity: FragmentActivity) : DefaultLifecycleObserver { +abstract class BaseInAppUpdateManager(private val activity: FragmentActivity) : DefaultLifecycleObserver { var onInAppUpdateUiChange: ((Boolean) -> Unit)? = null var onFDroidResult: ((Boolean) -> Unit)? = null protected val localSettings = StoresLocalSettings.getInstance(activity) + abstract fun installDownloadedUpdate() + + protected abstract fun checkUpdateIsAvailable() + override fun onStart(owner: LifecycleOwner) { super.onStart(owner) @@ -35,9 +39,9 @@ abstract class BaseInAppUpdateManager(activity: FragmentActivity) : DefaultLifec localSettings.appUpdateLaunches++ } - abstract fun installDownloadedUpdate() - - protected abstract fun checkUpdateIsAvailable() + protected fun BaseInAppUpdateManager.observeLifecycle() { + activity.lifecycle.addObserver(observer = this) + } private fun handleUpdates() = with(localSettings) { if (appUpdateLaunches != 0 && (isUserWantingUpdates || appUpdateLaunches % 10 == 0)) checkUpdateIsAvailable() diff --git a/Stores/src/standard/java/com.infomaniak.lib.stores/InAppUpdateManager.kt b/Stores/src/standard/java/com.infomaniak.lib.stores/InAppUpdateManager.kt index a319190b..592a5928 100644 --- a/Stores/src/standard/java/com.infomaniak.lib.stores/InAppUpdateManager.kt +++ b/Stores/src/standard/java/com.infomaniak.lib.stores/InAppUpdateManager.kt @@ -75,6 +75,10 @@ class InAppUpdateManager( } } + init { + observeLifecycle() + } + override fun onCreate(owner: LifecycleOwner) { super.onCreate(owner) observeAppUpdateDownload()