From 09df7586e741c9a37ac1d78b6e47659be5a588d4 Mon Sep 17 00:00:00 2001 From: k1ngsterr1 Date: Thu, 19 Mar 2026 16:28:18 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D0=B1=D0=BE=D0=B8=20=D0=BD=D0=B0=20=D0=BD=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=80=D1=8B=20=D0=B4=D0=BB=D1=8F=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BC=D0=BD=D0=BE=D0=B9=20=D0=B8=20=D1=81=D0=B2=D0=B5=D1=82?= =?UTF-8?q?=D0=BB=D0=BE=D0=B9=20=D1=82=D0=B5=D0=BC=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../messenger/ui/settings/ThemeScreen.kt | 11 ++- .../messenger/ui/settings/ThemeWallpapers.kt | 88 ++++++++++++++++--- 2 files changed, 86 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/rosetta/messenger/ui/settings/ThemeScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/settings/ThemeScreen.kt index b9608d1..7305279 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/settings/ThemeScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/settings/ThemeScreen.kt @@ -281,6 +281,7 @@ fun ThemeScreen( WallpaperSelectorRow( isDarkTheme = isDarkTheme, selectedWallpaperId = wallpaperId, + wallpapers = ThemeWallpapers.forTheme(isDarkTheme), textColor = textColor, secondaryTextColor = secondaryTextColor, onWallpaperSelected = { selectedId -> @@ -292,7 +293,12 @@ fun ThemeScreen( ) TelegramInfoText( - text = "Selected wallpaper is used for chat backgrounds.", + text = + if (isDarkTheme) { + "Showing wallpapers for dark theme. Switch to light mode to choose light wallpapers." + } else { + "Showing wallpapers for light theme. Switch to dark mode to choose dark wallpapers." + }, secondaryTextColor = secondaryTextColor ) @@ -454,6 +460,7 @@ private fun TelegramInfoText(text: String, secondaryTextColor: Color) { private fun WallpaperSelectorRow( isDarkTheme: Boolean, selectedWallpaperId: String, + wallpapers: List, textColor: Color, secondaryTextColor: Color, onWallpaperSelected: (String) -> Unit @@ -475,7 +482,7 @@ private fun WallpaperSelectorRow( ) } - items(items = ThemeWallpapers.all, key = { it.id }) { wallpaper -> + items(items = wallpapers, key = { it.id }) { wallpaper -> WallpaperSelectorItem( title = wallpaper.name, wallpaperResId = wallpaper.drawableRes, diff --git a/app/src/main/java/com/rosetta/messenger/ui/settings/ThemeWallpapers.kt b/app/src/main/java/com/rosetta/messenger/ui/settings/ThemeWallpapers.kt index 7aa5668..fe3cf59 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/settings/ThemeWallpapers.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/settings/ThemeWallpapers.kt @@ -6,28 +6,94 @@ import com.rosetta.messenger.R data class ThemeWallpaper( val id: String, val name: String, + val preferredTheme: WallpaperTheme, @DrawableRes val drawableRes: Int ) +enum class WallpaperTheme { + DARK, + LIGHT +} + object ThemeWallpapers { // Desktop parity: keep the same order/mapping as desktop WALLPAPERS. val all: List = listOf( - ThemeWallpaper(id = "back_3", name = "Wallpaper 1", drawableRes = R.drawable.wallpaper_back_3), - ThemeWallpaper(id = "back_4", name = "Wallpaper 2", drawableRes = R.drawable.wallpaper_back_4), - ThemeWallpaper(id = "back_5", name = "Wallpaper 3", drawableRes = R.drawable.wallpaper_back_5), - ThemeWallpaper(id = "back_6", name = "Wallpaper 4", drawableRes = R.drawable.wallpaper_back_6), - ThemeWallpaper(id = "back_7", name = "Wallpaper 5", drawableRes = R.drawable.wallpaper_back_7), - ThemeWallpaper(id = "back_8", name = "Wallpaper 6", drawableRes = R.drawable.wallpaper_back_8), - ThemeWallpaper(id = "back_9", name = "Wallpaper 7", drawableRes = R.drawable.wallpaper_back_9), - ThemeWallpaper(id = "back_10", name = "Wallpaper 8", drawableRes = R.drawable.wallpaper_back_10), - ThemeWallpaper(id = "back_11", name = "Wallpaper 9", drawableRes = R.drawable.wallpaper_back_11), - ThemeWallpaper(id = "back_1", name = "Wallpaper 10", drawableRes = R.drawable.wallpaper_back_1), - ThemeWallpaper(id = "back_2", name = "Wallpaper 11", drawableRes = R.drawable.wallpaper_back_2) + ThemeWallpaper( + id = "back_3", + name = "Wallpaper 1", + preferredTheme = WallpaperTheme.DARK, + drawableRes = R.drawable.wallpaper_back_3 + ), + ThemeWallpaper( + id = "back_4", + name = "Wallpaper 2", + preferredTheme = WallpaperTheme.LIGHT, + drawableRes = R.drawable.wallpaper_back_4 + ), + ThemeWallpaper( + id = "back_5", + name = "Wallpaper 3", + preferredTheme = WallpaperTheme.DARK, + drawableRes = R.drawable.wallpaper_back_5 + ), + ThemeWallpaper( + id = "back_6", + name = "Wallpaper 4", + preferredTheme = WallpaperTheme.LIGHT, + drawableRes = R.drawable.wallpaper_back_6 + ), + ThemeWallpaper( + id = "back_7", + name = "Wallpaper 5", + preferredTheme = WallpaperTheme.LIGHT, + drawableRes = R.drawable.wallpaper_back_7 + ), + ThemeWallpaper( + id = "back_8", + name = "Wallpaper 6", + preferredTheme = WallpaperTheme.LIGHT, + drawableRes = R.drawable.wallpaper_back_8 + ), + ThemeWallpaper( + id = "back_9", + name = "Wallpaper 7", + preferredTheme = WallpaperTheme.LIGHT, + drawableRes = R.drawable.wallpaper_back_9 + ), + ThemeWallpaper( + id = "back_10", + name = "Wallpaper 8", + preferredTheme = WallpaperTheme.LIGHT, + drawableRes = R.drawable.wallpaper_back_10 + ), + ThemeWallpaper( + id = "back_11", + name = "Wallpaper 9", + preferredTheme = WallpaperTheme.DARK, + drawableRes = R.drawable.wallpaper_back_11 + ), + ThemeWallpaper( + id = "back_1", + name = "Wallpaper 10", + preferredTheme = WallpaperTheme.LIGHT, + drawableRes = R.drawable.wallpaper_back_1 + ), + ThemeWallpaper( + id = "back_2", + name = "Wallpaper 11", + preferredTheme = WallpaperTheme.DARK, + drawableRes = R.drawable.wallpaper_back_2 + ) ) fun findById(id: String): ThemeWallpaper? = all.firstOrNull { it.id == id } + fun forTheme(isDarkTheme: Boolean): List { + val targetTheme = if (isDarkTheme) WallpaperTheme.DARK else WallpaperTheme.LIGHT + return all.filter { it.preferredTheme == targetTheme } + } + @DrawableRes fun drawableResOrNull(id: String): Int? = findById(id)?.drawableRes }