2022-09-25 16:07:06 +02:00
|
|
|
package eu.kanade.domain.ui
|
|
|
|
|
2023-11-05 00:36:25 +01:00
|
|
|
import android.os.Build
|
2022-09-25 16:07:06 +02:00
|
|
|
import eu.kanade.domain.ui.model.AppTheme
|
|
|
|
import eu.kanade.domain.ui.model.TabletUiMode
|
|
|
|
import eu.kanade.domain.ui.model.ThemeMode
|
|
|
|
import eu.kanade.tachiyomi.util.system.DeviceUtil
|
|
|
|
import eu.kanade.tachiyomi.util.system.isDynamicColorAvailable
|
2023-01-28 04:31:12 +01:00
|
|
|
import tachiyomi.core.preference.PreferenceStore
|
|
|
|
import tachiyomi.core.preference.getEnum
|
2022-09-25 16:07:06 +02:00
|
|
|
import java.text.DateFormat
|
|
|
|
import java.text.SimpleDateFormat
|
|
|
|
import java.util.Locale
|
|
|
|
|
|
|
|
class UiPreferences(
|
|
|
|
private val preferenceStore: PreferenceStore,
|
|
|
|
) {
|
|
|
|
|
2023-11-05 00:36:25 +01:00
|
|
|
fun themeMode() = preferenceStore.getEnum(
|
|
|
|
"pref_theme_mode_key",
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { ThemeMode.SYSTEM } else { ThemeMode.LIGHT },
|
|
|
|
)
|
2022-09-25 16:07:06 +02:00
|
|
|
|
|
|
|
fun appTheme() = preferenceStore.getEnum(
|
|
|
|
"pref_app_theme",
|
|
|
|
if (DeviceUtil.isDynamicColorAvailable) { AppTheme.MONET } else { AppTheme.DEFAULT },
|
|
|
|
)
|
|
|
|
|
|
|
|
fun themeDarkAmoled() = preferenceStore.getBoolean("pref_theme_dark_amoled_key", false)
|
|
|
|
|
2023-09-24 23:01:26 +02:00
|
|
|
fun relativeTime() = preferenceStore.getBoolean("relative_time_v2", true)
|
|
|
|
|
2022-09-25 16:07:06 +02:00
|
|
|
fun dateFormat() = preferenceStore.getString("app_date_format", "")
|
|
|
|
|
|
|
|
fun tabletUiMode() = preferenceStore.getEnum("tablet_ui_mode", TabletUiMode.AUTOMATIC)
|
|
|
|
|
|
|
|
companion object {
|
|
|
|
fun dateFormat(format: String): DateFormat = when (format) {
|
|
|
|
"" -> DateFormat.getDateInstance(DateFormat.SHORT)
|
|
|
|
else -> SimpleDateFormat(format, Locale.getDefault())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|