mirror of
https://github.com/mihonapp/mihon.git
synced 2024-11-21 20:47:03 -05:00
Revert "Remove no-longer-needed FloatListPreference"
This reverts commit 19993199db
.
This commit is contained in:
parent
19993199db
commit
4014c48c62
3 changed files with 32 additions and 1 deletions
|
@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.ui.setting
|
||||||
import android.support.graphics.drawable.VectorDrawableCompat
|
import android.support.graphics.drawable.VectorDrawableCompat
|
||||||
import android.support.v4.graphics.drawable.DrawableCompat
|
import android.support.v4.graphics.drawable.DrawableCompat
|
||||||
import android.support.v7.preference.*
|
import android.support.v7.preference.*
|
||||||
|
import eu.kanade.tachiyomi.widget.preference.FloatListPreference
|
||||||
import eu.kanade.tachiyomi.widget.preference.IntListPreference
|
import eu.kanade.tachiyomi.widget.preference.IntListPreference
|
||||||
|
|
||||||
@DslMarker
|
@DslMarker
|
||||||
|
@ -37,6 +38,10 @@ inline fun PreferenceGroup.intListPreference(block: (@DSL IntListPreference).()
|
||||||
return initThenAdd(IntListPreference(context), block).also(::initDialog)
|
return initThenAdd(IntListPreference(context), block).also(::initDialog)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline fun PreferenceGroup.floatListPreference(block: (@DSL FloatListPreference).() -> Unit): FloatListPreference {
|
||||||
|
return initThenAdd(FloatListPreference(context), block).also(::initDialog)
|
||||||
|
}
|
||||||
|
|
||||||
inline fun PreferenceGroup.multiSelectListPreference(block: (@DSL MultiSelectListPreference).() -> Unit): MultiSelectListPreference {
|
inline fun PreferenceGroup.multiSelectListPreference(block: (@DSL MultiSelectListPreference).() -> Unit): MultiSelectListPreference {
|
||||||
return initThenAdd(MultiSelectListPreference(context), block).also(::initDialog)
|
return initThenAdd(MultiSelectListPreference(context), block).also(::initDialog)
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,7 +113,7 @@ class SettingsReaderController : SettingsController() {
|
||||||
defaultValue = false
|
defaultValue = false
|
||||||
}
|
}
|
||||||
|
|
||||||
intListPreference {
|
floatListPreference {
|
||||||
key = Keys.webtoonMarginRatio
|
key = Keys.webtoonMarginRatio
|
||||||
titleRes = R.string.pref_reader_theme
|
titleRes = R.string.pref_reader_theme
|
||||||
entriesRes = arrayOf(R.string.webtoon_margin_ratio_0,
|
entriesRes = arrayOf(R.string.webtoon_margin_ratio_0,
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
package eu.kanade.tachiyomi.widget.preference
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.support.v7.preference.ListPreference
|
||||||
|
import android.util.AttributeSet
|
||||||
|
|
||||||
|
class FloatListPreference @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
|
||||||
|
ListPreference(context, attrs) {
|
||||||
|
|
||||||
|
override fun persistString(value: String?): Boolean {
|
||||||
|
return value != null && persistFloat(value.toFloat())
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getPersistedString(defaultReturnValue: String?): String? {
|
||||||
|
// When the underlying preference is using a PreferenceDataStore, there's no way (for now)
|
||||||
|
// to check if a value is in the store, so we use a most likely unused value as workaround
|
||||||
|
val defaultIntValue = Float.NEGATIVE_INFINITY
|
||||||
|
|
||||||
|
val value = getPersistedFloat(defaultIntValue)
|
||||||
|
return if (value != defaultIntValue) {
|
||||||
|
value.toString()
|
||||||
|
} else {
|
||||||
|
defaultReturnValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue