Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a0c149fc authored by Alex Chau's avatar Alex Chau
Browse files

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
parent 5a7e0f4c
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -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);
    }

    /**
+2 −1
Original line number Diff line number Diff line
@@ -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);