Migrate “pref_hideAppSearchBar” to Preferences DataStore
This commit is contained in:
@@ -21,7 +21,9 @@ import androidx.core.view.isVisible
|
||||
import androidx.core.widget.addTextChangedListener
|
||||
import app.lawnchair.launcher
|
||||
import app.lawnchair.preferences.PreferenceManager
|
||||
import app.lawnchair.preferences2.PreferenceManager2
|
||||
import app.lawnchair.search.LawnchairSearchAlgorithm
|
||||
import app.lawnchair.util.viewAttachedScope
|
||||
import com.android.launcher3.Insettable
|
||||
import com.android.launcher3.LauncherState
|
||||
import com.android.launcher3.R
|
||||
@@ -29,6 +31,7 @@ import com.android.launcher3.allapps.*
|
||||
import com.android.launcher3.allapps.search.AllAppsSearchBarController
|
||||
import com.android.launcher3.search.SearchCallback
|
||||
import com.android.launcher3.util.Themes
|
||||
import com.patrykmichalik.preferencemanager.onEach
|
||||
import java.util.*
|
||||
import kotlin.math.max
|
||||
|
||||
@@ -94,8 +97,10 @@ class AllAppsSearchInput(context: Context, attrs: AttributeSet?) : LinearLayout(
|
||||
}
|
||||
)
|
||||
|
||||
val prefs = PreferenceManager.getInstance(context)
|
||||
isVisible = !prefs.hideAppSearchBar.get()
|
||||
val preferenceManager2 = PreferenceManager2.getInstance(context)
|
||||
preferenceManager2.hideAppDrawerSearchBar.onEach(launchIn = viewAttachedScope) { hideAppDrawerSearchBar ->
|
||||
isVisible = !hideAppDrawerSearchBar
|
||||
}
|
||||
}
|
||||
|
||||
override fun setFocusedResultTitle(title: CharSequence?) {
|
||||
|
||||
@@ -61,7 +61,6 @@ class PreferenceManager private constructor(private val context: Context) : Base
|
||||
val smartSpaceEnable = BoolPref("pref_smartSpaceEnable", true, restart)
|
||||
val minusOneEnable = BoolPref("pref_enableMinusOne", true, recreate)
|
||||
val useFuzzySearch = BoolPref("pref_useFuzzySearch", false)
|
||||
val hideAppSearchBar = BoolPref("pref_hideAppSearchBar", false, recreate)
|
||||
|
||||
// TODO: Add the ability to manually delete empty pages.
|
||||
val allowEmptyPages = BoolPref("pref_allowEmptyPages", false)
|
||||
|
||||
@@ -91,6 +91,11 @@ class PreferenceManager2(private val context: Context) : PreferenceManager {
|
||||
defaultValue = true,
|
||||
)
|
||||
|
||||
val hideAppDrawerSearchBar = preference(
|
||||
key = booleanPreferencesKey(name = "hide_app_drawer_search_bar"),
|
||||
defaultValue = false,
|
||||
)
|
||||
|
||||
companion object {
|
||||
private val Context.preferencesDataStore by preferencesDataStore(
|
||||
name = "preferences",
|
||||
|
||||
@@ -31,6 +31,7 @@ class SharedPreferencesMigration(private val context: Context) {
|
||||
"pref_iconShape" to "icon_shape", "pref_themedHotseatQsb" to "themed_hotseat_qsb",
|
||||
"pref_accentColor2" to "accent_color", "hidden-app-set" to "hidden_apps",
|
||||
"pref_showStatusBar" to "show_status_bar", "pref_showSysUiScrim" to "show_top_shadow",
|
||||
"pref_hideAppSearchBar" to "hide_app_drawer_search_bar",
|
||||
)
|
||||
|
||||
fun produceMigration() = androidx.datastore.migrations.SharedPreferencesMigration(
|
||||
|
||||
@@ -24,7 +24,6 @@ import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.navigation.NavGraphBuilder
|
||||
import app.lawnchair.preferences.getAdapter
|
||||
import app.lawnchair.preferences.not
|
||||
import app.lawnchair.preferences.preferenceManager
|
||||
import app.lawnchair.preferences2.PreferenceCollectorScope
|
||||
import app.lawnchair.preferences2.preferenceManager2
|
||||
@@ -47,15 +46,18 @@ fun NavGraphBuilder.appDrawerGraph(route: String) {
|
||||
|
||||
interface AppDrawerPreferenceCollectorScope : PreferenceCollectorScope {
|
||||
val hiddenApps: Set<String>
|
||||
val hideAppDrawerSearchBar: Boolean
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun AppDrawerPreferenceCollector(content: @Composable AppDrawerPreferenceCollectorScope.() -> Unit) {
|
||||
val preferenceManager = preferenceManager2()
|
||||
val hiddenApps by preferenceManager.hiddenApps.state()
|
||||
ifNotNull(hiddenApps) {
|
||||
val hideAppDrawerSearchBar by preferenceManager.hideAppDrawerSearchBar.state()
|
||||
ifNotNull(hiddenApps, hideAppDrawerSearchBar) {
|
||||
object : AppDrawerPreferenceCollectorScope {
|
||||
override val hiddenApps = it[0] as Set<String>
|
||||
override val hideAppDrawerSearchBar = it[1] as Boolean
|
||||
override val coroutineScope = rememberCoroutineScope()
|
||||
override val preferenceManager = preferenceManager
|
||||
}.content()
|
||||
@@ -85,14 +87,14 @@ fun AppDrawerPreferences() {
|
||||
SuggestionsPreference()
|
||||
}
|
||||
val deviceSearchEnabled = LawnchairSearchAlgorithm.isDeviceSearchEnabled(LocalContext.current)
|
||||
val showSearchBar = !prefs.hideAppSearchBar.getAdapter()
|
||||
PreferenceGroup(heading = stringResource(id = R.string.pref_category_search)) {
|
||||
SwitchPreference(
|
||||
SwitchPreference2(
|
||||
label = stringResource(id = R.string.show_app_search_bar),
|
||||
adapter = showSearchBar
|
||||
checked = !hideAppDrawerSearchBar,
|
||||
edit = { hideAppDrawerSearchBar.set(value = !it) },
|
||||
)
|
||||
AnimatedVisibility(
|
||||
visible = showSearchBar.state.value,
|
||||
visible = !hideAppDrawerSearchBar,
|
||||
enter = expandVertically() + fadeIn(),
|
||||
exit = shrinkVertically() + fadeOut()
|
||||
) {
|
||||
@@ -113,7 +115,7 @@ fun AppDrawerPreferences() {
|
||||
}
|
||||
if (deviceSearchEnabled) {
|
||||
AnimatedVisibility(
|
||||
visible = showSearchBar.state.value,
|
||||
visible = !hideAppDrawerSearchBar,
|
||||
enter = expandVertically() + fadeIn(),
|
||||
exit = shrinkVertically() + fadeOut()
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user