feat: Add appearance customization screen with background blur options
- Introduced `BackgroundBlurOption` data class and `BackgroundBlurPresets` object for managing background blur options. - Created `AppearanceScreen` composable for selecting background colors and gradients, including a live preview of the selected option. - Updated `OtherProfileScreen` and `ProfileScreen` to accept and utilize `backgroundBlurColorId` for consistent background blur across profiles. - Enhanced `CollapsingOtherProfileHeader` and `CollapsingProfileHeader` to apply selected background blur options.
This commit is contained in:
@@ -42,6 +42,9 @@ class PreferencesManager(private val context: Context) {
|
||||
|
||||
// Language
|
||||
val APP_LANGUAGE = stringPreferencesKey("app_language") // "en", "ru", etc.
|
||||
|
||||
// Appearance / Customization
|
||||
val BACKGROUND_BLUR_COLOR_ID = stringPreferencesKey("background_blur_color_id") // id from BackgroundBlurPresets
|
||||
}
|
||||
|
||||
// ═════════════════════════════════════════════════════════════
|
||||
@@ -189,4 +192,17 @@ class PreferencesManager(private val context: Context) {
|
||||
suspend fun setAppLanguage(value: String) {
|
||||
context.dataStore.edit { preferences -> preferences[APP_LANGUAGE] = value }
|
||||
}
|
||||
|
||||
// ═════════════════════════════════════════════════════════════
|
||||
// 🎨 APPEARANCE / CUSTOMIZATION
|
||||
// ═════════════════════════════════════════════════════════════
|
||||
|
||||
val backgroundBlurColorId: Flow<String> =
|
||||
context.dataStore.data.map { preferences ->
|
||||
preferences[BACKGROUND_BLUR_COLOR_ID] ?: "avatar" // Default: use avatar blur
|
||||
}
|
||||
|
||||
suspend fun setBackgroundBlurColorId(value: String) {
|
||||
context.dataStore.edit { preferences -> preferences[BACKGROUND_BLUR_COLOR_ID] = value }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user