diff options
| author | 2019-06-14 09:31:46 -0700 | |
|---|---|---|
| committer | 2019-06-14 19:49:55 -0700 | |
| commit | 316f67371b08e78a88703facce7fe6e8bf02d94d (patch) | |
| tree | 22649c071b942cc5b5524448b10534ff2888d9f4 | |
| parent | 471a6643753b3ce9fa7573032c81d4b6fb2b0688 (diff) | |
Update the edge back gesture width from the current user's overlays
- Also add some logging about the back gesture state
Bug: 135212748
Test: Switch to secondary user while first user is in 2/3 button and ensure
secondary user back works
Change-Id: I0b144f8dc7c4818056068696b8fad5a6611515b9
3 files changed, 26 insertions, 8 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/EdgeBackGestureHandler.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/EdgeBackGestureHandler.java index 38ff468304b7..cc0bc5f160e4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/EdgeBackGestureHandler.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/EdgeBackGestureHandler.java @@ -57,6 +57,7 @@ import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.shared.system.WindowManagerWrapper; +import java.io.PrintWriter; import java.util.concurrent.Executor; /** @@ -118,7 +119,7 @@ public class EdgeBackGestureHandler implements DisplayListener { private final Region mExcludeRegion = new Region(); // The edge width where touch down is allowed - private final int mEdgeWidth; + private int mEdgeWidth; // The slop to distinguish between horizontal and vertical motion private final float mTouchSlop; // Duration after which we consider the event as longpress. @@ -163,10 +164,6 @@ public class EdgeBackGestureHandler implements DisplayListener { mWm = context.getSystemService(WindowManager.class); mOverviewProxyService = overviewProxyService; - // TODO: Get this for the current user - mEdgeWidth = res.getDimensionPixelSize( - com.android.internal.R.dimen.config_backGestureInset); - // Reduce the default touch slop to ensure that we can intercept the gesture // before the app starts to react to it. // TODO(b/130352502) Tune this value and extract into a constant @@ -176,6 +173,12 @@ public class EdgeBackGestureHandler implements DisplayListener { mNavBarHeight = res.getDimensionPixelSize(R.dimen.navigation_bar_frame_height); mMinArrowPosition = res.getDimensionPixelSize(R.dimen.navigation_edge_arrow_min_y); mFingerOffset = res.getDimensionPixelSize(R.dimen.navigation_edge_finger_offset); + updateCurrentUserResources(res); + } + + public void updateCurrentUserResources(Resources res) { + mEdgeWidth = res.getDimensionPixelSize( + com.android.internal.R.dimen.config_backGestureInset); } /** @@ -194,9 +197,10 @@ public class EdgeBackGestureHandler implements DisplayListener { updateIsEnabled(); } - public void onNavigationModeChanged(int mode) { + public void onNavigationModeChanged(int mode, Context currentUserContext) { mIsGesturalModeEnabled = QuickStepContract.isGesturalMode(mode); updateIsEnabled(); + updateCurrentUserResources(currentUserContext.getResources()); } private void disposeInputChannel() { @@ -270,6 +274,8 @@ public class EdgeBackGestureHandler implements DisplayListener { | WindowManager.LayoutParams.FLAG_SPLIT_TOUCH | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, PixelFormat.TRANSLUCENT); + mEdgePanelLp.privateFlags |= + WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS; mEdgePanelLp.setTitle(TAG + mDisplayId); mEdgePanelLp.accessibilityTitle = mContext.getString(R.string.nav_bar_edge_panel); mEdgePanelLp.windowAnimations = 0; @@ -449,6 +455,16 @@ public class EdgeBackGestureHandler implements DisplayListener { mRightInset = rightInset; } + public void dump(PrintWriter pw) { + pw.println("EdgeBackGestureHandler:"); + pw.println(" mIsEnabled=" + mIsEnabled); + pw.println(" mAllowGesture=" + mAllowGesture); + pw.println(" mExcludeRegion=" + mExcludeRegion); + pw.println(" mImeHeight=" + mImeHeight); + pw.println(" mIsAttached=" + mIsAttached); + pw.println(" mEdgeWidth=" + mEdgeWidth); + } + class SysUiInputEventReceiver extends InputEventReceiver { SysUiInputEventReceiver(InputChannel channel, Looper looper) { super(channel, looper); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java index 90bce391c68d..ed486cdce665 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java @@ -772,9 +772,10 @@ public class NavigationBarView extends FrameLayout implements @Override public void onNavigationModeChanged(int mode) { + Context curUserCtx = Dependency.get(NavigationModeController.class).getCurrentUserContext(); mNavBarMode = mode; mBarTransitions.onNavigationModeChanged(mNavBarMode); - mEdgeBackGestureHandler.onNavigationModeChanged(mNavBarMode); + mEdgeBackGestureHandler.onNavigationModeChanged(mNavBarMode, curUserCtx); mRecentsOnboarding.onNavigationModeChanged(mNavBarMode); getRotateSuggestionButton().onNavigationModeChanged(mNavBarMode); @@ -1103,6 +1104,7 @@ public class NavigationBarView extends FrameLayout implements mContextualButtonGroup.dump(pw); mRecentsOnboarding.dump(pw); mTintController.dump(pw); + mEdgeBackGestureHandler.dump(pw); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationModeController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationModeController.java index 77eb469c4b29..11242201d893 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationModeController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationModeController.java @@ -224,7 +224,7 @@ public class NavigationModeController implements Dumpable { return mode; } - private Context getCurrentUserContext() { + public Context getCurrentUserContext() { int userId = ActivityManagerWrapper.getInstance().getCurrentUserId(); if (DEBUG) { Log.d(TAG, "getCurrentUserContext: contextUser=" + mContext.getUserId() |