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:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user