Reset search filters when query is cleared

This commit is contained in:
MM20
2024-04-21 20:30:55 +02:00
parent eda57aea2b
commit ee83b87f39
12 changed files with 91 additions and 55 deletions
@@ -2,6 +2,7 @@ package de.mm20.launcher2.preferences
import android.content.Context
import de.mm20.launcher2.preferences.search.LocationSearchSettings
import de.mm20.launcher2.search.SearchFilters
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@@ -144,6 +145,23 @@ data class LauncherSettingsData internal constructor(
val locationSearchShowPositionOnMap: Boolean = false,
val locationSearchThemeMap: Boolean = true,
val searchFilter: SearchFilters = SearchFilters(),
val searchFilterBar: Boolean = true,
val searchFilterBarItems: List<KeyboardFilterBarItem> = listOf(
KeyboardFilterBarItem.OnlineResults,
KeyboardFilterBarItem.Apps,
KeyboardFilterBarItem.Shortcuts,
KeyboardFilterBarItem.Events,
KeyboardFilterBarItem.Contacts,
KeyboardFilterBarItem.Files,
KeyboardFilterBarItem.Places,
KeyboardFilterBarItem.Articles,
KeyboardFilterBarItem.Websites,
KeyboardFilterBarItem.Places,
KeyboardFilterBarItem.Tools,
KeyboardFilterBarItem.HiddenResults,
),
) {
constructor(
@@ -376,4 +394,19 @@ data class LatLon(
data class ProviderSettings(
val locationId: String? = null,
val locationName: String? = null,
)
)
@Serializable
enum class KeyboardFilterBarItem {
@SerialName("online") OnlineResults,
@SerialName("apps") Apps,
@SerialName("websites") Websites,
@SerialName("articles") Articles,
@SerialName("places") Places,
@SerialName("files") Files,
@SerialName("shortcuts") Shortcuts,
@SerialName("contacts") Contacts,
@SerialName("events") Events,
@SerialName("tools") Tools,
@SerialName("hidden") HiddenResults,
}
@@ -9,6 +9,7 @@ import de.mm20.launcher2.preferences.search.FavoritesSettings
import de.mm20.launcher2.preferences.search.FileSearchSettings
import de.mm20.launcher2.preferences.search.LocationSearchSettings
import de.mm20.launcher2.preferences.search.RankingSettings
import de.mm20.launcher2.preferences.search.SearchFilterSettings
import de.mm20.launcher2.preferences.search.ShortcutSearchSettings
import de.mm20.launcher2.preferences.search.UnitConverterSettings
import de.mm20.launcher2.preferences.search.WebsiteSearchSettings
@@ -49,4 +50,5 @@ val preferencesModule = module {
factory { CalculatorSearchSettings(get()) }
factory { ClockWidgetSettings(get()) }
factory { LocationSearchSettings(get()) }
factory { SearchFilterSettings(get()) }
}
@@ -0,0 +1,11 @@
package de.mm20.launcher2.preferences.search
import de.mm20.launcher2.preferences.LauncherDataStore
import kotlinx.coroutines.flow.map
class SearchFilterSettings internal constructor(
private val launcherDataStore: LauncherDataStore,
) {
val defaultFilter
get() = launcherDataStore.data.map { it.searchFilter }
}