diff --git a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt
index 10d12df3a..39cd2819c 100644
--- a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt
+++ b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt
@@ -90,9 +90,7 @@ import kotlinx.coroutines.launch
import org.chromium.net.CronetEngine
import retrofit2.HttpException
import java.io.IOException
-import java.util.*
import java.util.concurrent.Executors
-import kotlin.collections.ArrayList
import kotlin.math.abs
var isFullScreen = false
@@ -719,6 +717,29 @@ class PlayerFragment : Fragment() {
initializeChapters()
}
+ // set default playback speed
+ val playbackSpeed =
+ PreferenceHelper.getString(requireContext(), "playback_speed", "1F")!!
+ val playbackSpeeds = context?.resources?.getStringArray(R.array.playbackSpeed)!!
+ val playbackSpeedValues =
+ context?.resources?.getStringArray(R.array.playbackSpeedValues)!!
+ exoPlayer.setPlaybackSpeed(playbackSpeed.toFloat())
+ val speedIndex = playbackSpeedValues.indexOf(playbackSpeed)
+ playerBinding.speedText.text = playbackSpeeds[speedIndex]
+
+ // change playback speed button
+ playerBinding.speedText.setOnClickListener {
+ MaterialAlertDialogBuilder(requireContext())
+ .setTitle(R.string.change_playback_speed)
+ .setItems(playbackSpeeds) { _, index ->
+ // set the new playback speed
+ val newPlaybackSpeed = playbackSpeedValues[index].toFloat()
+ exoPlayer.setPlaybackSpeed(newPlaybackSpeed)
+ playerBinding.speedText.text = playbackSpeeds[index]
+ }
+ .show()
+ }
+
// Listener for play and pause icon change
exoPlayer.addListener(object : Player.Listener {
override fun onIsPlayingChanged(isPlaying: Boolean) {
@@ -1095,7 +1116,7 @@ class PlayerFragment : Fragment() {
}
}
- playerBinding.qualityLinLayout.setOnClickListener {
+ playerBinding.qualityText.setOnClickListener {
// Dialog for quality selection
val builder: MaterialAlertDialogBuilder? = activity?.let {
MaterialAlertDialogBuilder(it)
@@ -1130,13 +1151,8 @@ class PlayerFragment : Fragment() {
}
private fun createExoPlayer(view: View) {
- val playbackSpeed =
- PreferenceHelper.getString(requireContext(), "playback_speed", "1F")?.toFloat()
- // multiply by thousand: s -> ms
val bufferingGoal =
PreferenceHelper.getString(requireContext(), "buffering_goal", "50")?.toInt()!! * 1000
- val seekIncrement =
- PreferenceHelper.getString(requireContext(), "seek_increment", "5")?.toLong()!! * 1000
val cronetEngine: CronetEngine = CronetHelper.getCronetEngine()
val cronetDataSourceFactory: CronetDataSource.Factory =
@@ -1168,13 +1184,9 @@ class PlayerFragment : Fragment() {
exoPlayer = ExoPlayer.Builder(view.context)
.setMediaSourceFactory(DefaultMediaSourceFactory(dataSourceFactory))
.setLoadControl(loadControl)
- .setSeekBackIncrementMs(seekIncrement)
- .setSeekForwardIncrementMs(seekIncrement)
.build()
exoPlayer.setAudioAttributes(audioAttributes, true)
-
- exoPlayer.setPlaybackSpeed(playbackSpeed!!)
}
private fun initializePlayerNotification(c: Context) {
diff --git a/app/src/main/res/layout/exo_styled_player_control_view.xml b/app/src/main/res/layout/exo_styled_player_control_view.xml
index 9aec943b4..5363a9d74 100644
--- a/app/src/main/res/layout/exo_styled_player_control_view.xml
+++ b/app/src/main/res/layout/exo_styled_player_control_view.xml
@@ -74,34 +74,31 @@
android:id="@+id/aspect_ratio_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginEnd="12dp"
+ android:layout_marginHorizontal="5dp"
android:background="#00FFFFFF"
android:padding="@dimen/exo_icon_padding"
android:src="@drawable/ic_aspect_ratio" />
-
+ android:layout_height="wrap_content"
+ android:layout_marginHorizontal="5dp"
+ android:layout_gravity="center"
+ android:padding="@dimen/exo_icon_padding"
+ android:text="1x"
+ android:textColor="#FFFFFF" />
-
+
-
-
-
@@ -183,10 +180,6 @@
android:id="@id/exo_subtitle"
style="@style/ExoStyledControls.Button.Bottom.CC" />
-
-
Please connect to the internet by turning on WiFi or mobile data.
Open …
Chapters
+ Playback speed
\ No newline at end of file