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..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 @@ -284,7 +282,24 @@ class PlayerFragment : Fragment() { scaleFactor = 1.3F val mainActivity = activity as MainActivity - mainActivity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE + val fullscreenOrientationPref = PreferenceHelper + .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 + } + "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 = orientation } else { // leave fullscreen mode with(binding.playerMotionLayout) { @@ -689,6 +704,7 @@ class PlayerFragment : Fragment() { } } + /* override fun onVideoSizeChanged( videoSize: VideoSize ) { @@ -703,6 +719,7 @@ class PlayerFragment : Fragment() { } binding.mainContainer.requestLayout() } + */ @Deprecated(message = "Deprecated", level = DeprecationLevel.HIDDEN) override fun onPlayerStateChanged( @@ -1214,7 +1231,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 @@ + android:layout_marginStart="20dp" + android:paddingLeft="4dp" + android:paddingRight="4dp" /> + style="@style/ExoStyledControls.Button.Center.PlayPause" + app:tint="@android:color/white" /> + android:layout_marginEnd="20dp" + android:paddingLeft="4dp" + android:paddingRight="4dp" /> diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml index a8fc4a639..d74739d74 100644 --- a/app/src/main/res/values/array.xml +++ b/app/src/main/res/values/array.xml @@ -694,4 +694,17 @@ 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