Merge pull request #687 from Bnyro/master

Fullscreen Player Rotation + UI fixes
This commit is contained in:
Bnyro 2022-07-04 21:53:28 +02:00 committed by GitHub
commit 6c30959ddb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 64 additions and 10 deletions

View File

@ -21,7 +21,6 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Toast import android.widget.Toast
import androidx.constraintlayout.motion.widget.MotionLayout import androidx.constraintlayout.motion.widget.MotionLayout
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.net.toUri import androidx.core.net.toUri
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.core.view.isVisible 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.DefaultDataSource
import com.google.android.exoplayer2.upstream.DefaultHttpDataSource import com.google.android.exoplayer2.upstream.DefaultHttpDataSource
import com.google.android.exoplayer2.util.RepeatModeUtil 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.button.MaterialButton
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.squareup.picasso.Picasso import com.squareup.picasso.Picasso
@ -284,7 +282,24 @@ class PlayerFragment : Fragment() {
scaleFactor = 1.3F scaleFactor = 1.3F
val mainActivity = activity as MainActivity 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 { } else {
// leave fullscreen mode // leave fullscreen mode
with(binding.playerMotionLayout) { with(binding.playerMotionLayout) {
@ -689,6 +704,7 @@ class PlayerFragment : Fragment() {
} }
} }
/*
override fun onVideoSizeChanged( override fun onVideoSizeChanged(
videoSize: VideoSize videoSize: VideoSize
) { ) {
@ -703,6 +719,7 @@ class PlayerFragment : Fragment() {
} }
binding.mainContainer.requestLayout() binding.mainContainer.requestLayout()
} }
*/
@Deprecated(message = "Deprecated", level = DeprecationLevel.HIDDEN) @Deprecated(message = "Deprecated", level = DeprecationLevel.HIDDEN)
override fun onPlayerStateChanged( override fun onPlayerStateChanged(
@ -1214,7 +1231,7 @@ class PlayerFragment : Fragment() {
enableTransition(R.id.yt_transition, false) enableTransition(R.id.yt_transition, false)
} }
binding.mainContainer.isClickable = true binding.mainContainer.isClickable = true
val mainActivity = activity as MainActivity val mainActivity = activity as MainActivity
mainActivity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT mainActivity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT
isFullScreen = false isFullScreen = false

View File

@ -1,7 +1,7 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"
android:tint="@android:color/white" android:tint="?android:attr/colorControlNormal"
android:viewportWidth="24" android:viewportWidth="24"
android:viewportHeight="24"> android:viewportHeight="24">
<path <path

View File

@ -240,13 +240,16 @@
android:id="@id/exo_rew_with_amount" android:id="@id/exo_rew_with_amount"
style="@style/ExoStyledControls.Button.Center.RewWithAmount" style="@style/ExoStyledControls.Button.Center.RewWithAmount"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginLeft="20dp" /> android:layout_marginStart="20dp"
android:paddingLeft="4dp"
android:paddingRight="4dp" />
</LinearLayout> </LinearLayout>
<ImageButton <ImageButton
android:id="@id/exo_play_pause" android:id="@id/exo_play_pause"
style="@style/ExoStyledControls.Button.Center.PlayPause" /> style="@style/ExoStyledControls.Button.Center.PlayPause"
app:tint="@android:color/white" />
<LinearLayout <LinearLayout
android:layout_width="0dp" android:layout_width="0dp"
@ -258,7 +261,9 @@
android:id="@id/exo_ffwd_with_amount" android:id="@id/exo_ffwd_with_amount"
style="@style/ExoStyledControls.Button.Center.FfwdWithAmount" style="@style/ExoStyledControls.Button.Center.FfwdWithAmount"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginRight="20dp" /> android:layout_marginEnd="20dp"
android:paddingLeft="4dp"
android:paddingRight="4dp" />
</LinearLayout> </LinearLayout>

View File

@ -694,4 +694,17 @@
<item>30</item> <item>30</item>
</string-array> </string-array>
<string-array name="fullscreenOrientation">
<item>@string/aspect_ratio</item>
<item>@string/auto_rotation</item>
<item>@string/landscape</item>
<item>@string/portrait</item>
</string-array>
<string-array name="fullscreenOrientationValues">
<item>ratio</item>
<item>auto</item>
<item>landscape</item>
<item>portrait</item>
</string-array>
</resources> </resources>

View File

@ -143,7 +143,7 @@
<string name="no_update_available">You are running the latest version.</string> <string name="no_update_available">You are running the latest version.</string>
<string name="playback_speed">Default playback speed</string> <string name="playback_speed">Default playback speed</string>
<string name="advanced">Advanced</string> <string name="advanced">Advanced</string>
<string name="player">Audio and video</string> <string name="player">Player</string>
<string name="appearance_summary">Adjust the app to your liking.</string> <string name="appearance_summary">Adjust the app to your liking.</string>
<string name="advanced_summary">Downloads, history</string> <string name="advanced_summary">Downloads, history</string>
<string name="live">Live</string> <string name="live">Live</string>
@ -215,4 +215,10 @@
<string name="auth_instances">Choose an auth instance</string> <string name="auth_instances">Choose an auth instance</string>
<string name="hls">Auto</string> <string name="hls">Auto</string>
<string name="github">GitHub</string> <string name="github">GitHub</string>
<string name="audio_video">Audio and video</string>
<string name="fullscreen_orientation">Fullscreen orientation</string>
<string name="aspect_ratio">Video aspect ratio</string>
<string name="auto_rotation">Auto rotation</string>
<string name="landscape">Landscape</string>
<string name="portrait">Portrait</string>
</resources> </resources>

View File

@ -24,7 +24,7 @@
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory app:title="@string/behavior"> <PreferenceCategory app:title="@string/player">
<ListPreference <ListPreference
android:icon="@drawable/ic_speed" android:icon="@drawable/ic_speed"
@ -53,6 +53,10 @@
app:summary="@string/buffering_goal_summary" app:summary="@string/buffering_goal_summary"
app:title="@string/buffering_goal" /> app:title="@string/buffering_goal" />
</PreferenceCategory>
<PreferenceCategory app:title="@string/behavior">
<SwitchPreferenceCompat <SwitchPreferenceCompat
android:icon="@drawable/ic_play_filled" android:icon="@drawable/ic_play_filled"
android:summary="@string/autoplay_summary" android:summary="@string/autoplay_summary"
@ -65,6 +69,15 @@
app:key="pause_screen_off" app:key="pause_screen_off"
app:title="@string/pauseOnScreenOff" /> app:title="@string/pauseOnScreenOff" />
<ListPreference
android:icon="@drawable/ic_fullscreen"
app:defaultValue="ratio"
app:entries="@array/fullscreenOrientation"
app:entryValues="@array/fullscreenOrientationValues"
app:key="fullscreen_orientation"
app:title="@string/fullscreen_orientation"
app:useSimpleSummaryProvider="true" />
</PreferenceCategory> </PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>