Select preferred audio and subtitle language
This commit is contained in:
parent
dbc2582724
commit
53f478c6cf
6 changed files with 422 additions and 12 deletions
|
@ -75,6 +75,10 @@ dependencies {
|
|||
kapt "androidx.room:room-compiler:$room_version"
|
||||
implementation "androidx.room:room-ktx:$room_version"
|
||||
|
||||
// Preference
|
||||
def preference_version = "1.1.1"
|
||||
implementation "androidx.preference:preference-ktx:$preference_version"
|
||||
|
||||
// Jellyfin
|
||||
def jellyfin_version = "1.0.1"
|
||||
implementation "org.jellyfin.sdk:jellyfin-platform-android:$jellyfin_version"
|
||||
|
|
|
@ -1,18 +1,11 @@
|
|||
package dev.jdtech.jellyfin.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import dev.jdtech.jellyfin.R
|
||||
|
||||
class SettingsFragment : Fragment() {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
return inflater.inflate(R.layout.fragment_settings, container, false)
|
||||
class SettingsFragment : PreferenceFragmentCompat() {
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.fragment_settings, rootKey)
|
||||
}
|
||||
}
|
|
@ -8,6 +8,7 @@ import androidx.lifecycle.LiveData
|
|||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import androidx.preference.PreferenceManager
|
||||
import com.google.android.exoplayer2.*
|
||||
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
|
@ -38,6 +39,8 @@ constructor(
|
|||
val playbackStateListener: PlaybackStateListener
|
||||
get() = _playbackStateListener
|
||||
|
||||
private val sp = PreferenceManager.getDefaultSharedPreferences(application)
|
||||
|
||||
init {
|
||||
_playbackStateListener = PlaybackStateListener()
|
||||
}
|
||||
|
@ -49,7 +52,10 @@ constructor(
|
|||
DefaultRenderersFactory(application).setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON)
|
||||
val trackSelector = DefaultTrackSelector(application)
|
||||
trackSelector.setParameters(
|
||||
trackSelector.buildUponParameters().setTunnelingEnabled(true),
|
||||
trackSelector.buildUponParameters()
|
||||
.setTunnelingEnabled(true)
|
||||
.setPreferredAudioLanguage(sp.getString("audio_language", null))
|
||||
.setPreferredTextLanguage(sp.getString("subtitle_language", null))
|
||||
)
|
||||
val player = SimpleExoPlayer.Builder(application, renderersFactory)
|
||||
.setTrackSelector(trackSelector)
|
||||
|
|
378
app/src/main/res/values/languages.xml
Normal file
378
app/src/main/res/values/languages.xml
Normal file
|
@ -0,0 +1,378 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string-array name="languages">
|
||||
<item>None</item>
|
||||
<item>Abkhazian</item>
|
||||
<item>Afar</item>
|
||||
<item>Afrikaans</item>
|
||||
<item>Akan</item>
|
||||
<item>Albanian</item>
|
||||
<item>Amharic</item>
|
||||
<item>Arabic</item>
|
||||
<item>Aragonese</item>
|
||||
<item>Armenian</item>
|
||||
<item>Assamese</item>
|
||||
<item>Avaric</item>
|
||||
<item>Avestan</item>
|
||||
<item>Aymara</item>
|
||||
<item>Azerbaijani</item>
|
||||
<item>Bambara</item>
|
||||
<item>Bashkir</item>
|
||||
<item>Basque</item>
|
||||
<item>Belarusian</item>
|
||||
<item>Bengali</item>
|
||||
<item>Bihari languages</item>
|
||||
<item>Bislama</item>
|
||||
<item>Bokmål, Norwegian; Norwegian Bokmål</item>
|
||||
<item>Bosnian</item>
|
||||
<item>Breton</item>
|
||||
<item>Bulgarian</item>
|
||||
<item>Burmese</item>
|
||||
<item>Catalan</item>
|
||||
<item>Central Khmer</item>
|
||||
<item>Chamorro</item>
|
||||
<item>Chechen</item>
|
||||
<item>Chichewa</item>
|
||||
<item>Chinese</item>
|
||||
<item>Church Slavic</item>
|
||||
<item>Chuvash</item>
|
||||
<item>Cornish</item>
|
||||
<item>Corsican</item>
|
||||
<item>Cree</item>
|
||||
<item>Croatian</item>
|
||||
<item>Czech</item>
|
||||
<item>Danish</item>
|
||||
<item>Divehi</item>
|
||||
<item>Dutch</item>
|
||||
<item>Dzongkha</item>
|
||||
<item>English</item>
|
||||
<item>Esperanto</item>
|
||||
<item>Estonian</item>
|
||||
<item>Ewe</item>
|
||||
<item>Faroese</item>
|
||||
<item>Fijian</item>
|
||||
<item>Finnish</item>
|
||||
<item>French</item>
|
||||
<item>Fulah</item>
|
||||
<item>Gaelic</item>
|
||||
<item>Galician</item>
|
||||
<item>Ganda</item>
|
||||
<item>Georgian</item>
|
||||
<item>German</item>
|
||||
<item>Greek, Modern (1453-)</item>
|
||||
<item>Guarani</item>
|
||||
<item>Gujarati</item>
|
||||
<item>Haitian</item>
|
||||
<item>Hausa</item>
|
||||
<item>Hebrew</item>
|
||||
<item>Herero</item>
|
||||
<item>Hindi</item>
|
||||
<item>Hiri Motu</item>
|
||||
<item>Hungarian</item>
|
||||
<item>Icelandic</item>
|
||||
<item>Ido</item>
|
||||
<item>Igbo</item>
|
||||
<item>Indonesian</item>
|
||||
<item>Interlingua (International Auxiliary Language Association)</item>
|
||||
<item>Interlingue</item>
|
||||
<item>Inuktitut</item>
|
||||
<item>Inupiaq</item>
|
||||
<item>Irish</item>
|
||||
<item>Italian</item>
|
||||
<item>Japanese</item>
|
||||
<item>Javanese</item>
|
||||
<item>Kalaallisut</item>
|
||||
<item>Kannada</item>
|
||||
<item>Kanuri</item>
|
||||
<item>Kashmiri</item>
|
||||
<item>Kazakh</item>
|
||||
<item>Kikuyu</item>
|
||||
<item>Kinyarwanda</item>
|
||||
<item>Kirghiz</item>
|
||||
<item>Komi</item>
|
||||
<item>Kongo</item>
|
||||
<item>Korean</item>
|
||||
<item>Kuanyama</item>
|
||||
<item>Kurdish</item>
|
||||
<item>Lao</item>
|
||||
<item>Latin</item>
|
||||
<item>Latvian</item>
|
||||
<item>Limburgan</item>
|
||||
<item>Lingala</item>
|
||||
<item>Lithuanian</item>
|
||||
<item>Luba-Katanga</item>
|
||||
<item>Luxembourgish</item>
|
||||
<item>Macedonian</item>
|
||||
<item>Malagasy</item>
|
||||
<item>Malay</item>
|
||||
<item>Malayalam</item>
|
||||
<item>Maltese</item>
|
||||
<item>Manx</item>
|
||||
<item>Maori</item>
|
||||
<item>Marathi</item>
|
||||
<item>Marshallese</item>
|
||||
<item>Mongolian</item>
|
||||
<item>Nauru</item>
|
||||
<item>Navajo</item>
|
||||
<item>Ndebele, North; North Ndebele</item>
|
||||
<item>Ndebele, South; South Ndebele</item>
|
||||
<item>Ndonga</item>
|
||||
<item>Nepali</item>
|
||||
<item>Northern Sami</item>
|
||||
<item>Norwegian</item>
|
||||
<item>Norwegian Nynorsk; Nynorsk, Norwegian</item>
|
||||
<item>Occitan (post 1500)</item>
|
||||
<item>Ojibwa</item>
|
||||
<item>Oriya</item>
|
||||
<item>Oromo</item>
|
||||
<item>Ossetian</item>
|
||||
<item>Pali</item>
|
||||
<item>Panjabi</item>
|
||||
<item>Persian</item>
|
||||
<item>Polish</item>
|
||||
<item>Portuguese</item>
|
||||
<item>Pushto</item>
|
||||
<item>Quechua</item>
|
||||
<item>Romanian</item>
|
||||
<item>Romansh</item>
|
||||
<item>Rundi</item>
|
||||
<item>Russian</item>
|
||||
<item>Samoan</item>
|
||||
<item>Sango</item>
|
||||
<item>Sanskrit</item>
|
||||
<item>Sardinian</item>
|
||||
<item>Serbian</item>
|
||||
<item>Shona</item>
|
||||
<item>Sichuan Yi</item>
|
||||
<item>Sindhi</item>
|
||||
<item>Sinhala</item>
|
||||
<item>Slovak</item>
|
||||
<item>Slovenian</item>
|
||||
<item>Somali</item>
|
||||
<item>Sotho, Southern</item>
|
||||
<item>Spanish</item>
|
||||
<item>Sundanese</item>
|
||||
<item>Swahili</item>
|
||||
<item>Swati</item>
|
||||
<item>Swedish</item>
|
||||
<item>Tagalog</item>
|
||||
<item>Tahitian</item>
|
||||
<item>Tajik</item>
|
||||
<item>Tamil</item>
|
||||
<item>Tatar</item>
|
||||
<item>Telugu</item>
|
||||
<item>Thai</item>
|
||||
<item>Tibetan</item>
|
||||
<item>Tigrinya</item>
|
||||
<item>Tonga (Tonga Islands)</item>
|
||||
<item>Tsonga</item>
|
||||
<item>Tswana</item>
|
||||
<item>Turkish</item>
|
||||
<item>Turkmen</item>
|
||||
<item>Twi</item>
|
||||
<item>Uighur</item>
|
||||
<item>Ukrainian</item>
|
||||
<item>Urdu</item>
|
||||
<item>Uzbek</item>
|
||||
<item>Venda</item>
|
||||
<item>Vietnamese</item>
|
||||
<item>Volapük</item>
|
||||
<item>Walloon</item>
|
||||
<item>Welsh</item>
|
||||
<item>Western Frisian</item>
|
||||
<item>Wolof</item>
|
||||
<item>Xhosa</item>
|
||||
<item>Yiddish</item>
|
||||
<item>Yoruba</item>
|
||||
<item>Zhuang</item>
|
||||
<item>Zulu</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="languages_values">
|
||||
<item>null</item>
|
||||
<item>ab</item>
|
||||
<item>aa</item>
|
||||
<item>af</item>
|
||||
<item>ak</item>
|
||||
<item>sq</item>
|
||||
<item>am</item>
|
||||
<item>ar</item>
|
||||
<item>an</item>
|
||||
<item>hy</item>
|
||||
<item>as</item>
|
||||
<item>av</item>
|
||||
<item>ae</item>
|
||||
<item>ay</item>
|
||||
<item>az</item>
|
||||
<item>bm</item>
|
||||
<item>ba</item>
|
||||
<item>eu</item>
|
||||
<item>be</item>
|
||||
<item>bn</item>
|
||||
<item>bh</item>
|
||||
<item>bi</item>
|
||||
<item>nb</item>
|
||||
<item>bs</item>
|
||||
<item>br</item>
|
||||
<item>bg</item>
|
||||
<item>my</item>
|
||||
<item>ca</item>
|
||||
<item>km</item>
|
||||
<item>ch</item>
|
||||
<item>ce</item>
|
||||
<item>ny</item>
|
||||
<item>zh</item>
|
||||
<item>cu</item>
|
||||
<item>cv</item>
|
||||
<item>kw</item>
|
||||
<item>co</item>
|
||||
<item>cr</item>
|
||||
<item>hr</item>
|
||||
<item>cs</item>
|
||||
<item>da</item>
|
||||
<item>dv</item>
|
||||
<item>nl</item>
|
||||
<item>dz</item>
|
||||
<item>en</item>
|
||||
<item>eo</item>
|
||||
<item>et</item>
|
||||
<item>ee</item>
|
||||
<item>fo</item>
|
||||
<item>fj</item>
|
||||
<item>fi</item>
|
||||
<item>fr</item>
|
||||
<item>ff</item>
|
||||
<item>gd</item>
|
||||
<item>gl</item>
|
||||
<item>lg</item>
|
||||
<item>ka</item>
|
||||
<item>de</item>
|
||||
<item>el</item>
|
||||
<item>gn</item>
|
||||
<item>gu</item>
|
||||
<item>ht</item>
|
||||
<item>ha</item>
|
||||
<item>he</item>
|
||||
<item>hz</item>
|
||||
<item>hi</item>
|
||||
<item>ho</item>
|
||||
<item>hu</item>
|
||||
<item>is</item>
|
||||
<item>io</item>
|
||||
<item>ig</item>
|
||||
<item>id</item>
|
||||
<item>ia</item>
|
||||
<item>ie</item>
|
||||
<item>iu</item>
|
||||
<item>ik</item>
|
||||
<item>ga</item>
|
||||
<item>it</item>
|
||||
<item>ja</item>
|
||||
<item>jv</item>
|
||||
<item>kl</item>
|
||||
<item>kn</item>
|
||||
<item>kr</item>
|
||||
<item>ks</item>
|
||||
<item>kk</item>
|
||||
<item>ki</item>
|
||||
<item>rw</item>
|
||||
<item>ky</item>
|
||||
<item>kv</item>
|
||||
<item>kg</item>
|
||||
<item>ko</item>
|
||||
<item>kj</item>
|
||||
<item>ku</item>
|
||||
<item>lo</item>
|
||||
<item>la</item>
|
||||
<item>lv</item>
|
||||
<item>li</item>
|
||||
<item>ln</item>
|
||||
<item>lt</item>
|
||||
<item>lu</item>
|
||||
<item>lb</item>
|
||||
<item>mk</item>
|
||||
<item>mg</item>
|
||||
<item>ms</item>
|
||||
<item>ml</item>
|
||||
<item>mt</item>
|
||||
<item>gv</item>
|
||||
<item>mi</item>
|
||||
<item>mr</item>
|
||||
<item>mh</item>
|
||||
<item>mn</item>
|
||||
<item>na</item>
|
||||
<item>nv</item>
|
||||
<item>nd</item>
|
||||
<item>nr</item>
|
||||
<item>ng</item>
|
||||
<item>ne</item>
|
||||
<item>se</item>
|
||||
<item>no</item>
|
||||
<item>nn</item>
|
||||
<item>oc</item>
|
||||
<item>oj</item>
|
||||
<item>or</item>
|
||||
<item>om</item>
|
||||
<item>os</item>
|
||||
<item>pi</item>
|
||||
<item>pa</item>
|
||||
<item>fa</item>
|
||||
<item>pl</item>
|
||||
<item>pt</item>
|
||||
<item>ps</item>
|
||||
<item>qu</item>
|
||||
<item>ro</item>
|
||||
<item>rm</item>
|
||||
<item>rn</item>
|
||||
<item>ru</item>
|
||||
<item>sm</item>
|
||||
<item>sg</item>
|
||||
<item>sa</item>
|
||||
<item>sc</item>
|
||||
<item>sr</item>
|
||||
<item>sn</item>
|
||||
<item>ii</item>
|
||||
<item>sd</item>
|
||||
<item>si</item>
|
||||
<item>sk</item>
|
||||
<item>sl</item>
|
||||
<item>so</item>
|
||||
<item>st</item>
|
||||
<item>es</item>
|
||||
<item>su</item>
|
||||
<item>sw</item>
|
||||
<item>ss</item>
|
||||
<item>sv</item>
|
||||
<item>tl</item>
|
||||
<item>ty</item>
|
||||
<item>tg</item>
|
||||
<item>ta</item>
|
||||
<item>tt</item>
|
||||
<item>te</item>
|
||||
<item>th</item>
|
||||
<item>bo</item>
|
||||
<item>ti</item>
|
||||
<item>to</item>
|
||||
<item>ts</item>
|
||||
<item>tn</item>
|
||||
<item>tr</item>
|
||||
<item>tk</item>
|
||||
<item>tw</item>
|
||||
<item>ug</item>
|
||||
<item>uk</item>
|
||||
<item>ur</item>
|
||||
<item>uz</item>
|
||||
<item>ve</item>
|
||||
<item>vi</item>
|
||||
<item>vo</item>
|
||||
<item>wa</item>
|
||||
<item>cy</item>
|
||||
<item>fy</item>
|
||||
<item>wo</item>
|
||||
<item>xh</item>
|
||||
<item>yi</item>
|
||||
<item>yo</item>
|
||||
<item>za</item>
|
||||
<item>zu</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -38,4 +38,8 @@
|
|||
<string name="continue_watching">Continue Watching</string>
|
||||
<string name="latest_library">Latest %1$s</string>
|
||||
<string name="series_poster">Series poster</string>
|
||||
|
||||
<string name="settings_category_language">Language</string>
|
||||
<string name="settings_preferred_audio_language">Preferred audio language</string>
|
||||
<string name="settings_preferred_subtitle_language">Preferred subtitle language</string>
|
||||
</resources>
|
25
app/src/main/res/xml/fragment_settings.xml
Normal file
25
app/src/main/res/xml/fragment_settings.xml
Normal file
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<PreferenceCategory app:title="@string/settings_category_language">
|
||||
|
||||
<ListPreference
|
||||
app:defaultValue="null"
|
||||
app:entries="@array/languages"
|
||||
app:entryValues="@array/languages_values"
|
||||
app:key="audio_language"
|
||||
app:title="@string/settings_preferred_audio_language"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<ListPreference
|
||||
app:defaultValue="null"
|
||||
app:entries="@array/languages"
|
||||
app:entryValues="@array/languages_values"
|
||||
app:key="subtitle_language"
|
||||
app:title="@string/settings_preferred_subtitle_language"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
|
||||
</PreferenceScreen>
|
Loading…
Reference in a new issue