Remove possible memory leak on compat ui layer
Before removing a compat ui component we need to release it. Avoiding this can cause memory leaks. Fix: 290436141 Test: Run `atest WMShellUnitTests:CompatUIControllerTest` Change-Id: I32b46cdc2f96065f57948f1a7c780dcadbee8b42
This commit is contained in:
@@ -342,6 +342,7 @@ public class CompatUIController implements OnDisplaysChangedListener,
|
||||
if (!mActiveLetterboxEduLayout.updateCompatInfo(taskInfo, taskListener,
|
||||
showOnDisplay(mActiveLetterboxEduLayout.getDisplayId()))) {
|
||||
// The layout is no longer eligible to be shown, clear active layout.
|
||||
mActiveLetterboxEduLayout.release();
|
||||
mActiveLetterboxEduLayout = null;
|
||||
}
|
||||
return;
|
||||
@@ -371,15 +372,9 @@ public class CompatUIController implements OnDisplaysChangedListener,
|
||||
ShellTaskOrganizer.TaskListener taskListener) {
|
||||
return new LetterboxEduWindowManager(context, taskInfo,
|
||||
mSyncQueue, taskListener, mDisplayController.getDisplayLayout(taskInfo.displayId),
|
||||
mTransitionsLazy.get(), this::onLetterboxEduDismissed, mDockStateReader,
|
||||
mCompatUIConfiguration);
|
||||
}
|
||||
|
||||
private void onLetterboxEduDismissed(
|
||||
Pair<TaskInfo, ShellTaskOrganizer.TaskListener> stateInfo) {
|
||||
mActiveLetterboxEduLayout = null;
|
||||
// We need to update the UI
|
||||
createOrUpdateReachabilityEduLayout(stateInfo.first, stateInfo.second);
|
||||
mTransitionsLazy.get(),
|
||||
stateInfo -> createOrUpdateReachabilityEduLayout(stateInfo.first, stateInfo.second),
|
||||
mDockStateReader, mCompatUIConfiguration);
|
||||
}
|
||||
|
||||
private void createOrUpdateRestartDialogLayout(TaskInfo taskInfo,
|
||||
@@ -448,6 +443,7 @@ public class CompatUIController implements OnDisplaysChangedListener,
|
||||
if (!mActiveReachabilityEduLayout.updateCompatInfo(taskInfo, taskListener,
|
||||
showOnDisplay(mActiveReachabilityEduLayout.getDisplayId()))) {
|
||||
// The layout is no longer eligible to be shown, remove from active layouts.
|
||||
mActiveReachabilityEduLayout.release();
|
||||
mActiveReachabilityEduLayout = null;
|
||||
}
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user