commit | 4f490c581c5f46eef7e84062f19cfb37cafdce48 | [log] [tgz] |
---|---|---|
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | Sat Mar 30 01:48:10 2024 +0000 |
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | Sat Mar 30 01:48:10 2024 +0000 |
tree | c5d259baf22e339421b8cd4343a07e6d15b60872 | |
parent | 2022c070a1bb4655aeaf1ba79af41af6b770fe64 [diff] | |
parent | 9b772df2a5ae9db5cf67f2354a34f592953eab72 [diff] |
Merge "Fix the memory leak caused by the accessibility menu in SystemUI" into main
diff --git a/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/AccessibilityMenuService.java b/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/AccessibilityMenuService.java index 085fc29..b05d2ae 100644 --- a/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/AccessibilityMenuService.java +++ b/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/AccessibilityMenuService.java
@@ -387,6 +387,10 @@ unregisterReceiver(mToggleMenuReceiver); mPrefs.unregisterOnSharedPreferenceChangeListener(mSharedPreferenceChangeListener); sInitialized = false; + if (mA11yMenuLayout != null) { + mA11yMenuLayout.clearLayout(); + mA11yMenuLayout = null; + } return super.onUnbind(intent); }
diff --git a/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuOverlayLayout.java b/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuOverlayLayout.java index edd6a48..1be04f8 100644 --- a/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuOverlayLayout.java +++ b/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuOverlayLayout.java
@@ -151,6 +151,14 @@ return mLayout; } + public void clearLayout() { + if (mLayout != null) { + mWindowManager.removeView(mLayout); + mLayout.setOnTouchListener(null); + mLayout = null; + } + } + /** Updates view layout with new layout parameters only. */ public void updateViewLayout() { if (mLayout == null || mLayoutParameter == null) {