OnboardingFragment: Improvements to auto-updates setup

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-10-07 22:47:45 +05:30
parent 424ae09fc4
commit 6ea0cda277
2 changed files with 16 additions and 4 deletions

View File

@@ -20,6 +20,7 @@
package com.aurora.extensions package com.aurora.extensions
import android.Manifest import android.Manifest
import android.app.NotificationManager
import android.content.ClipData import android.content.ClipData
import android.content.ClipboardManager import android.content.ClipboardManager
import android.content.Context import android.content.Context
@@ -122,6 +123,14 @@ fun Context.isIgnoringBatteryOptimizations(): Boolean {
} }
} }
fun Context.areNotificationsEnabled(): Boolean {
return if (isNAndAbove()) {
getSystemService<NotificationManager>()!!.areNotificationsEnabled()
} else {
true
}
}
fun Context.checkManifestPermission(permission: String): Boolean { fun Context.checkManifestPermission(permission: String): Boolean {
return ActivityCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED return ActivityCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED
} }

View File

@@ -28,6 +28,7 @@ import androidx.navigation.fragment.findNavController
import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback
import com.aurora.Constants import com.aurora.Constants
import com.aurora.extensions.areNotificationsEnabled
import com.aurora.extensions.isIgnoringBatteryOptimizations import com.aurora.extensions.isIgnoringBatteryOptimizations
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.data.work.CacheWorker import com.aurora.store.data.work.CacheWorker
@@ -174,10 +175,12 @@ class OnboardingFragment : BaseFragment<FragmentOnboardingBinding>() {
} }
private fun setupAutoUpdates() { private fun setupAutoUpdates() {
save( val updateMode = when {
PREFERENCE_UPDATES_AUTO, requireContext().isIgnoringBatteryOptimizations() -> 2 // Auto-update
if (requireContext().isIgnoringBatteryOptimizations()) 2 else 1 requireContext().areNotificationsEnabled() -> 1 // Notify update
) else -> 0 // Disable
}
save(PREFERENCE_UPDATES_AUTO, updateMode)
UpdateWorker.scheduleAutomatedCheck(requireContext()) UpdateWorker.scheduleAutomatedCheck(requireContext())
} }
} }