Skip to content

Commit

Permalink
Use percentage seekbar for subtitle text size
Browse files Browse the repository at this point in the history
  • Loading branch information
nielsvanvelzen committed Nov 5, 2024
1 parent 18ff2a6 commit 56d0064
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import java.util.UUID
class OptionsItemSeekbar(
private val context: Context
) : OptionsItemMutable<Int>() {

var content: String? = null
var min: Int = 0
var max: Int = 100
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ import org.jellyfin.androidtv.ui.preference.dsl.checkbox
import org.jellyfin.androidtv.ui.preference.dsl.colorList
import org.jellyfin.androidtv.ui.preference.dsl.enum
import org.jellyfin.androidtv.ui.preference.dsl.link
import org.jellyfin.androidtv.ui.preference.dsl.list
import org.jellyfin.androidtv.ui.preference.dsl.optionsScreen
import org.jellyfin.androidtv.ui.preference.dsl.seekbar
import org.jellyfin.sdk.model.api.MediaSegmentType
import org.koin.android.ext.android.inject
import kotlin.math.roundToInt

class PlaybackPreferencesScreen : OptionsFragment() {
private val userPreferences: UserPreferences by inject()
Expand Down Expand Up @@ -126,20 +126,20 @@ class PlaybackPreferencesScreen : OptionsFragment() {
}

@Suppress("MagicNumber")
list {
// Stored in floats (1f = 100%) but seekbar preference works with integers only
seekbar {
setTitle(R.string.pref_subtitles_size)
entries = mapOf(
0.25f to context.getString(R.string.pref_subtitles_size_very_small),
0.5f to context.getString(R.string.pref_subtitles_size_small),
1.0f to context.getString(R.string.pref_subtitles_size_normal),
1.5f to context.getString(R.string.pref_subtitles_size_large),
2.0f to context.getString(R.string.pref_subtitles_size_very_large),
).mapKeys { it.key.toString() }
min = 25 // 0.25f
max = 250 // 2.5f
increment = 25 // 0.25f
valueFormatter = object : DurationSeekBarPreference.ValueFormatter() {
override fun display(value: Int): String = "$value%"
}

bind {
get { userPreferences[UserPreferences.subtitlesTextSize].toString() }
set { value -> userPreferences[UserPreferences.subtitlesTextSize] = value.toFloat() }
default { UserPreferences.subtitlesTextSize.defaultValue.toString() }
get { (userPreferences[UserPreferences.subtitlesTextSize] * 100f).roundToInt() }
set { value -> userPreferences[UserPreferences.subtitlesTextSize] = value / 100f }
default { (UserPreferences.subtitlesTextSize.defaultValue * 100f).roundToInt() }
}
}
}
Expand Down
5 changes: 0 additions & 5 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -225,11 +225,6 @@
<string name="lbl_subtitle_text_color">Subtitle text color</string>
<string name="lbl_subtitle_background_color">Subtitle background color</string>
<string name="lbl_subtitle_text_stroke_color">Subtitle stroke color</string>
<string name="pref_subtitles_size_very_small">Very small</string>
<string name="pref_subtitles_size_small">Small</string>
<string name="pref_subtitles_size_normal">Normal</string>
<string name="pref_subtitles_size_large">Large</string>
<string name="pref_subtitles_size_very_large">Very large</string>
<string name="lbl_resume_from">Resume from %1$s</string>
<string name="lbl_more_like_this">More like this</string>
<string name="lbl_previous_episode">Previous episode</string>
Expand Down

0 comments on commit 56d0064

Please sign in to comment.