feat(appearance): manual toggle to force backdrop blur on lower device tiers

This commit is contained in:
zarzet
2026-07-27 01:39:16 +07:00
parent 9da3607932
commit ac56e76b62
20 changed files with 137 additions and 6 deletions
+8
View File
@@ -49,6 +49,11 @@ class AppSettings {
/// Shared-element (Hero) flights, e.g. the mini player artwork expanding
/// into the full player. Off skips the flights entirely.
final bool heroAnimationsEnabled;
/// Forces the shell's backdrop blur on even when the startup runtime
/// profile disabled it for this device tier. Off means "follow the
/// device default".
final bool forceBackdropBlur;
final String
extensionVerificationBrowserMode; // 'external_first' or 'in_app_first'
final String locale;
@@ -139,6 +144,7 @@ class AppSettings {
this.albumFolderStructure = 'artist_album',
this.showExtensionStore = true,
this.heroAnimationsEnabled = true,
this.forceBackdropBlur = false,
this.extensionVerificationBrowserMode = 'in_app_first',
this.locale = 'system',
this.lyricsMode = 'embed',
@@ -211,6 +217,7 @@ class AppSettings {
String? albumFolderStructure,
bool? showExtensionStore,
bool? heroAnimationsEnabled,
bool? forceBackdropBlur,
String? extensionVerificationBrowserMode,
String? locale,
String? lyricsMode,
@@ -293,6 +300,7 @@ class AppSettings {
showExtensionStore: showExtensionStore ?? this.showExtensionStore,
heroAnimationsEnabled:
heroAnimationsEnabled ?? this.heroAnimationsEnabled,
forceBackdropBlur: forceBackdropBlur ?? this.forceBackdropBlur,
extensionVerificationBrowserMode:
extensionVerificationBrowserMode ??
this.extensionVerificationBrowserMode,
+2
View File
@@ -50,6 +50,7 @@ AppSettings _$AppSettingsFromJson(Map<String, dynamic> json) => AppSettings(
json['albumFolderStructure'] as String? ?? 'artist_album',
showExtensionStore: json['showExtensionStore'] as bool? ?? true,
heroAnimationsEnabled: json['heroAnimationsEnabled'] as bool? ?? true,
forceBackdropBlur: json['forceBackdropBlur'] as bool? ?? false,
extensionVerificationBrowserMode:
json['extensionVerificationBrowserMode'] as String? ?? 'in_app_first',
locale: json['locale'] as String? ?? 'system',
@@ -133,6 +134,7 @@ Map<String, dynamic> _$AppSettingsToJson(
'albumFolderStructure': instance.albumFolderStructure,
'showExtensionStore': instance.showExtensionStore,
'heroAnimationsEnabled': instance.heroAnimationsEnabled,
'forceBackdropBlur': instance.forceBackdropBlur,
'extensionVerificationBrowserMode': instance.extensionVerificationBrowserMode,
'locale': instance.locale,
'lyricsMode': instance.lyricsMode,