Split the rest of the preferences in PreferencesHelper (#8074)
* Split the reset of the preferences in PreferencesHelper * Capitalize ThemeMode
This commit is contained in:
@@ -9,7 +9,10 @@ import android.webkit.WebView
|
||||
import androidx.core.net.toUri
|
||||
import androidx.preference.PreferenceScreen
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.domain.manga.repository.MangaRepository
|
||||
import eu.kanade.domain.ui.UiPreferences
|
||||
import eu.kanade.domain.ui.model.TabletUiMode
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
||||
import eu.kanade.tachiyomi.data.library.LibraryUpdateService
|
||||
@@ -70,6 +73,8 @@ class SettingsAdvancedController(
|
||||
private val chapterCache: ChapterCache by injectLazy()
|
||||
private val trackManager: TrackManager by injectLazy()
|
||||
private val networkPreferences: NetworkPreferences by injectLazy()
|
||||
private val libraryPreferences: LibraryPreferences by injectLazy()
|
||||
private val uiPreferences: UiPreferences by injectLazy()
|
||||
|
||||
@SuppressLint("BatteryLife")
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply {
|
||||
@@ -156,7 +161,7 @@ class SettingsAdvancedController(
|
||||
onClick { clearChapterCache() }
|
||||
}
|
||||
switchPreference {
|
||||
bindTo(preferences.autoClearChapterCache())
|
||||
bindTo(libraryPreferences.autoClearChapterCache())
|
||||
titleRes = R.string.pref_auto_clear_chapter_cache
|
||||
}
|
||||
preference {
|
||||
@@ -327,11 +332,11 @@ class SettingsAdvancedController(
|
||||
titleRes = R.string.pref_category_display
|
||||
|
||||
listPreference {
|
||||
bindTo(preferences.tabletUiMode())
|
||||
bindTo(uiPreferences.tabletUiMode())
|
||||
titleRes = R.string.pref_tablet_ui_mode
|
||||
summary = "%s"
|
||||
entriesRes = PreferenceValues.TabletUiMode.values().map { it.titleResId }.toTypedArray()
|
||||
entryValues = PreferenceValues.TabletUiMode.values().map { it.name }.toTypedArray()
|
||||
entriesRes = TabletUiMode.values().map { it.titleResId }.toTypedArray()
|
||||
entryValues = TabletUiMode.values().map { it.name }.toTypedArray()
|
||||
|
||||
onChange {
|
||||
activity?.toast(R.string.requires_app_restart)
|
||||
|
||||
@@ -5,9 +5,11 @@ import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.preference.PreferenceScreen
|
||||
import eu.kanade.domain.ui.UiPreferences
|
||||
import eu.kanade.domain.ui.model.AppTheme
|
||||
import eu.kanade.domain.ui.model.ThemeMode
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.util.preference.bindTo
|
||||
import eu.kanade.tachiyomi.util.preference.defaultValue
|
||||
import eu.kanade.tachiyomi.util.preference.entriesRes
|
||||
import eu.kanade.tachiyomi.util.preference.initThenAdd
|
||||
import eu.kanade.tachiyomi.util.preference.intListPreference
|
||||
@@ -20,13 +22,13 @@ import eu.kanade.tachiyomi.util.system.DeviceUtil
|
||||
import eu.kanade.tachiyomi.util.system.isDynamicColorAvailable
|
||||
import eu.kanade.tachiyomi.util.system.isTablet
|
||||
import eu.kanade.tachiyomi.widget.preference.ThemesPreference
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
import java.util.Date
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceKeys as Keys
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceValues as Values
|
||||
|
||||
class SettingsAppearanceController : SettingsController() {
|
||||
|
||||
private var themesPreference: ThemesPreference? = null
|
||||
private val uiPreferences: UiPreferences by injectLazy()
|
||||
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply {
|
||||
titleRes = R.string.pref_category_appearance
|
||||
@@ -35,7 +37,7 @@ class SettingsAppearanceController : SettingsController() {
|
||||
titleRes = R.string.pref_category_theme
|
||||
|
||||
listPreference {
|
||||
bindTo(preferences.themeMode())
|
||||
bindTo(uiPreferences.themeMode())
|
||||
titleRes = R.string.pref_theme_mode
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
@@ -45,9 +47,9 @@ class SettingsAppearanceController : SettingsController() {
|
||||
R.string.theme_dark,
|
||||
)
|
||||
entryValues = arrayOf(
|
||||
Values.ThemeMode.system.name,
|
||||
Values.ThemeMode.light.name,
|
||||
Values.ThemeMode.dark.name,
|
||||
ThemeMode.SYSTEM.name,
|
||||
ThemeMode.LIGHT.name,
|
||||
ThemeMode.DARK.name,
|
||||
)
|
||||
} else {
|
||||
entriesRes = arrayOf(
|
||||
@@ -55,19 +57,19 @@ class SettingsAppearanceController : SettingsController() {
|
||||
R.string.theme_dark,
|
||||
)
|
||||
entryValues = arrayOf(
|
||||
Values.ThemeMode.light.name,
|
||||
Values.ThemeMode.dark.name,
|
||||
ThemeMode.LIGHT.name,
|
||||
ThemeMode.DARK.name,
|
||||
)
|
||||
}
|
||||
|
||||
summary = "%s"
|
||||
}
|
||||
themesPreference = initThenAdd(ThemesPreference(context)) {
|
||||
bindTo(preferences.appTheme())
|
||||
bindTo(uiPreferences.appTheme())
|
||||
titleRes = R.string.pref_app_theme
|
||||
|
||||
val appThemes = Values.AppTheme.values().filter {
|
||||
val monetFilter = if (it == Values.AppTheme.MONET) {
|
||||
val appThemes = AppTheme.values().filter {
|
||||
val monetFilter = if (it == AppTheme.MONET) {
|
||||
DeviceUtil.isDynamicColorAvailable
|
||||
} else {
|
||||
true
|
||||
@@ -82,10 +84,10 @@ class SettingsAppearanceController : SettingsController() {
|
||||
}
|
||||
}
|
||||
switchPreference {
|
||||
bindTo(preferences.themeDarkAmoled())
|
||||
bindTo(uiPreferences.themeDarkAmoled())
|
||||
titleRes = R.string.pref_dark_theme_pure_black
|
||||
|
||||
visibleIf(preferences.themeMode()) { it != Values.ThemeMode.light }
|
||||
visibleIf(uiPreferences.themeMode()) { it != ThemeMode.LIGHT }
|
||||
|
||||
onChange {
|
||||
activity?.let { ActivityCompat.recreate(it) }
|
||||
@@ -99,7 +101,7 @@ class SettingsAppearanceController : SettingsController() {
|
||||
titleRes = R.string.pref_category_navigation
|
||||
|
||||
intListPreference {
|
||||
bindTo(preferences.sideNavIconAlignment())
|
||||
bindTo(uiPreferences.sideNavIconAlignment())
|
||||
titleRes = R.string.pref_side_nav_icon_alignment
|
||||
entriesRes = arrayOf(
|
||||
R.string.alignment_top,
|
||||
@@ -116,7 +118,7 @@ class SettingsAppearanceController : SettingsController() {
|
||||
titleRes = R.string.pref_category_timestamps
|
||||
|
||||
intListPreference {
|
||||
bindTo(preferences.relativeTime())
|
||||
bindTo(uiPreferences.relativeTime())
|
||||
titleRes = R.string.pref_relative_format
|
||||
val values = arrayOf("0", "2", "7")
|
||||
entryValues = values
|
||||
@@ -131,13 +133,13 @@ class SettingsAppearanceController : SettingsController() {
|
||||
}
|
||||
|
||||
listPreference {
|
||||
key = Keys.dateFormat
|
||||
bindTo(uiPreferences.dateFormat())
|
||||
titleRes = R.string.pref_date_format
|
||||
entryValues = arrayOf("", "MM/dd/yy", "dd/MM/yy", "yyyy-MM-dd", "dd MMM yyyy", "MMM dd, yyyy")
|
||||
|
||||
val now = Date().time
|
||||
entries = entryValues.map { value ->
|
||||
val formattedDate = preferences.dateFormat(value.toString()).format(now)
|
||||
val formattedDate = UiPreferences.dateFormat(value.toString()).format(now)
|
||||
if (value == "") {
|
||||
"${context.getString(R.string.label_default)} ($formattedDate)"
|
||||
} else {
|
||||
@@ -145,7 +147,6 @@ class SettingsAppearanceController : SettingsController() {
|
||||
}
|
||||
}.toTypedArray()
|
||||
|
||||
defaultValue = ""
|
||||
summary = "%s"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,8 +19,8 @@ import androidx.preference.PreferenceScreen
|
||||
import com.bluelinelabs.conductor.ControllerChangeHandler
|
||||
import com.bluelinelabs.conductor.ControllerChangeType
|
||||
import dev.chrisbanes.insetter.applyInsetter
|
||||
import eu.kanade.domain.base.BasePreferences
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.util.preference.asHotFlow
|
||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@@ -33,7 +33,7 @@ import uy.kohesive.injekt.api.get
|
||||
abstract class SettingsController : PreferenceController() {
|
||||
|
||||
var preferenceKey: String? = null
|
||||
val preferences: PreferencesHelper = Injekt.get()
|
||||
val preferences: BasePreferences = Injekt.get()
|
||||
val viewScope: CoroutineScope = MainScope()
|
||||
private var themedContext: Context? = null
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package eu.kanade.tachiyomi.ui.setting.search
|
||||
|
||||
import android.os.Bundle
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.domain.base.BasePreferences
|
||||
import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
@@ -10,7 +10,7 @@ import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
||||
class SettingsSearchPresenter(
|
||||
private val preferences: PreferencesHelper = Injekt.get(),
|
||||
private val preferences: BasePreferences = Injekt.get(),
|
||||
) : BasePresenter<SettingsSearchController>() {
|
||||
|
||||
private val _state: MutableStateFlow<List<SettingsSearchHelper.SettingsSearchResult>> =
|
||||
|
||||
Reference in New Issue
Block a user