diff --git a/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt b/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt index f1f2b64c2d..6e788a8230 100644 --- a/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt +++ b/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt @@ -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?) { diff --git a/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt b/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt index 5f57177b87..8a08eb289b 100644 --- a/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt +++ b/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt @@ -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) diff --git a/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt b/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt index e88072f403..4d8aa3a085 100644 --- a/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt +++ b/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt @@ -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", diff --git a/lawnchair/src/app/lawnchair/preferences2/SharedPreferencesMigration.kt b/lawnchair/src/app/lawnchair/preferences2/SharedPreferencesMigration.kt index 471ad0807f..910ccd9bc0 100644 --- a/lawnchair/src/app/lawnchair/preferences2/SharedPreferencesMigration.kt +++ b/lawnchair/src/app/lawnchair/preferences2/SharedPreferencesMigration.kt @@ -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( diff --git a/lawnchair/src/app/lawnchair/ui/preferences/AppDrawerPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/AppDrawerPreferences.kt index 2e868e45b3..5e13ef6bf7 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/AppDrawerPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/AppDrawerPreferences.kt @@ -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 + 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 + 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() ) {