From 51ec6d9bf68cbc51572ba3bf21c76221ffb5b5f0 Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Fri, 6 Aug 2021 22:43:37 -0400 Subject: [PATCH] minor updates to summaries in library settings adding support for preSummaryRes for more deceptive summaries with the value --- .../ui/setting/SettingsLibraryController.kt | 4 ++-- .../tachiyomi/widget/preference/MatPreference.kt | 15 ++++++++++++++- .../widget/preference/MultiListMatPreference.kt | 4 ++++ app/src/main/res/values/strings.xml | 2 +- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt index 6b19f4b09b..859c81f8db 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt @@ -129,7 +129,8 @@ class SettingsLibraryController : SettingsController() { titleRes = R.string.library_update_restriction entriesRes = arrayOf(R.string.wifi, R.string.charging) entryValues = listOf("wifi", "ac") - summaryRes = R.string.library_update_restriction_summary + preSummaryRes = R.string.restrictions_ + noSelectionRes = R.string.none preferences.libraryUpdateInterval().asObservable() .subscribeUntilDestroy { isVisible = it > 0 } @@ -158,7 +159,6 @@ class SettingsLibraryController : SettingsController() { ) entryRange = 0..1 defaultValue = 0 - summaryRes = R.string.select_order_to_update } triStateListPreference(activity) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/preference/MatPreference.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/preference/MatPreference.kt index 66dcd7cae1..bd3cf315e9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/preference/MatPreference.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/preference/MatPreference.kt @@ -21,6 +21,12 @@ open class MatPreference @JvmOverloads constructor( Preference(context, attrs) { protected val prefs: PreferencesHelper = Injekt.get() + + @StringRes var preSummaryRes: Int? = null + set(value) { + field = value + notifyChanged() + } private var isShowing = false @StringRes var dialogTitleRes: Int? = null @@ -41,7 +47,14 @@ open class MatPreference @JvmOverloads constructor( } override fun getSummary(): CharSequence? { - customSummaryProvider?.let { return it.provideSummary(this) } + customSummaryProvider?.let { + val preSummaryRes = preSummaryRes + return if (preSummaryRes != null) { + context.getString(preSummaryRes, it.provideSummary(this)) + } else { + it.provideSummary(this) + } + } return super.getSummary() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/preference/MultiListMatPreference.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/preference/MultiListMatPreference.kt index db50e747fc..f9b69f9d3d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/preference/MultiListMatPreference.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/preference/MultiListMatPreference.kt @@ -21,6 +21,7 @@ class MultiListMatPreference @JvmOverloads constructor( ListMatPreference(activity, context, attrs) { var allSelectionRes: Int? = null + var noSelectionRes: Int? = null /** All item is always selected and uncheckabele */ var allIsAlwaysSelected = false @@ -56,6 +57,9 @@ class MultiListMatPreference @JvmOverloads constructor( allIsAlwaysSelected -> values = values + context.getString(allRes) } } + if (values.isEmpty()) { + noSelectionRes?.let { values = listOf(context.getString(it)) } + } values.joinToString() } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9df092bffb..0f14206b6d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -211,9 +211,9 @@ Library update frequency Library update order - Select the order in which Tachiyomi checks for update Library update restrictions Update only when the conditions are met + Restrictions: %1$s Only update ongoing manga Sort by ignoring articles When sorting alphabetically, sort ignoring