Разделил обои на наборы для темной и светлой темы

This commit is contained in:
2026-03-19 16:28:18 +05:00
parent 13b61cf720
commit 09df7586e7
2 changed files with 86 additions and 13 deletions

View File

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

View File

@@ -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<ThemeWallpaper> =
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<ThemeWallpaper> {
val targetTheme = if (isDarkTheme) WallpaperTheme.DARK else WallpaperTheme.LIGHT
return all.filter { it.preferredTheme == targetTheme }
}
@DrawableRes
fun drawableResOrNull(id: String): Int? = findById(id)?.drawableRes
}