feat: 添加深色模式支持,优化图片查看器滑动切换

This commit is contained in:
amos
2025-12-17 14:34:50 +08:00
parent 9b97810e8d
commit 149beb7c6d

View File

@@ -0,0 +1,36 @@
package com.memory.app.data
import android.content.Context
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
enum class ThemeMode {
LIGHT, DARK, SYSTEM
}
class ThemeManager(context: Context) {
private val prefs = context.getSharedPreferences("theme_prefs", Context.MODE_PRIVATE)
private val _themeMode = MutableStateFlow(loadThemeMode())
val themeMode: StateFlow<ThemeMode> = _themeMode.asStateFlow()
private fun loadThemeMode(): ThemeMode {
val value = prefs.getString("theme_mode", ThemeMode.LIGHT.name)
return try {
ThemeMode.valueOf(value ?: ThemeMode.LIGHT.name)
} catch (e: Exception) {
ThemeMode.LIGHT
}
}
fun setThemeMode(mode: ThemeMode) {
prefs.edit().putString("theme_mode", mode.name).apply()
_themeMode.value = mode
}
fun toggleTheme() {
val newMode = if (_themeMode.value == ThemeMode.DARK) ThemeMode.LIGHT else ThemeMode.DARK
setThemeMode(newMode)
}
}