From 5635846e0d220ff08d836cf074fc25ada1bd8a50 Mon Sep 17 00:00:00 2001 From: Chaikew <68963282+Chaikew@users.noreply.github.com> Date: Thu, 9 Oct 2025 09:09:47 +0200 Subject: [PATCH] feat(ui): Add toggle to disable search bar background in app drawer (#5934) * feat(ui): Add toggle to disable search bar background in app drawer * Fix double opacity on the Search Bar's background - Before, the Search Bar added another -possibly transparent- layer on top of the already existing app drawer background. - This adds a toggle to disable the double-opacity - It is made so it is non regressive Fixes #4158 * style(strings): Fixed inconsistency --- lawnchair/res/values/config.xml | 1 + lawnchair/res/values/strings.xml | 1 + .../app/lawnchair/preferences2/PreferenceManager2.kt | 6 ++++++ .../preferences/destinations/AppDrawerPreferences.kt | 4 ++++ .../allapps/ActivityAllAppsContainerView.java | 10 +++++++++- 5 files changed, 21 insertions(+), 1 deletion(-) diff --git a/lawnchair/res/values/config.xml b/lawnchair/res/values/config.xml index ad744e4acb..a5ab4bc714 100644 --- a/lawnchair/res/values/config.xml +++ b/lawnchair/res/values/config.xml @@ -119,6 +119,7 @@ true false false + true true true false diff --git a/lawnchair/res/values/strings.xml b/lawnchair/res/values/strings.xml index d4a6edb637..b689651a7c 100644 --- a/lawnchair/res/values/strings.xml +++ b/lawnchair/res/values/strings.xml @@ -108,6 +108,7 @@ Wallpaper Style Background opacity + Separated Search bar background Copied to clipboard diff --git a/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt b/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt index f6d2688fe1..c4d62044db 100644 --- a/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt +++ b/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt @@ -169,6 +169,12 @@ class PreferenceManager2 private constructor(private val context: Context) : defaultValue = ColorOption.fromString(context.getString(R.string.config_default_app_drawer_bg_color)), ) + val appDrawerSearchBarBackground = preference( + key = booleanPreferencesKey(name = "all_apps_search_bar_background"), + defaultValue = context.resources.getBoolean(R.bool.config_default_search_bar_background), + onSet = { reloadHelper.recreate() }, + ) + val notificationDotColor = preference( key = stringPreferencesKey(name = "notification_dot_color"), parse = ColorOption::fromString, diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerPreferences.kt index 6215ffe10d..eb03df438a 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerPreferences.kt @@ -97,6 +97,10 @@ fun AppDrawerPreferences( valueRange = 0F..1F, showAsPercentage = true, ) + SwitchPreference( + label = stringResource(id = R.string.pref_all_apps_search_bar_background), + adapter = prefs2.appDrawerSearchBarBackground.getAdapter(), + ) } PreferenceGroup(heading = stringResource(id = R.string.grid)) { SliderPreference( diff --git a/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java b/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java index 751ac7fd1d..22269277e2 100644 --- a/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java @@ -831,7 +831,15 @@ public class ActivityAllAppsContainerView } protected int getHeaderColor(float blendRatio) { - var opacity = pref.getDrawerOpacity().get(); + var showHeaderBackground = PreferenceExtensionsKt.firstBlocking( + pref2.getAppDrawerSearchBarBackground()); + + var opacity = 0.0f; + + if (showHeaderBackground) { + opacity = pref.getDrawerOpacity().get(); + } + var colorOptions = PreferenceExtensionsKt.firstBlocking(pref2.getAppDrawerBackgroundColor()); var color = colorOptions.getColorPreferenceEntry().getLightColor().invoke(mContext); if (color != 0) {