Hiding controls when orientation changes to landscape

This commit is contained in:
Avently 2020-09-15 22:10:38 +03:00
parent a5312c1341
commit 5ada0ae2c7
3 changed files with 15 additions and 6 deletions

View File

@ -2105,7 +2105,6 @@ public class VideoDetailFragment
// Let's give a user time to look at video information page if video is not playing // Let's give a user time to look at video information page if video is not playing
if (orientationLocked && !player.isPlaying()) { if (orientationLocked && !player.isPlaying()) {
player.onPlay(); player.onPlay();
player.showControlsThenHide();
} }
} }

View File

@ -753,8 +753,16 @@ public class VideoPlayerImpl extends VideoPlayer
} }
isFullscreen = !isFullscreen; isFullscreen = !isFullscreen;
// Prevent applying windows insets twice (open vertical video to reproduce) if (!isFullscreen) {
getRootView().findViewById(R.id.playbackControlRoot).setPadding(0, 0, 0, 0); // Apply window insets because Android will not do it when orientation changes
// from landscape to portrait (open vertical video to reproduce)
getControlsRoot().setPadding(0, 0, 0, 0);
} else {
// Android needs tens milliseconds to send new insets but a user is able to see
// how controls changes it's position from `0` to `nav bar height` padding.
// So just hide the controls to hide this visual inconsistency
hideControls(0, 0);
}
fragmentListener.onFullscreenStateChanged(isFullscreen()); fragmentListener.onFullscreenStateChanged(isFullscreen());
} }
@ -1926,8 +1934,11 @@ public class VideoPlayerImpl extends VideoPlayer
public void setFragmentListener(final PlayerServiceEventListener listener) { public void setFragmentListener(final PlayerServiceEventListener listener) {
fragmentListener = listener; fragmentListener = listener;
fragmentIsVisible = true; fragmentIsVisible = true;
// Prevent applying windows insets twice // Apply window insets because Android will not do it when orientation changes
getRootView().findViewById(R.id.playbackControlRoot).setPadding(0, 0, 0, 0); // from landscape to portrait
if (!isFullscreen) {
getControlsRoot().setPadding(0, 0, 0, 0);
}
queueLayout.setPadding(0, 0, 0, 0); queueLayout.setPadding(0, 0, 0, 0);
updateMetadata(); updateMetadata();
updatePlayback(); updatePlayback();

View File

@ -20,7 +20,6 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="5" android:layout_weight="5"
android:fitsSystemWindows="true"
android:isScrollContainer="true"> android:isScrollContainer="true">
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout