Разделил обои на наборы для темной и светлой темы
This commit is contained in:
@@ -281,6 +281,7 @@ fun ThemeScreen(
|
|||||||
WallpaperSelectorRow(
|
WallpaperSelectorRow(
|
||||||
isDarkTheme = isDarkTheme,
|
isDarkTheme = isDarkTheme,
|
||||||
selectedWallpaperId = wallpaperId,
|
selectedWallpaperId = wallpaperId,
|
||||||
|
wallpapers = ThemeWallpapers.forTheme(isDarkTheme),
|
||||||
textColor = textColor,
|
textColor = textColor,
|
||||||
secondaryTextColor = secondaryTextColor,
|
secondaryTextColor = secondaryTextColor,
|
||||||
onWallpaperSelected = { selectedId ->
|
onWallpaperSelected = { selectedId ->
|
||||||
@@ -292,7 +293,12 @@ fun ThemeScreen(
|
|||||||
)
|
)
|
||||||
|
|
||||||
TelegramInfoText(
|
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
|
secondaryTextColor = secondaryTextColor
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -454,6 +460,7 @@ private fun TelegramInfoText(text: String, secondaryTextColor: Color) {
|
|||||||
private fun WallpaperSelectorRow(
|
private fun WallpaperSelectorRow(
|
||||||
isDarkTheme: Boolean,
|
isDarkTheme: Boolean,
|
||||||
selectedWallpaperId: String,
|
selectedWallpaperId: String,
|
||||||
|
wallpapers: List<ThemeWallpaper>,
|
||||||
textColor: Color,
|
textColor: Color,
|
||||||
secondaryTextColor: Color,
|
secondaryTextColor: Color,
|
||||||
onWallpaperSelected: (String) -> Unit
|
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(
|
WallpaperSelectorItem(
|
||||||
title = wallpaper.name,
|
title = wallpaper.name,
|
||||||
wallpaperResId = wallpaper.drawableRes,
|
wallpaperResId = wallpaper.drawableRes,
|
||||||
|
|||||||
@@ -6,28 +6,94 @@ import com.rosetta.messenger.R
|
|||||||
data class ThemeWallpaper(
|
data class ThemeWallpaper(
|
||||||
val id: String,
|
val id: String,
|
||||||
val name: String,
|
val name: String,
|
||||||
|
val preferredTheme: WallpaperTheme,
|
||||||
@DrawableRes val drawableRes: Int
|
@DrawableRes val drawableRes: Int
|
||||||
)
|
)
|
||||||
|
|
||||||
|
enum class WallpaperTheme {
|
||||||
|
DARK,
|
||||||
|
LIGHT
|
||||||
|
}
|
||||||
|
|
||||||
object ThemeWallpapers {
|
object ThemeWallpapers {
|
||||||
// Desktop parity: keep the same order/mapping as desktop WALLPAPERS.
|
// Desktop parity: keep the same order/mapping as desktop WALLPAPERS.
|
||||||
val all: List<ThemeWallpaper> =
|
val all: List<ThemeWallpaper> =
|
||||||
listOf(
|
listOf(
|
||||||
ThemeWallpaper(id = "back_3", name = "Wallpaper 1", drawableRes = R.drawable.wallpaper_back_3),
|
ThemeWallpaper(
|
||||||
ThemeWallpaper(id = "back_4", name = "Wallpaper 2", drawableRes = R.drawable.wallpaper_back_4),
|
id = "back_3",
|
||||||
ThemeWallpaper(id = "back_5", name = "Wallpaper 3", drawableRes = R.drawable.wallpaper_back_5),
|
name = "Wallpaper 1",
|
||||||
ThemeWallpaper(id = "back_6", name = "Wallpaper 4", drawableRes = R.drawable.wallpaper_back_6),
|
preferredTheme = WallpaperTheme.DARK,
|
||||||
ThemeWallpaper(id = "back_7", name = "Wallpaper 5", drawableRes = R.drawable.wallpaper_back_7),
|
drawableRes = R.drawable.wallpaper_back_3
|
||||||
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(
|
||||||
ThemeWallpaper(id = "back_10", name = "Wallpaper 8", drawableRes = R.drawable.wallpaper_back_10),
|
id = "back_4",
|
||||||
ThemeWallpaper(id = "back_11", name = "Wallpaper 9", drawableRes = R.drawable.wallpaper_back_11),
|
name = "Wallpaper 2",
|
||||||
ThemeWallpaper(id = "back_1", name = "Wallpaper 10", drawableRes = R.drawable.wallpaper_back_1),
|
preferredTheme = WallpaperTheme.LIGHT,
|
||||||
ThemeWallpaper(id = "back_2", name = "Wallpaper 11", drawableRes = R.drawable.wallpaper_back_2)
|
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 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
|
@DrawableRes
|
||||||
fun drawableResOrNull(id: String): Int? = findById(id)?.drawableRes
|
fun drawableResOrNull(id: String): Int? = findById(id)?.drawableRes
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user