From 2a1120fac4a0afed9da9c0cbddbfc2287ff0702b Mon Sep 17 00:00:00 2001 From: Charles Chen Date: Mon, 15 Mar 2021 20:35:45 +0800 Subject: Workaround to use System UI Context ... for SystemGesturesPointerEventListener This CL passes System UI Context to SystemGesturesPointerEventListener instead of System Context's DisplayContext because DisplayContext is not a UI context and violates IncorrectContextViolation when trying to access GestureDetector. Note that we should still migrate the usage to window context because it may still an issue if device can change its display metrics at runtime. [1] attempted to do so but hit performance issue b/181814478. [1]: 68c3024767a0ec62636e8440d261193984b3172b Bug: 177650348 Test: atest WmTests Change-Id: Ie7695270d2e2dd15c749c07c2bde2f6f98bc5b59 --- services/core/java/com/android/server/wm/DisplayPolicy.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java index 01f0359fa548..d929d50919c6 100644 --- a/services/core/java/com/android/server/wm/DisplayPolicy.java +++ b/services/core/java/com/android/server/wm/DisplayPolicy.java @@ -448,7 +448,8 @@ public class DisplayPolicy { final Looper looper = UiThread.getHandler().getLooper(); mHandler = new PolicyHandler(looper); - mSystemGestures = new SystemGesturesPointerEventListener(mContext, mHandler, + // TODO(b/181821798) Migrate SystemGesturesPointerEventListener to use window context. + mSystemGestures = new SystemGesturesPointerEventListener(mUiContext, mHandler, new SystemGesturesPointerEventListener.Callbacks() { @Override public void onSwipeFromTop() { -- cgit v1.2.3-59-g8ed1b