From 894696d61ecf2f05ebff96c9bbbd420c0c1fa41f Mon Sep 17 00:00:00 2001 From: Bill Lin Date: Tue, 30 Mar 2021 01:07:28 +0800 Subject: Dispatch newDisplayLayout in updateDisplayLayout() directly Empty DisplayLayout do not contain navigation bar height Bug : Cold boot and set 3 Button NavBar Mode, observe one handed mode can not trigger Recovery step : Rotate once and the gesture become activate Fixes: 183951120 Test: create forest and flash ROM, set NavBar 3 Button Mode. Test: atest WMShellUnitTests Change-Id: I930216719f77d0e15d46790e02b788ce9cd80e98 --- .../src/com/android/wm/shell/onehanded/OneHandedController.java | 6 +++--- .../src/com/android/wm/shell/onehanded/OneHandedGestureHandler.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java index 7965a80deead..8bbc35fa7c61 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java @@ -403,9 +403,9 @@ public class OneHandedController implements RemoteCallable } private void updateDisplayLayout(int displayId) { - mDisplayAreaOrganizer.setDisplayLayout( - mDisplayController.getDisplayLayout(displayId)); - mGestureHandler.onDisplayChanged(mDisplayAreaOrganizer.getDisplayLayout()); + final DisplayLayout newDisplayLayout = mDisplayController.getDisplayLayout(displayId); + mDisplayAreaOrganizer.setDisplayLayout(newDisplayLayout); + mGestureHandler.onDisplayChanged(newDisplayLayout); } private ContentObserver getObserver(Runnable onChangeRunnable) { diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedGestureHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedGestureHandler.java index 495362a3eef7..9e83a61667b2 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedGestureHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedGestureHandler.java @@ -63,7 +63,7 @@ public class OneHandedGestureHandler implements OneHandedTransitionCallback { private boolean mIsEnabled; private int mNavGestureHeight; private boolean mIsThreeButtonModeEnabled; - private int mRotation; + private int mRotation = Surface.ROTATION_0; @VisibleForTesting InputMonitor mInputMonitor; -- cgit v1.2.3-59-g8ed1b