Я унаследовал тему "Theme.AppCompat.DayNight", чтобы автоматически поддерживать темный режим на Android Q и вручную на предыдущих версиях. В разделе «Настройки» я позволяю пользователю выбрать «Вкл.», «Выкл.» Или «Автоматически» c, а затем я использую этот код:
AppCompatDelegate.setDefaultNightMode(settings.darkMode())
Где settings.darkMode :
val darkValue =
sharedPreferences.getString("PREF_DARK_THEME", null)
return when (darkValue) {
"ON" -> MODE_NIGHT_YES
"OFF" -> MODE_NIGHT_NO
else -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
MODE_NIGHT_FOLLOW_SYSTEM
} else {
MODE_NIGHT_AUTO_BATTERY
}
}
Однако я бы хотел добавить поддержку пользовательского интерфейса Samsung One " Ночной режим ". Можно ли прочитать эту настройку системы? Я хотел бы сделать что-то вроде этого:
...
else -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
MODE_NIGHT_FOLLOW_SYSTEM
} else if("samsung"==Build.MANUFACTURER && isSamsungNightModeEnabled()) {
MODE_NIGHT_YES
} else ...[add other brands]...
} else {
MODE_NIGHT_AUTO_BATTERY
}