commit | 289b18f9aaa8107affaa934be6525bf3ef380dac | [log] [tgz] |
---|---|---|
author | TreeHugger Robot <treehugger-gerrit@google.com> | Wed Aug 03 12:09:51 2022 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Wed Aug 03 12:09:51 2022 +0000 |
tree | 2e88e4b4de67ffd6ec4a31b2feaf1d7f71f99d9b | |
parent | 42efa4976d29b9f1f2ae0fe7315083e4ab5c47f6 [diff] | |
parent | cf7e8cb01f2c7d4cbe68e5539b0ccf09c59b72a7 [diff] |
Merge "Fix leakage of pointer location" into tm-qpr-dev am: 7f96bd5a88 am: cf7e8cb01f Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19465302 Change-Id: If05f18ea210d4d6d1c800cf079f0ecfb06c28290 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/core/java/com/android/internal/widget/PointerLocationView.java b/core/java/com/android/internal/widget/PointerLocationView.java index 09ff4e0..9ee9b82 100644 --- a/core/java/com/android/internal/widget/PointerLocationView.java +++ b/core/java/com/android/internal/widget/PointerLocationView.java
@@ -828,6 +828,8 @@ mSystemGestureExclusionListener, mContext.getDisplayId()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); + } catch (IllegalArgumentException e) { + Log.e(TAG, "Failed to unregister window manager callbacks", e); } }
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java index 7aa0541..7b4189b 100644 --- a/services/core/java/com/android/server/wm/DisplayPolicy.java +++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -2933,7 +2933,10 @@ return; } - mDisplayContent.unregisterPointerEventListener(mPointerLocationView); + if (!mDisplayContent.isRemoved()) { + mDisplayContent.unregisterPointerEventListener(mPointerLocationView); + } + final WindowManager wm = mContext.getSystemService(WindowManager.class); wm.removeView(mPointerLocationView); mPointerLocationView = null; @@ -2958,6 +2961,9 @@ mHandler.post(mGestureNavigationSettingsObserver::unregister); mHandler.post(mForceShowNavBarSettingsObserver::unregister); mImmersiveModeConfirmation.release(); + if (mService.mPointerLocationEnabled) { + setPointerLocationEnabled(false); + } } @VisibleForTesting