@@ -13,11 +13,11 @@ import org.jellyfin.androidtv.ui.preference.dsl.checkbox
13
13
import org.jellyfin.androidtv.ui.preference.dsl.colorList
14
14
import org.jellyfin.androidtv.ui.preference.dsl.enum
15
15
import org.jellyfin.androidtv.ui.preference.dsl.link
16
- import org.jellyfin.androidtv.ui.preference.dsl.list
17
16
import org.jellyfin.androidtv.ui.preference.dsl.optionsScreen
18
17
import org.jellyfin.androidtv.ui.preference.dsl.seekbar
19
18
import org.jellyfin.sdk.model.api.MediaSegmentType
20
19
import org.koin.android.ext.android.inject
20
+ import kotlin.math.roundToInt
21
21
22
22
class PlaybackPreferencesScreen : OptionsFragment () {
23
23
private val userPreferences: UserPreferences by inject()
@@ -126,20 +126,20 @@ class PlaybackPreferencesScreen : OptionsFragment() {
126
126
}
127
127
128
128
@Suppress(" MagicNumber" )
129
- list {
129
+ // Stored in floats (1f = 100%) but seekbar preference works with integers only
130
+ seekbar {
130
131
setTitle(R .string.pref_subtitles_size)
131
- entries = mapOf (
132
- 0.25f to context.getString(R .string.pref_subtitles_size_very_small),
133
- 0.5f to context.getString(R .string.pref_subtitles_size_small),
134
- 1.0f to context.getString(R .string.pref_subtitles_size_normal),
135
- 1.5f to context.getString(R .string.pref_subtitles_size_large),
136
- 2.0f to context.getString(R .string.pref_subtitles_size_very_large),
137
- ).mapKeys { it.key.toString() }
132
+ min = 25 // 0.25f
133
+ max = 250 // 2.5f
134
+ increment = 25 // 0.25f
135
+ valueFormatter = object : DurationSeekBarPreference .ValueFormatter () {
136
+ override fun display (value : Int ): String = " $value %"
137
+ }
138
138
139
139
bind {
140
- get { userPreferences[UserPreferences .subtitlesTextSize].toString () }
141
- set { value -> userPreferences[UserPreferences .subtitlesTextSize] = value.toFloat() }
142
- default { UserPreferences .subtitlesTextSize.defaultValue.toString () }
140
+ get { ( userPreferences[UserPreferences .subtitlesTextSize] * 100f ).roundToInt () }
141
+ set { value -> userPreferences[UserPreferences .subtitlesTextSize] = value / 100f }
142
+ default { ( UserPreferences .subtitlesTextSize.defaultValue * 100f ).roundToInt () }
143
143
}
144
144
}
145
145
}
0 commit comments