Feat(exoplayer): optional decoders (#533)

* Change Layout

* Add string

* Who did this?

* Add listener

* Made NextLib Conditional

* Add Preferences
This commit is contained in:
Sadwhy 2024-11-22 23:38:50 +06:00 committed by GitHub
parent 404d265a2d
commit f13225e032
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 39 additions and 27 deletions

View file

@ -1703,8 +1703,12 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL
hideSystemBars()
val decoder = DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER
val useExtensionDecoder = PrefManager.getVal<Boolean>(PrefName.UseAdditionalCodec)
val decoder = if (useExtensionDecoder) {
DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER
} else {
DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF
}
val renderersFactory = NextRenderersFactory(this)
.setEnableDecoderFallback(true)
.setExtensionRendererMode(decoder)

View file

@ -276,7 +276,12 @@ class PlayerSettingsActivity : AppCompatActivity() {
binding.playerSettingsRotate.setOnCheckedChangeListener { _, isChecked ->
PrefManager.setVal(PrefName.RotationPlayer, isChecked)
}
binding.playerSettingsAdditionalCodec.isChecked = PrefManager.getVal(PrefName.UseAdditionalCodec)
binding.playerSettingsAdditionalCodec.setOnCheckedChangeListener { _, isChecked ->
PrefManager.setVal(PrefName.UseAdditionalCodec, isChecked)
}
val resizeModes = arrayOf("Original", "Zoom", "Stretch")
binding.playerResizeMode.setOnClickListener {
customAlertDialog().apply {

View file

@ -128,6 +128,7 @@ enum class PrefName(val data: Pref) { //TODO: Split this into multiple files
Pip(Pref(Location.Player, Boolean::class, true)),
RotationPlayer(Pref(Location.Player, Boolean::class, true)),
TorrentEnabled(Pref(Location.Player, Boolean::class, false)),
UseAdditionalCodec(Pref(Location.Player, Boolean::class, true)),
//Reader
ShowSource(Pref(Location.Reader, Boolean::class, true)),
@ -199,8 +200,6 @@ enum class PrefName(val data: Pref) { //TODO: Split this into multiple files
RefreshStatus(Pref(Location.Irrelevant, Boolean::class, false)),
rpcEnabled(Pref(Location.Irrelevant, Boolean::class, true)),
//testing
//Protected
DiscordToken(Pref(Location.Protected, String::class, "")),
DiscordId(Pref(Location.Protected, String::class, "")),
@ -218,4 +217,4 @@ enum class PrefName(val data: Pref) { //TODO: Split this into multiple files
Socks5ProxyPort(Pref(Location.Protected, String::class, "")),
Socks5ProxyUsername(Pref(Location.Protected, String::class, "")),
Socks5ProxyPassword(Pref(Location.Protected, String::class, "")),
}
}

View file

@ -1232,6 +1232,27 @@
</com.google.android.material.materialswitch.MaterialSwitch>
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/playerSettingsAdditionalCodec"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checked="true"
android:drawableStart="@drawable/ic_round_high_quality_24"
android:drawablePadding="16dp"
android:elegantTextHeight="true"
android:fontFamily="@font/poppins_bold"
android:minHeight="64dp"
android:paddingHorizontal="32dp"
android:text="@string/use_additional_codec"
android:textAlignment="viewStart"
android:textColor="@color/bg_opp"
app:cornerRadius="0dp"
app:drawableTint="?attr/colorPrimary"
app:showText="false"
app:thumbTint="@color/button_switch_track">
</com.google.android.material.materialswitch.MaterialSwitch>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"

View file

@ -1073,7 +1073,6 @@ Non quae tempore quo provident laudantium qui illo dolor vel quia dolor et exerc
<string name="private_mode">Private</string>
<string name="omega_cursed">you have been Ǫ̴̺̙͎̤̫͓̮̰̿͝M̴͇̤͗́̾̈́̑̍̿̈͌͝Ȅ̴̡̨̛͉̣̙̩̲̣̤̟̪̣̎͗̎̆̒̉͆̆̕ͅͅǴ̸̯̬̗̠̙͛͐̀̈͋̀̈̽́̎̿͘͘͝ͅĀ̶̧̲̀ͅ ̴̢̟͕̜̓̾̓C̶̬̜̰̘̝̱̫͓͙̭̈́͐͋̓̏̈̍̓̀̌̾̚Ư̸̛̤̱̈́͆̽͊͛̐̓́̑͘̕̕͝R̸̨̨͈̬̱̺͕̪̪̘͕͎̂͛́̅̆̓̀͝ͅS̴̨̨̛̩̭̗̹̰̭̥͉̮̝̠̓̔͆̂͊͆̀̈́̅̕͘̚͝È̴̢̛̝͈̳͉͈͒͒̒̄̏̈̈́D̸̢̡̨̜̞̩̼̫̹̗̮͛̀̈̋̾̇̕̕͜ͅ</string>
<string name="omega_freed">you have been freed</string>
<string name="subtitle_langauge">Subtitle Langauge</string>
<string name="socks5">SOCKS5</string>
<string name="host">Host</string>
@ -1085,6 +1084,6 @@ Non quae tempore quo provident laudantium qui illo dolor vel quia dolor et exerc
<string name="proxy_setup_desc">Configure your Socks5 Proxy</string>
<string name="clear_stored_episode">Clear Stored Episode Data</string>
<string name="clear_stored_chapter">Clear Stored Chapter Data</string>
<string name="use_additional_codec">Additional Codec Support</string>
</resources>