Add option folder background opacity

- Closes : #4522
This commit is contained in:
MrSluffy
2024-08-18 13:29:55 +08:00
parent a8055385bb
commit fcef4a6d3e
6 changed files with 24 additions and 1 deletions

View File

@@ -128,6 +128,7 @@
<item name="config_default_home_icon_size_factor" type="dimen" format="float">1.0</item>
<item name="config_default_folder_preview_background_opacity" type="dimen" format="float">1.0</item>
<item name="config_default_folder_background_opacity" type="dimen" format="float">1.0</item>
<item name="config_default_drawer_icon_size_factor" type="dimen" format="float">1.0</item>
<item name="config_default_home_icon_label_size_factor" type="dimen" format="float">1.0</item>
<item name="config_default_home_icon_label_folder_size_factor" type="dimen" format="float">1.0</item>

View File

@@ -597,7 +597,8 @@
</plurals>
<!-- Folder settings -->
<string name="folder_preview_bg_opacity_label">Icon background opacity</string>
<string name="folder_preview_bg_opacity_label">Icon preview background opacity</string>
<string name="folder_bg_opacity_label">Folder background opacity</string>
<string name="folder_preview_bg_color_label">Icon background color</string>
<string name="max_folder_columns">Maximum folder columns</string>

View File

@@ -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),

View File

@@ -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(

View File

@@ -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)

View File

@@ -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);