mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-27 23:40:33 +05:30
Merge pull request #878 from Bnyro/master
option to set default subtitle language
This commit is contained in:
commit
412937f9bc
@ -166,6 +166,7 @@ class PlayerFragment : Fragment() {
|
||||
private var defRes = ""
|
||||
private var bufferingGoal = 50000
|
||||
private var seekBarPreview = false
|
||||
private var defaultSubtitle = ""
|
||||
|
||||
/**
|
||||
* for autoplay
|
||||
@ -255,12 +256,12 @@ class PlayerFragment : Fragment() {
|
||||
playbackSpeed = PreferenceHelper.getString(
|
||||
PreferenceKeys.PLAYBACK_SPEED,
|
||||
"1"
|
||||
)!!.replace("F", "") // due to old way to handle it (with float)
|
||||
).replace("F", "") // due to old way to handle it (with float)
|
||||
|
||||
fullscreenOrientationPref = PreferenceHelper.getString(
|
||||
PreferenceKeys.FULLSCREEN_ORIENTATION,
|
||||
"ratio"
|
||||
)!!
|
||||
)
|
||||
|
||||
pausePlayerOnScreenOffEnabled = PreferenceHelper.getBoolean(
|
||||
PreferenceKeys.PAUSE_ON_SCREEN_OFF,
|
||||
@ -285,27 +286,36 @@ class PlayerFragment : Fragment() {
|
||||
seekIncrement = PreferenceHelper.getString(
|
||||
PreferenceKeys.SEEK_INCREMENT,
|
||||
"5"
|
||||
)?.toLong()!! * 1000
|
||||
).toLong() * 1000
|
||||
|
||||
videoFormatPreference = PreferenceHelper.getString(
|
||||
PreferenceKeys.PLAYER_VIDEO_FORMAT,
|
||||
"webm"
|
||||
)!!
|
||||
)
|
||||
|
||||
defRes = PreferenceHelper.getString(
|
||||
PreferenceKeys.DEFAULT_RESOLUTION,
|
||||
""
|
||||
)!!
|
||||
)
|
||||
|
||||
bufferingGoal = PreferenceHelper.getString(
|
||||
PreferenceKeys.BUFFERING_GOAL,
|
||||
"50"
|
||||
)?.toInt()!! * 1000
|
||||
).toInt() * 1000
|
||||
|
||||
seekBarPreview = PreferenceHelper.getBoolean(
|
||||
PreferenceKeys.SEEKBAR_PREVIEW,
|
||||
false
|
||||
)
|
||||
|
||||
defaultSubtitle = PreferenceHelper.getString(
|
||||
PreferenceKeys.DEFAULT_SUBTITLE,
|
||||
""
|
||||
)
|
||||
|
||||
if (defaultSubtitle.contains("-")) {
|
||||
defaultSubtitle = defaultSubtitle.split("-")[0]
|
||||
}
|
||||
}
|
||||
|
||||
private fun setSponsorBlockPrefs() {
|
||||
@ -1490,7 +1500,10 @@ class PlayerFragment : Fragment() {
|
||||
)
|
||||
.build()
|
||||
|
||||
// set the subtitle if default subtitle selected
|
||||
trackSelector = DefaultTrackSelector(requireContext())
|
||||
if (defaultSubtitle != "") trackSelector.buildUponParameters()
|
||||
.setPreferredTextLanguage(defaultSubtitle)
|
||||
|
||||
exoPlayer = ExoPlayer.Builder(requireContext())
|
||||
.setMediaSourceFactory(DefaultMediaSourceFactory(dataSourceFactory))
|
||||
|
@ -2,10 +2,13 @@ package com.github.libretube.preferences
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import androidx.preference.SwitchPreferenceCompat
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.activities.SettingsActivity
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
class PlayerSettings : PreferenceFragmentCompat() {
|
||||
val TAG = "PlayerSettings"
|
||||
@ -31,5 +34,25 @@ class PlayerSettings : PreferenceFragmentCompat() {
|
||||
playerOrientation?.isEnabled = newValue != true
|
||||
true
|
||||
}
|
||||
|
||||
val defaultSubtitle = findPreference<ListPreference>(PreferenceKeys.DEFAULT_SUBTITLE)
|
||||
val locales: Array<Locale> = Locale.getAvailableLocales()
|
||||
val localeNames = ArrayList<String>()
|
||||
val localeCodes = ArrayList<String>()
|
||||
|
||||
localeNames.add(context?.getString(R.string.none)!!)
|
||||
localeCodes.add("")
|
||||
|
||||
locales.forEach {
|
||||
if (!localeNames.contains(it.getDisplayLanguage())) {
|
||||
localeNames.add(it.getDisplayLanguage())
|
||||
localeCodes.add(it.language)
|
||||
}
|
||||
}
|
||||
defaultSubtitle?.entries = localeNames.toTypedArray()
|
||||
defaultSubtitle?.entryValues = localeCodes.toTypedArray()
|
||||
defaultSubtitle?.summaryProvider = Preference.SummaryProvider<ListPreference> { preference ->
|
||||
preference.entry
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -45,8 +45,8 @@ object PreferenceHelper {
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
fun getString(key: String?, defValue: String?): String? {
|
||||
return settings.getString(key, defValue)
|
||||
fun getString(key: String?, defValue: String?): String {
|
||||
return settings.getString(key, defValue)!!
|
||||
}
|
||||
|
||||
fun getInt(key: String?, defValue: Int): Int {
|
||||
@ -124,7 +124,7 @@ object PreferenceHelper {
|
||||
}
|
||||
|
||||
fun saveToSearchHistory(query: String) {
|
||||
var historyList = getSearchHistory().toMutableList()
|
||||
val historyList = getSearchHistory().toMutableList()
|
||||
|
||||
if ((historyList.contains(query))) {
|
||||
// remove from history list if already contained
|
||||
|
@ -56,6 +56,7 @@ object PreferenceKeys {
|
||||
const val SEEKBAR_PREVIEW = "seekbar_preview"
|
||||
const val PLAYER_AUDIO_FORMAT = "player_audio_format"
|
||||
const val PLAYER_AUDIO_QUALITY = "player_audio_quality"
|
||||
const val DEFAULT_SUBTITLE = "default_subtitle"
|
||||
|
||||
/**
|
||||
* Download
|
||||
|
@ -264,4 +264,5 @@
|
||||
<string name="playerAudioQuality">Audio quality</string>
|
||||
<string name="best_quality">Best quality</string>
|
||||
<string name="worst_quality">Worst quality</string>
|
||||
<string name="default_subtitle_language">Default subtitle language</string>
|
||||
</resources>
|
@ -71,6 +71,12 @@
|
||||
app:summary="@string/buffering_goal_summary"
|
||||
app:title="@string/buffering_goal" />
|
||||
|
||||
<ListPreference
|
||||
android:defaultValue="none"
|
||||
android:icon="@drawable/ic_caption"
|
||||
app:key="default_subtitle"
|
||||
app:title="@string/default_subtitle_language" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory app:title="@string/behavior">
|
||||
|
Loading…
x
Reference in New Issue
Block a user