FilterPreference: Drop persistant search filter setting

Filters should persist for a single search only to ensure users can view all available
apps when starting a new search

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-06-10 15:53:57 +05:30
parent df90a8d8ed
commit 1fc5f3b87b
53 changed files with 15 additions and 110 deletions

View File

@@ -22,6 +22,7 @@ package com.aurora.store.data.providers
import android.content.Context
import com.aurora.store.data.Filter
import com.aurora.store.util.Preferences
import com.aurora.store.util.remove
import com.google.gson.Gson
import dagger.hilt.android.qualifiers.ApplicationContext
import javax.inject.Inject
@@ -37,6 +38,11 @@ class FilterProvider @Inject constructor(
const val PREFERENCE_FILTER = "PREFERENCE_FILTER"
}
init {
// Clean any last saved filter
context.remove(PREFERENCE_FILTER)
}
fun getSavedFilter(): Filter {
val rawFilter = Preferences.getString(context, PREFERENCE_FILTER)
return gson.fromJson(rawFilter.ifEmpty { "{}" }, Filter::class.java)

View File

@@ -40,7 +40,6 @@ object Preferences {
const val PREFERENCE_FILTER_GOOGLE = "PREFERENCE_FILTER_GOOGLE"
const val PREFERENCE_FILTER_FDROID = "PREFERENCE_FILTER_FDROID"
const val PREFERENCE_FILTER_SEARCH = "PREFERENCE_FILTER_SEARCH"
const val PREFERENCE_FILTER_AURORA_ONLY = "PREFERENCE_FILTER_AURORA_ONLY"
const val PREFERENCE_AUTO_DELETE = "PREFERENCE_AUTO_DELETE"
@@ -71,6 +70,10 @@ object Preferences {
return prefs!!
}
fun remove(context: Context, key: String) {
getPrefs(context).edit().remove(key).apply()
}
fun putString(context: Context, key: String, value: String) {
getPrefs(context).edit().putString(key, value).apply()
}
@@ -130,6 +133,8 @@ fun Context.save(key: String, value: String) = Preferences.putString(this, key,
fun Context.save(key: String, value: Set<String>) = Preferences.putStringSet(this, key, value)
fun Context.remove(key: String) = Preferences.remove(this, key)
fun Fragment.save(key: String, value: Int) = requireContext().save(key, value)
@@ -138,3 +143,5 @@ fun Fragment.save(key: String, value: Boolean) = requireContext().save(key, valu
fun Fragment.save(key: String, value: String) = requireContext().save(key, value)
fun Fragment.save(key: String, value: Set<String>) = requireContext().save(key, value)
fun Fragment.remove(key: String) = requireContext().remove(key)

View File

@@ -44,7 +44,6 @@ import com.aurora.store.util.Preferences.PREFERENCE_DISPENSER_URLS
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_FILTER_SEARCH
import com.aurora.store.util.Preferences.PREFERENCE_FOR_YOU
import com.aurora.store.util.Preferences.PREFERENCE_INSECURE_ANONYMOUS
import com.aurora.store.util.Preferences.PREFERENCE_INSTALLER_ID
@@ -162,7 +161,6 @@ class OnboardingFragment : Fragment(R.layout.fragment_onboarding) {
save(PREFERENCE_FILTER_AURORA_ONLY, false)
save(PREFERENCE_FILTER_FDROID, true)
save(PREFERENCE_FILTER_GOOGLE, false)
save(PREFERENCE_FILTER_SEARCH, true)
/*Network*/
// TODO: Gather feedback and drop setting default dispenser for all builds

View File

@@ -122,11 +122,7 @@ class SearchResultsFragment : BaseFragment(R.layout.fragment_search_result),
}
override fun onDestroy() {
context?.let {
if (Preferences.getBoolean(it, Preferences.PREFERENCE_FILTER_SEARCH)) {
viewModel.filterProvider.saveFilter(Filter())
}
}
viewModel.filterProvider.saveFilter(Filter())
super.onDestroy()
}