From 6ea0cda27711e454fb538775903e8fb1daa22051 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Mon, 7 Oct 2024 22:47:45 +0530 Subject: [PATCH] OnboardingFragment: Improvements to auto-updates setup Signed-off-by: Aayush Gupta --- app/src/main/java/com/aurora/extensions/Context.kt | 9 +++++++++ .../store/view/ui/onboarding/OnboardingFragment.kt | 11 +++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/aurora/extensions/Context.kt b/app/src/main/java/com/aurora/extensions/Context.kt index c6247c34a..f7745a165 100644 --- a/app/src/main/java/com/aurora/extensions/Context.kt +++ b/app/src/main/java/com/aurora/extensions/Context.kt @@ -20,6 +20,7 @@ package com.aurora.extensions import android.Manifest +import android.app.NotificationManager import android.content.ClipData import android.content.ClipboardManager import android.content.Context @@ -122,6 +123,14 @@ fun Context.isIgnoringBatteryOptimizations(): Boolean { } } +fun Context.areNotificationsEnabled(): Boolean { + return if (isNAndAbove()) { + getSystemService()!!.areNotificationsEnabled() + } else { + true + } +} + fun Context.checkManifestPermission(permission: String): Boolean { return ActivityCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED } 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 f9ce359e1..fab8f0c09 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,6 +28,7 @@ import androidx.navigation.fragment.findNavController import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback import com.aurora.Constants +import com.aurora.extensions.areNotificationsEnabled import com.aurora.extensions.isIgnoringBatteryOptimizations import com.aurora.store.R import com.aurora.store.data.work.CacheWorker @@ -174,10 +175,12 @@ class OnboardingFragment : BaseFragment() { } private fun setupAutoUpdates() { - save( - PREFERENCE_UPDATES_AUTO, - if (requireContext().isIgnoringBatteryOptimizations()) 2 else 1 - ) + val updateMode = when { + requireContext().isIgnoringBatteryOptimizations() -> 2 // Auto-update + requireContext().areNotificationsEnabled() -> 1 // Notify update + else -> 0 // Disable + } + save(PREFERENCE_UPDATES_AUTO, updateMode) UpdateWorker.scheduleAutomatedCheck(requireContext()) } }