From a0aabdf5a487d5a82ddd95afb507d581888be81c Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 10 Jul 2022 09:51:40 +0200 Subject: [PATCH 1/3] remove settings button in player --- .../libretube/fragments/PlayerFragment.kt | 2 +- .../layout/exo_styled_player_control_view.xml | 43 ++++++++----------- 2 files changed, 19 insertions(+), 26 deletions(-) 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..cdade4409 100644 --- a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt @@ -1095,7 +1095,7 @@ class PlayerFragment : Fragment() { } } - playerBinding.qualityLinLayout.setOnClickListener { + playerBinding.qualityText.setOnClickListener { // Dialog for quality selection val builder: MaterialAlertDialogBuilder? = activity?.let { MaterialAlertDialogBuilder(it) 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" /> - - Date: Sun, 10 Jul 2022 10:15:28 +0200 Subject: [PATCH 2/3] custom playback speed dialog --- .../libretube/fragments/PlayerFragment.kt | 34 +++++++++++++------ app/src/main/res/values/strings.xml | 1 + 2 files changed, 24 insertions(+), 11 deletions(-) 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 cdade4409..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) { @@ -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/values/strings.xml b/app/src/main/res/values/strings.xml index e8d79bc0f..d5863da59 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -230,4 +230,5 @@ Please connect to the internet by turning on WiFi or mobile data. Open … Chapters + Playback speed \ No newline at end of file From d369bd7e2349f9aa48c493e763065d9ae463281b Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 10 Jul 2022 10:17:03 +0200 Subject: [PATCH 3/3] fix player background color --- app/src/main/res/layout/fragment_player.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/layout/fragment_player.xml b/app/src/main/res/layout/fragment_player.xml index 3d2a9e9d9..cc011b5e0 100644 --- a/app/src/main/res/layout/fragment_player.xml +++ b/app/src/main/res/layout/fragment_player.xml @@ -357,7 +357,7 @@ android:id="@+id/player" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="?attr/colorSurface" + android:background="@android:color/black" app:layout_constraintBottom_toBottomOf="@id/main_container" app:layout_constraintStart_toStartOf="@id/main_container" app:layout_constraintTop_toTopOf="@id/main_container"