From bc3e1b0d1ba4d3a254be8fd779ff25fb0af20a52 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 20 Nov 2024 11:39:29 +0700 Subject: [PATCH] FiltersPreference: Merge into UpdatesPreference They only apply to updates as we try to show all available apps in installed and blacklist fragment to be clear about all possible apps aurora store can check updates for. Signed-off-by: Aayush Gupta --- .../view/ui/preferences/FilterPreference.kt | 44 ------------------- .../view/ui/preferences/SettingsFragment.kt | 4 -- .../view/ui/preferences/UpdatesPreference.kt | 38 +++++++++++++++- .../main/res/navigation/mobile_navigation.xml | 5 --- app/src/main/res/values/strings.xml | 6 +-- app/src/main/res/xml/preferences_filter.xml | 43 ------------------ app/src/main/res/xml/preferences_settings.xml | 5 --- app/src/main/res/xml/preferences_updates.xml | 26 +++++++++++ 8 files changed, 65 insertions(+), 106 deletions(-) delete mode 100644 app/src/main/java/com/aurora/store/view/ui/preferences/FilterPreference.kt delete mode 100644 app/src/main/res/xml/preferences_filter.xml diff --git a/app/src/main/java/com/aurora/store/view/ui/preferences/FilterPreference.kt b/app/src/main/java/com/aurora/store/view/ui/preferences/FilterPreference.kt deleted file mode 100644 index 31c109004..000000000 --- a/app/src/main/java/com/aurora/store/view/ui/preferences/FilterPreference.kt +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Aurora Store - * Copyright (C) 2021, Rahul Kumar Patel - * - * Aurora Store is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * Aurora Store is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Aurora Store. If not, see . - * - */ - -package com.aurora.store.view.ui.preferences - -import android.os.Bundle -import android.view.View -import androidx.appcompat.widget.Toolbar -import androidx.navigation.fragment.findNavController -import androidx.preference.PreferenceFragmentCompat -import com.aurora.store.R -import dagger.hilt.android.AndroidEntryPoint - -@AndroidEntryPoint -class FilterPreference : PreferenceFragmentCompat() { - - override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { - setPreferencesFromResource(R.xml.preferences_filter, rootKey) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - view.findViewById(R.id.toolbar)?.apply { - title = getString(R.string.action_filter) - setNavigationOnClickListener { findNavController().navigateUp() } - } - } -} diff --git a/app/src/main/java/com/aurora/store/view/ui/preferences/SettingsFragment.kt b/app/src/main/java/com/aurora/store/view/ui/preferences/SettingsFragment.kt index 8e9e5aaa2..efd8b043e 100644 --- a/app/src/main/java/com/aurora/store/view/ui/preferences/SettingsFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/preferences/SettingsFragment.kt @@ -34,10 +34,6 @@ class SettingsFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.preferences_settings, rootKey) - findPreference("pref_filter")?.setOnPreferenceClickListener { - findNavController().navigate(R.id.filterPreference) - true - } findPreference("pref_install")?.setOnPreferenceClickListener { findNavController().navigate(R.id.installationPreference) true diff --git a/app/src/main/java/com/aurora/store/view/ui/preferences/UpdatesPreference.kt b/app/src/main/java/com/aurora/store/view/ui/preferences/UpdatesPreference.kt index 96e5f7f69..ca1bbb940 100644 --- a/app/src/main/java/com/aurora/store/view/ui/preferences/UpdatesPreference.kt +++ b/app/src/main/java/com/aurora/store/view/ui/preferences/UpdatesPreference.kt @@ -30,6 +30,10 @@ import com.aurora.store.R import com.aurora.store.data.helper.UpdateHelper import com.aurora.store.data.model.PermissionType import com.aurora.store.data.model.UpdateMode +import com.aurora.store.util.Preferences +import com.aurora.store.util.Preferences.PREFERENCE_FILTER_AURORA_ONLY +import com.aurora.store.util.Preferences.PREFERENCE_FILTER_FDROID +import com.aurora.store.util.Preferences.PREFERENCE_FILTER_GOOGLE 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 @@ -46,10 +50,19 @@ class UpdatesPreference : BasePreferenceFragment() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.preferences_updates, rootKey) + val nonAuroraFilters: List = listOfNotNull( + findPreference(PREFERENCE_FILTER_FDROID), + findPreference(PREFERENCE_FILTER_GOOGLE) + ) + findPreference(PREFERENCE_UPDATES_AUTO) ?.setOnPreferenceChangeListener { _, newValue -> + val updateCheckIntervalPref = + findPreference(PREFERENCE_UPDATES_CHECK_INTERVAL) + when (UpdateMode.entries[newValue.toString().toInt()]) { UpdateMode.DISABLED -> { + updateCheckIntervalPref?.isEnabled = false updateHelper.cancelAutomatedCheck() requireContext().save(PREFERENCE_UPDATES_AUTO, 0) true @@ -57,11 +70,13 @@ class UpdatesPreference : BasePreferenceFragment() { UpdateMode.CHECK_AND_NOTIFY -> { if (permissionProvider.isGranted(PermissionType.POST_NOTIFICATIONS)) { + updateCheckIntervalPref?.isEnabled = true updateHelper.scheduleAutomatedCheck() true } else { permissionProvider.request(PermissionType.POST_NOTIFICATIONS) { if (it) { + updateCheckIntervalPref?.isEnabled = true requireContext().save(PREFERENCE_UPDATES_AUTO, 1) updateHelper.scheduleAutomatedCheck() activity?.recreate() @@ -73,11 +88,13 @@ class UpdatesPreference : BasePreferenceFragment() { UpdateMode.CHECK_AND_INSTALL -> { if (permissionProvider.isGranted(PermissionType.DOZE_WHITELIST)) { + updateCheckIntervalPref?.isEnabled = true updateHelper.scheduleAutomatedCheck() true } else { permissionProvider.request(PermissionType.DOZE_WHITELIST) { if (it) { + updateCheckIntervalPref?.isEnabled = true requireContext().save(PREFERENCE_UPDATES_AUTO, 2) updateHelper.scheduleAutomatedCheck() activity?.recreate() @@ -91,11 +108,28 @@ class UpdatesPreference : BasePreferenceFragment() { } } - findPreference(PREFERENCE_UPDATES_CHECK_INTERVAL) - ?.setOnPreferenceChangeListener { _, _ -> + findPreference(PREFERENCE_UPDATES_CHECK_INTERVAL)?.apply { + isEnabled = Preferences.getInteger(requireContext(), PREFERENCE_UPDATES_AUTO) != 0 + setOnPreferenceChangeListener { _, _ -> updateHelper.updateAutomatedCheck() true } + } + + findPreference(PREFERENCE_FILTER_AURORA_ONLY) + ?.setOnPreferenceChangeListener { _, newValue -> + nonAuroraFilters.forEach { it.isEnabled = !newValue.toString().toBoolean() } + updateHelper.checkUpdatesNow() + true + } + + nonAuroraFilters.forEach { + it.isEnabled = !Preferences.getBoolean(requireContext(), PREFERENCE_FILTER_AURORA_ONLY) + it.setOnPreferenceChangeListener { _, _ -> + updateHelper.checkUpdatesNow() + true + } + } findPreference(PREFERENCE_UPDATES_EXTENDED) ?.setOnPreferenceChangeListener { _, _ -> diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index 7fa84d98f..249a94b0f 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -97,11 +97,6 @@ android:name="com.aurora.store.view.ui.preferences.SettingsFragment" android:label="@string/title_settings" tools:layout="@layout/fragment_setting" /> - "This setting will be applied after you restart the app" "Download using WiFi only" "Selected path is not writable" - "Ignore F-Droid apps from Updates and Installed apps" + "Don't check updates for apps downloaded or installed from F-Droid" "Filter F-Droid apps" - "Ignore Google apps from Updates and Installed apps" + "Don't check updates for Google apps" "Filter Google apps" Downloaded APKs will be deleted immediately after installation "Delete APK post-install" @@ -240,7 +240,7 @@ Incompatible updates Show updates for incompatible or disabled apps that may fail to install Aurora Store apps only - Show only Aurora Store installed apps in Updates and Installed apps + Only check updates for apps installed by Aurora Store "Download Failed" "App not purchased" "App not supported" diff --git a/app/src/main/res/xml/preferences_filter.xml b/app/src/main/res/xml/preferences_filter.xml deleted file mode 100644 index 1a9ef2ace..000000000 --- a/app/src/main/res/xml/preferences_filter.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/xml/preferences_settings.xml b/app/src/main/res/xml/preferences_settings.xml index 7b01c4e0a..2c17ab8fa 100644 --- a/app/src/main/res/xml/preferences_settings.xml +++ b/app/src/main/res/xml/preferences_settings.xml @@ -18,11 +18,6 @@ --> - + + + + + + + +