VancedManager/app/src/main/java/com/vanced/manager/utils/ThemeHelper.kt

48 lines
1.7 KiB
Kotlin

package com.vanced.manager.utils
import android.app.Activity
import android.content.res.Configuration
import com.vanced.manager.R
import com.vanced.manager.utils.Extensions.getDefaultPrefs
object ThemeHelper {
fun Activity.setFinalTheme() {
val prefs = getDefaultPrefs()
val currentAccent = prefs.getString("manager_accent", "Blue")
when (prefs.getString("manager_theme", "System Default")) {
"Light" -> setTheme(getLightAccent(currentAccent))
"Dark" -> setTheme(getDarkAccent(currentAccent))
"System Default" -> {
when (resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK) {
Configuration.UI_MODE_NIGHT_YES -> setTheme(getDarkAccent(currentAccent))
Configuration.UI_MODE_NIGHT_NO -> setTheme(getLightAccent(currentAccent))
}
}
else -> setTheme(getLightAccent("Blue"))
}
}
private fun getDarkAccent(accentColor: String?): Int {
return when (accentColor) {
"Blue" -> R.style.DarkTheme_Blue
"Red" -> R.style.DarkTheme_Red
"Green" -> R.style.DarkTheme_Green
"Yellow" -> R.style.DarkTheme_Yellow
"Purple" -> R.style.DarkTheme_Purple
else -> R.style.DarkTheme_Blue
}
}
private fun getLightAccent(accentColor: String?): Int {
return when (accentColor) {
"Blue" -> R.style.LightTheme_Blue
"Red" -> R.style.LightTheme_Red
"Green" -> R.style.LightTheme_Green
"Yellow" -> R.style.LightTheme_Yellow
"Purple" -> R.style.LightTheme_Purple
else -> R.style.LightTheme_Blue
}
}
}