[Android] VideoPlayer: Fix controls layout after rotation

Geoffrey Métais git at videolan.org
Fri Mar 30 16:51:17 CEST 2018


vlc-android | branch: 3.0.x | Geoffrey Métais <geoffrey.metais at gmail.com> | Mon Mar 19 16:13:41 2018 +0100| [5a6c4cddcb37b827c846d177fb967a77ef7b2fb5] | committer: Geoffrey Métais

VideoPlayer: Fix controls layout after rotation

(cherry picked from commit 17835234960be02daf9c606eac792bb0d84e48b2)

> https://code.videolan.org/videolan/vlc-android/commit/5a6c4cddcb37b827c846d177fb967a77ef7b2fb5
---

 .../videolan/vlc/gui/video/VideoPlayerActivity.java  | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java b/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
index 8fee58413..9cdfc97af 100644
--- a/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
+++ b/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
@@ -607,8 +607,7 @@ public class VideoPlayerActivity extends AppCompatActivity implements IVLCVout.C
 
     @Override
     public void onConfigurationChanged(Configuration newConfig) {
-        if (!AndroidUtil.isHoneycombOrLater)
-            changeSurfaceLayout();
+        if (!AndroidUtil.isHoneycombOrLater) changeSurfaceLayout();
         super.onConfigurationChanged(newConfig);
         getWindowManager().getDefaultDisplay().getMetrics(mScreen);
         mCurrentScreenOrientation = newConfig.orientation;
@@ -617,6 +616,7 @@ public class VideoPlayerActivity extends AppCompatActivity implements IVLCVout.C
         resetHudLayout();
     }
 
+    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
     public void resetHudLayout() {
         if (mHudBinding == null) return;
         final RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams)mHudBinding.playerOverlayButtons.getLayoutParams();
@@ -625,15 +625,13 @@ public class VideoPlayerActivity extends AppCompatActivity implements IVLCVout.C
                 orientation == ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT;
         final int endOf = AndroidUtil.isJellyBeanMR1OrLater ? RelativeLayout.END_OF : RelativeLayout.RIGHT_OF;
         final int startOf = AndroidUtil.isJellyBeanMR1OrLater ? RelativeLayout.START_OF : RelativeLayout.LEFT_OF;
-        if (portrait) {
-            layoutParams.addRule(RelativeLayout.BELOW, R.id.player_overlay_length);
-            layoutParams.addRule(endOf, 0);
-            layoutParams.addRule(startOf, 0);
-        } else {
-            layoutParams.addRule(RelativeLayout.BELOW, R.id.player_overlay_seekbar);
-            layoutParams.addRule(endOf, R.id.player_overlay_time);
-            layoutParams.addRule(startOf, R.id.player_overlay_length);
-        }
+        final int endAlign = AndroidUtil.isJellyBeanMR1OrLater ? RelativeLayout.ALIGN_PARENT_END : RelativeLayout.ALIGN_PARENT_RIGHT;
+        final int startAlign = AndroidUtil.isJellyBeanMR1OrLater ? RelativeLayout.ALIGN_PARENT_START : RelativeLayout.ALIGN_PARENT_LEFT;
+        layoutParams.addRule(startAlign, portrait ? 1 : 0);
+        layoutParams.addRule(endAlign, portrait ? 1 : 0);
+        layoutParams.addRule(RelativeLayout.BELOW, portrait ? R.id.player_overlay_length : R.id.player_overlay_seekbar);
+        layoutParams.addRule(endOf, portrait ? 0 : R.id.player_overlay_time);
+        layoutParams.addRule(startOf, portrait ? 0 : R.id.player_overlay_length);
         mHudBinding.playerOverlayButtons.setLayoutParams(layoutParams);
     }
 



More information about the Android mailing list