码桶

发现社区成员的开源项目

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()
    }
}