From a0c149fc8d6603b605378ddc5862d6b2c4f8bf06 Mon Sep 17 00:00:00 2001 From: Alex Chau Date: Mon, 9 Oct 2023 14:28:59 +0100 Subject: [PATCH] Use mock TaskStackChangeListeners in RecentsModelTest - Also unregistered TaskStackChangeListeners and TaskIconCache listeners in RecentsModel.close(), so clean-up will happen if it's in a SandboxContext Bug: 303259446 Test: RecentsModelTest Change-Id: I438a499be8e737de7df79b670ecfd26f0ee70662 --- .../src/com/android/quickstep/RecentsModel.java | 14 ++++++++++---- .../com/android/quickstep/RecentsModelTest.java | 3 ++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/quickstep/src/com/android/quickstep/RecentsModel.java b/quickstep/src/com/android/quickstep/RecentsModel.java index e358a8e8fc..89351aa2d2 100644 --- a/quickstep/src/com/android/quickstep/RecentsModel.java +++ b/quickstep/src/com/android/quickstep/RecentsModel.java @@ -78,6 +78,8 @@ public class RecentsModel implements IconChangeListener, TaskStackChangeListener private final TaskThumbnailCache mThumbnailCache; private final ComponentCallbacks mCallbacks; + private final TaskStackChangeListeners mTaskStackChangeListeners; + private RecentsModel(Context context) { this(context, new IconProvider(context)); } @@ -89,13 +91,14 @@ public class RecentsModel implements IconChangeListener, TaskStackChangeListener SystemUiProxy.INSTANCE.get(context)), new TaskIconCache(context, RECENTS_MODEL_EXECUTOR, iconProvider), new TaskThumbnailCache(context, RECENTS_MODEL_EXECUTOR), - iconProvider); + iconProvider, + TaskStackChangeListeners.getInstance()); } @VisibleForTesting RecentsModel(Context context, RecentTasksList taskList, TaskIconCache iconCache, - TaskThumbnailCache thumbnailCache, - IconProvider iconProvider) { + TaskThumbnailCache thumbnailCache, IconProvider iconProvider, + TaskStackChangeListeners taskStackChangeListeners) { mContext = context; mTaskList = taskList; mIconCache = iconCache; @@ -117,7 +120,8 @@ public class RecentsModel implements IconChangeListener, TaskStackChangeListener mCallbacks = null; } - TaskStackChangeListeners.getInstance().registerTaskStackListener(this); + mTaskStackChangeListeners = taskStackChangeListeners; + mTaskStackChangeListeners.registerTaskStackListener(this); iconProvider.registerIconChangeListener(this, MAIN_EXECUTOR.getHandler()); } @@ -358,6 +362,8 @@ public class RecentsModel implements IconChangeListener, TaskStackChangeListener if (mCallbacks != null) { mContext.unregisterComponentCallbacks(mCallbacks); } + mIconCache.removeTaskVisualsChangeListener(); + mTaskStackChangeListeners.unregisterTaskStackListener(this); } /** diff --git a/quickstep/tests/src/com/android/quickstep/RecentsModelTest.java b/quickstep/tests/src/com/android/quickstep/RecentsModelTest.java index 08e08988bf..c552d83400 100644 --- a/quickstep/tests/src/com/android/quickstep/RecentsModelTest.java +++ b/quickstep/tests/src/com/android/quickstep/RecentsModelTest.java @@ -42,6 +42,7 @@ import com.android.launcher3.R; import com.android.launcher3.icons.IconProvider; import com.android.quickstep.util.GroupTask; import com.android.systemui.shared.recents.model.Task; +import com.android.systemui.shared.system.TaskStackChangeListeners; import org.junit.After; import org.junit.Before; @@ -93,7 +94,7 @@ public class RecentsModelTest { when(mThumbnailCache.isPreloadingEnabled()).thenReturn(true); mRecentsModel = new RecentsModel(mContext, mTasksList, mock(TaskIconCache.class), - mThumbnailCache, mock(IconProvider.class)); + mThumbnailCache, mock(IconProvider.class), mock(TaskStackChangeListeners.class)); mResource = mock(Resources.class); when(mResource.getInteger((R.integer.recentsThumbnailCacheSize))).thenReturn(3);