From 73beffef226742f0ca11ec337e4d69560008dd29 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 4 Jul 2022 21:19:16 +0200 Subject: [PATCH 1/5] fullscreen orientation setting --- .../libretube/fragments/PlayerFragment.kt | 19 +++++++++++++++++-- app/src/main/res/drawable/ic_fullscreen.xml | 2 +- app/src/main/res/values/array.xml | 13 +++++++++++++ app/src/main/res/values/strings.xml | 8 +++++++- app/src/main/res/xml/player_settings.xml | 15 ++++++++++++++- 5 files changed, 52 insertions(+), 5 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 358f011d1..f400815a5 100644 --- a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt @@ -284,7 +284,22 @@ class PlayerFragment : Fragment() { scaleFactor = 1.3F val mainActivity = activity as MainActivity - mainActivity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE + val fullscreenOrientationPref = PreferenceHelper + .getString(requireContext(), "fullscreen_rotation", "ratio") + val orientation = when(fullscreenOrientationPref) { + "ratio" -> { + val videoSize = exoPlayer.videoSize + // probably a youtube shorts video + if (videoSize.height > videoSize.width) ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT + // a video with normal aspect ratio + else ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE + } + "auto" -> ActivityInfo.SCREEN_ORIENTATION_USER + "landscape" -> ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE + "portrait" -> ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT + else -> ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE + } + mainActivity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT } else { // leave fullscreen mode with(binding.playerMotionLayout) { @@ -1214,7 +1229,7 @@ class PlayerFragment : Fragment() { enableTransition(R.id.yt_transition, false) } binding.mainContainer.isClickable = true - + val mainActivity = activity as MainActivity mainActivity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT isFullScreen = false diff --git a/app/src/main/res/drawable/ic_fullscreen.xml b/app/src/main/res/drawable/ic_fullscreen.xml index bf4ff36cd..ad9f6dfec 100644 --- a/app/src/main/res/drawable/ic_fullscreen.xml +++ b/app/src/main/res/drawable/ic_fullscreen.xml @@ -1,7 +1,7 @@ 30 + + @string/aspect_ratio + @string/auto_rotation + @string/landscape + @string/portrait + + + ratio + auto + landscape + portrait + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 16f5c7da0..0cc5687a2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -143,7 +143,7 @@ You are running the latest version. Default playback speed Advanced - Audio and video + Player Adjust the app to your liking. Downloads, history Live @@ -215,4 +215,10 @@ Choose an auth instance Auto GitHub + Audio and video + Fullscreen orientation + Video aspect ratio + Auto rotation + Landscape + Portrait \ No newline at end of file diff --git a/app/src/main/res/xml/player_settings.xml b/app/src/main/res/xml/player_settings.xml index b7f9ed9a9..54e72029b 100644 --- a/app/src/main/res/xml/player_settings.xml +++ b/app/src/main/res/xml/player_settings.xml @@ -24,7 +24,7 @@ - + + + + + + + \ No newline at end of file From e0147cbaadf56222be573503d4f9f982c325f864 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 4 Jul 2022 21:30:13 +0200 Subject: [PATCH 2/5] small improvements --- .../java/com/github/libretube/fragments/PlayerFragment.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 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 f400815a5..921ef49d8 100644 --- a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt @@ -285,11 +285,13 @@ class PlayerFragment : Fragment() { val mainActivity = activity as MainActivity val fullscreenOrientationPref = PreferenceHelper - .getString(requireContext(), "fullscreen_rotation", "ratio") - val orientation = when(fullscreenOrientationPref) { + .getString(requireContext(), "fullscreen_orientation", "ratio") + Log.e(TAG, fullscreenOrientationPref.toString()) + val orientation = when (fullscreenOrientationPref) { "ratio" -> { val videoSize = exoPlayer.videoSize // probably a youtube shorts video + Log.e(TAG, videoSize.height.toString() + " " + videoSize.width.toString()) if (videoSize.height > videoSize.width) ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT // a video with normal aspect ratio else ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE @@ -299,7 +301,7 @@ class PlayerFragment : Fragment() { "portrait" -> ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT else -> ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE } - mainActivity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT + mainActivity.requestedOrientation = orientation } else { // leave fullscreen mode with(binding.playerMotionLayout) { From d5eaaeaa191770a67d7053da6235884940beec69 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 4 Jul 2022 21:44:42 +0200 Subject: [PATCH 3/5] improve syntax --- .../java/com/github/libretube/fragments/PlayerFragment.kt | 2 ++ app/src/main/res/layout/exo_styled_player_control_view.xml | 7 ++++--- 2 files changed, 6 insertions(+), 3 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 921ef49d8..c8847ed15 100644 --- a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt @@ -706,6 +706,7 @@ class PlayerFragment : Fragment() { } } + /* override fun onVideoSizeChanged( videoSize: VideoSize ) { @@ -720,6 +721,7 @@ class PlayerFragment : Fragment() { } binding.mainContainer.requestLayout() } + */ @Deprecated(message = "Deprecated", level = DeprecationLevel.HIDDEN) override fun onPlayerStateChanged( 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 c9f22c358..1c8f4c566 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 @@ -240,13 +240,14 @@ android:id="@id/exo_rew_with_amount" style="@style/ExoStyledControls.Button.Center.RewWithAmount" android:layout_gravity="center" - android:layout_marginLeft="20dp" /> + android:layout_marginStart="20dp" /> + style="@style/ExoStyledControls.Button.Center.PlayPause" + app:tint="@android:color/white" /> + android:layout_marginEnd="20dp" /> From 9e0f7fa204fd4b1be48e37620b2365c82385a3d6 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 4 Jul 2022 21:51:35 +0200 Subject: [PATCH 4/5] fix seek button --- .../java/com/github/libretube/fragments/PlayerFragment.kt | 2 -- app/src/main/res/layout/exo_styled_player_control_view.xml | 4 ++++ 2 files changed, 4 insertions(+), 2 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 c8847ed15..e0da046ac 100644 --- a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt @@ -21,7 +21,6 @@ import android.view.View import android.view.ViewGroup import android.widget.Toast import androidx.constraintlayout.motion.widget.MotionLayout -import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.net.toUri import androidx.core.os.bundleOf import androidx.core.view.isVisible @@ -76,7 +75,6 @@ import com.google.android.exoplayer2.upstream.DataSource import com.google.android.exoplayer2.upstream.DefaultDataSource import com.google.android.exoplayer2.upstream.DefaultHttpDataSource import com.google.android.exoplayer2.util.RepeatModeUtil -import com.google.android.exoplayer2.video.VideoSize import com.google.android.material.button.MaterialButton import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.squareup.picasso.Picasso 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 1c8f4c566..86a04a71f 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 @@ -240,6 +240,8 @@ android:id="@id/exo_rew_with_amount" style="@style/ExoStyledControls.Button.Center.RewWithAmount" android:layout_gravity="center" + android:paddingLeft="4dp" + android:paddingRight="4dp" android:layout_marginStart="20dp" /> @@ -259,6 +261,8 @@ android:id="@id/exo_ffwd_with_amount" style="@style/ExoStyledControls.Button.Center.FfwdWithAmount" android:layout_gravity="center" + android:paddingLeft="4dp" + android:paddingRight="4dp" android:layout_marginEnd="20dp" /> From d42d380e1b1e4e3b8bf161e823ef057141b0b63a Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 4 Jul 2022 21:51:58 +0200 Subject: [PATCH 5/5] format --- .../main/res/layout/exo_styled_player_control_view.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 86a04a71f..b9d23d34b 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 @@ -240,9 +240,9 @@ android:id="@id/exo_rew_with_amount" style="@style/ExoStyledControls.Button.Center.RewWithAmount" android:layout_gravity="center" + android:layout_marginStart="20dp" android:paddingLeft="4dp" - android:paddingRight="4dp" - android:layout_marginStart="20dp" /> + android:paddingRight="4dp" /> @@ -261,9 +261,9 @@ android:id="@id/exo_ffwd_with_amount" style="@style/ExoStyledControls.Button.Center.FfwdWithAmount" android:layout_gravity="center" + android:layout_marginEnd="20dp" android:paddingLeft="4dp" - android:paddingRight="4dp" - android:layout_marginEnd="20dp" /> + android:paddingRight="4dp" />