码桶
发现社区成员的开源项目
ThemeManager.kt1 KB
package com.dalao.forum
import android.content.Context
enum class AppTheme(val prefValue: String, val styleRes: Int) {
DARK_GOLD("dark_gold", R.style.Theme_DomainForum_DarkGold),
LIGHT_BLUE("light_blue", R.style.Theme_DomainForum_LightBlue),
ANIME_PINK("anime_pink", R.style.Theme_DomainForum_AnimePink);
companion object {
fun fromPref(value: String?): AppTheme =
values().find { it.prefValue == value } ?: DARK_GOLD
}
}
object ThemeManager {
private const val PREFS_NAME = "forum_prefs"
private const val KEY_THEME = "selected_theme"
fun getSavedTheme(context: Context): AppTheme {
val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
return AppTheme.fromPref(prefs.getString(KEY_THEME, AppTheme.DARK_GOLD.prefValue))
}
fun saveTheme(context: Context, theme: AppTheme) {
context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
.edit()
.putString(KEY_THEME, theme.prefValue)
.apply()
}
}