From 73921df71eba3114bc847ca6806cebb87aaed8da Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 31 Jul 2024 19:51:43 +0700 Subject: [PATCH] Schedule and cancel auto-updates properly Only schedule auto-updates when we have signed in and cancel them on logout Signed-off-by: Aayush Gupta --- .../com/aurora/store/view/ui/account/LogoutDialog.kt | 2 ++ .../store/view/ui/onboarding/OnboardingFragment.kt | 12 ------------ .../com/aurora/store/viewmodel/auth/AuthViewModel.kt | 10 ++++++++++ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/aurora/store/view/ui/account/LogoutDialog.kt b/app/src/main/java/com/aurora/store/view/ui/account/LogoutDialog.kt index b14067b66..6f1ffc829 100644 --- a/app/src/main/java/com/aurora/store/view/ui/account/LogoutDialog.kt +++ b/app/src/main/java/com/aurora/store/view/ui/account/LogoutDialog.kt @@ -6,6 +6,7 @@ import androidx.fragment.app.DialogFragment import androidx.navigation.fragment.findNavController import com.aurora.store.R import com.aurora.store.data.providers.AccountProvider +import com.aurora.store.data.work.UpdateWorker import com.google.android.material.dialog.MaterialAlertDialogBuilder import dagger.hilt.android.AndroidEntryPoint @@ -23,6 +24,7 @@ class LogoutDialog: DialogFragment() { private fun logout() { AccountProvider.with(requireContext()).logout() + UpdateWorker.cancelAutomatedCheck(requireContext()) findNavController().navigate(LogoutDialogDirections.actionLogoutDialogToSplashFragment()) } } diff --git a/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingFragment.kt b/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingFragment.kt index 322b8b189..86bd5ca95 100644 --- a/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingFragment.kt @@ -28,11 +28,9 @@ import androidx.navigation.fragment.findNavController import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback import com.aurora.Constants -import com.aurora.extensions.isIgnoringBatteryOptimizations import com.aurora.extensions.isSAndAbove import com.aurora.store.R import com.aurora.store.data.work.CacheWorker -import com.aurora.store.data.work.UpdateWorker import com.aurora.store.databinding.FragmentOnboardingBinding import com.aurora.store.util.CertUtil import com.aurora.store.util.PackageUtil @@ -50,7 +48,6 @@ import com.aurora.store.util.Preferences.PREFERENCE_INTRO import com.aurora.store.util.Preferences.PREFERENCE_SIMILAR import com.aurora.store.util.Preferences.PREFERENCE_THEME_ACCENT import com.aurora.store.util.Preferences.PREFERENCE_THEME_TYPE -import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_AUTO import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_CHECK_INTERVAL import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_EXTENDED import com.aurora.store.util.Preferences.PREFERENCE_VENDING_VERSION @@ -139,7 +136,6 @@ class OnboardingFragment : BaseFragment() { } private fun finishOnboarding() { - setupAutoUpdates() CacheWorker.scheduleAutomatedCacheCleanup(requireContext()) save(PREFERENCE_INTRO, true) findNavController().navigate( @@ -175,12 +171,4 @@ class OnboardingFragment : BaseFragment() { save(PREFERENCE_UPDATES_EXTENDED, false) save(PREFERENCE_UPDATES_CHECK_INTERVAL, 3) } - - private fun setupAutoUpdates() { - save( - PREFERENCE_UPDATES_AUTO, - if (requireContext().isIgnoringBatteryOptimizations()) 2 else 1 - ) - UpdateWorker.scheduleAutomatedCheck(requireContext()) - } } diff --git a/app/src/main/java/com/aurora/store/viewmodel/auth/AuthViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/auth/AuthViewModel.kt index ed92a14d1..419157bb6 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/auth/AuthViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/auth/AuthViewModel.kt @@ -26,6 +26,7 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.aurora.Constants +import com.aurora.extensions.isIgnoringBatteryOptimizations import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.data.models.PlayResponse import com.aurora.gplayapi.helpers.AuthHelper @@ -38,9 +39,12 @@ import com.aurora.store.data.model.AuthState import com.aurora.store.data.network.HttpClient import com.aurora.store.data.providers.AccountProvider import com.aurora.store.data.providers.AuthProvider +import com.aurora.store.data.work.UpdateWorker import com.aurora.store.util.AC2DMTask import com.aurora.store.util.Preferences import com.aurora.store.util.Preferences.PREFERENCE_AUTH_DATA +import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_AUTO +import com.aurora.store.util.save import com.google.gson.Gson import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext @@ -205,6 +209,7 @@ class AuthViewModel @Inject constructor( liveData.postValue(AuthState.Verifying) if (authData.authToken.isNotEmpty() && authData.deviceConfigToken.isNotEmpty()) { configAuthPref(authData, type, true) + setupAutoUpdates() liveData.postValue(AuthState.SignedIn) } else { configAuthPref(authData, type, false) @@ -229,6 +234,11 @@ class AuthViewModel @Inject constructor( Preferences.putBoolean(context, Constants.ACCOUNT_SIGNED_IN, signedIn) } + private fun setupAutoUpdates() { + context.save(PREFERENCE_UPDATES_AUTO, if (context.isIgnoringBatteryOptimizations()) 2 else 1) + UpdateWorker.scheduleAutomatedCheck(context) + } + @Throws(Exception::class) private fun throwError(playResponse: PlayResponse, context: Context) { when (playResponse.code) {