From fcef4a6d3effcddac6dd66bbb460cdb9b514ca2a Mon Sep 17 00:00:00 2001 From: MrSluffy Date: Sun, 18 Aug 2024 13:29:55 +0800 Subject: [PATCH] Add option folder background opacity - Closes : #4522 --- lawnchair/res/values/config.xml | 1 + lawnchair/res/values/strings.xml | 3 ++- .../src/app/lawnchair/preferences2/PreferenceManager2.kt | 6 ++++++ .../ui/preferences/destinations/FolderPreferences.kt | 7 +++++++ lawnchair/src/app/lawnchair/util/LawnchairUtils.kt | 5 +++++ src/com/android/launcher3/folder/Folder.java | 3 +++ 6 files changed, 24 insertions(+), 1 deletion(-) diff --git a/lawnchair/res/values/config.xml b/lawnchair/res/values/config.xml index 282745c33d..35b15eab75 100644 --- a/lawnchair/res/values/config.xml +++ b/lawnchair/res/values/config.xml @@ -128,6 +128,7 @@ 1.0 1.0 + 1.0 1.0 1.0 1.0 diff --git a/lawnchair/res/values/strings.xml b/lawnchair/res/values/strings.xml index 4f63fc63d3..5ff4ba571c 100644 --- a/lawnchair/res/values/strings.xml +++ b/lawnchair/res/values/strings.xml @@ -597,7 +597,8 @@ - Icon background opacity + Icon preview background opacity + Folder background opacity Icon background color Maximum folder columns diff --git a/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt b/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt index 550220fa8c..b7a687543f 100644 --- a/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt +++ b/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt @@ -341,6 +341,12 @@ class PreferenceManager2 private constructor(private val context: Context) : Pre onSet = { reloadHelper.reloadIcons() }, ) + val folderBackgroundOpacity = preference( + key = floatPreferencesKey(name = "folder_background_opacity"), + defaultValue = resourceProvider.getFloat(R.dimen.config_default_folder_background_opacity), + onSet = { reloadHelper.reloadIcons() }, + ) + val showIconLabelsOnHomeScreen = preference( key = booleanPreferencesKey(name = "show_icon_labels_on_home_screen"), defaultValue = context.resources.getBoolean(R.bool.config_default_show_icon_labels_on_home_screen), diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/FolderPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/FolderPreferences.kt index 061c200b3e..ce0428a985 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/FolderPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/FolderPreferences.kt @@ -51,6 +51,13 @@ fun FolderPreferences( valueRange = 0F..1F, showAsPercentage = true, ) + SliderPreference( + label = stringResource(id = R.string.folder_bg_opacity_label), + adapter = prefs2.folderBackgroundOpacity.getAdapter(), + step = 0.1F, + valueRange = 0F..1F, + showAsPercentage = true, + ) } PreferenceGroup(heading = stringResource(id = R.string.grid)) { SliderPreference( diff --git a/lawnchair/src/app/lawnchair/util/LawnchairUtils.kt b/lawnchair/src/app/lawnchair/util/LawnchairUtils.kt index 26cf5bd2b5..2839a1ed4d 100644 --- a/lawnchair/src/app/lawnchair/util/LawnchairUtils.kt +++ b/lawnchair/src/app/lawnchair/util/LawnchairUtils.kt @@ -169,6 +169,11 @@ fun getFolderPreviewAlpha(context: Context): Int { return (prefs2.folderPreviewBackgroundOpacity.firstBlocking() * 255).toInt() } +fun getFolderBackgroundAlpha(context: Context): Int { + val prefs2 = PreferenceManager2.getInstance(context) + return (prefs2.folderBackgroundOpacity.firstBlocking() * 255).toInt() +} + fun getAllAppsScrimColor(context: Context): Int { val opacity = PreferenceManager.getInstance(context).drawerOpacity.get() val scrimColor = ColorTokens.AllAppsScrimColor.resolveColor(context) diff --git a/src/com/android/launcher3/folder/Folder.java b/src/com/android/launcher3/folder/Folder.java index f004dc9f3a..9ee1c3b265 100644 --- a/src/com/android/launcher3/folder/Folder.java +++ b/src/com/android/launcher3/folder/Folder.java @@ -119,6 +119,7 @@ import java.util.stream.Stream; import app.lawnchair.theme.drawable.DrawableTokens; import app.lawnchair.util.EditTextExtensions; +import app.lawnchair.util.LawnchairUtilsKt; /** * Represents a set of icons chosen by the user or generated by the system. @@ -286,6 +287,8 @@ public class Folder extends AbstractFloatingView implements ClipPathView, DragSo final int paddingLeftRight = dp.folderContentPaddingLeftRight; mBackground = DrawableTokens.RoundRectFolder.resolve(getContext()); + var alpha = LawnchairUtilsKt.getFolderBackgroundAlpha(getContext()); + mBackground.setAlpha(alpha); mContent = findViewById(R.id.folder_content); mContent.setPadding(paddingLeftRight, dp.folderContentPaddingTop, paddingLeftRight, 0);