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