Loading quickstep/src/com/android/quickstep/RecentTasksList.java +1 −5 Original line number Original line Diff line number Diff line Loading @@ -119,12 +119,8 @@ public class RecentTasksList extends TaskStackChangeListener { } } @Override @Override public synchronized void onTaskStackChanged() { public void onRecentTaskListUpdated() { mChangeId++; mChangeId++; } @Override public void onTaskRemoved(int taskId) { mTasks = loadTasksInBackground(Integer.MAX_VALUE, false); mTasks = loadTasksInBackground(Integer.MAX_VALUE, false); } } Loading quickstep/src/com/android/quickstep/RecentsModel.java +13 −12 Original line number Original line Diff line number Diff line Loading @@ -16,15 +16,12 @@ package com.android.quickstep; package com.android.quickstep; import static com.android.quickstep.TaskUtils.checkCurrentOrManagedUserId; import static com.android.quickstep.TaskUtils.checkCurrentOrManagedUserId; import static com.android.systemui.shared.system.QuickStepContract.KEY_EXTRA_SUPPORTS_WINDOW_CORNERS; import static com.android.systemui.shared.system.QuickStepContract.KEY_EXTRA_WINDOW_CORNER_RADIUS; import android.annotation.TargetApi; import android.annotation.TargetApi; import android.app.ActivityManager; import android.app.ActivityManager; import android.content.ComponentCallbacks2; import android.content.ComponentCallbacks2; import android.content.Context; import android.content.Context; import android.os.Build; import android.os.Build; import android.os.Bundle; import android.os.HandlerThread; import android.os.HandlerThread; import android.os.Process; import android.os.Process; import android.os.RemoteException; import android.os.RemoteException; Loading @@ -36,12 +33,11 @@ import com.android.systemui.shared.recents.ISystemUiProxy; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.BackgroundExecutor; import com.android.systemui.shared.system.KeyguardManagerCompat; import com.android.systemui.shared.system.KeyguardManagerCompat; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.shared.system.TaskStackChangeListener; import com.android.systemui.shared.system.TaskStackChangeListener; import java.util.ArrayList; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.List; import java.util.function.Consumer; import java.util.function.Consumer; Loading Loading @@ -132,7 +128,7 @@ public class RecentsModel extends TaskStackChangeListener { } } @Override @Override public void onTaskStackChangedBackground() { public void onRecentTaskListUpdated() { if (!mThumbnailCache.isPreloadingEnabled()) { if (!mThumbnailCache.isPreloadingEnabled()) { // Skip if we aren't preloading // Skip if we aren't preloading return; return; Loading @@ -147,7 +143,11 @@ public class RecentsModel extends TaskStackChangeListener { // Keep the cache up to date with the latest thumbnails // Keep the cache up to date with the latest thumbnails int runningTaskId = RecentsModel.getRunningTaskId(); int runningTaskId = RecentsModel.getRunningTaskId(); mTaskList.getTaskKeys(mThumbnailCache.getCacheSize(), tasks -> { mTaskList.getTaskKeys(mThumbnailCache.getCacheSize(), tasks -> { Collection<Task.TaskKey> currentKeys = mThumbnailCache.getTaskKeys(); List<Task.TaskKey> newKeys = new ArrayList<>(currentKeys.size()); for (Task task : tasks) { for (Task task : tasks) { newKeys.add(task.key); if (task.key.id == runningTaskId) { if (task.key.id == runningTaskId) { // Skip the running task, it's not going to have an up-to-date snapshot by the // Skip the running task, it's not going to have an up-to-date snapshot by the // time the user next enters overview // time the user next enters overview Loading @@ -155,6 +155,13 @@ public class RecentsModel extends TaskStackChangeListener { } } mThumbnailCache.updateThumbnailInCache(task); mThumbnailCache.updateThumbnailInCache(task); } } // Remove all keys we had before but no longer are in recents now currentKeys.removeAll(newKeys); for (Task.TaskKey tk : currentKeys) { mThumbnailCache.remove(tk); } }); }); } } Loading @@ -170,12 +177,6 @@ public class RecentsModel extends TaskStackChangeListener { } } } } @Override public void onTaskRemoved(int taskId) { Task.TaskKey dummyKey = new Task.TaskKey(taskId, 0, null, null, 0, 0); mThumbnailCache.remove(dummyKey); } public void setSystemUiProxy(ISystemUiProxy systemUiProxy) { public void setSystemUiProxy(ISystemUiProxy systemUiProxy) { mSystemUiProxy = systemUiProxy; mSystemUiProxy = systemUiProxy; } } Loading quickstep/src/com/android/quickstep/TaskThumbnailCache.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -31,6 +31,7 @@ import com.android.systemui.shared.recents.model.TaskKeyLruCache; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.ActivityManagerWrapper; import java.util.ArrayList; import java.util.ArrayList; import java.util.Collection; import java.util.function.Consumer; import java.util.function.Consumer; public class TaskThumbnailCache { public class TaskThumbnailCache { Loading Loading @@ -179,6 +180,10 @@ public class TaskThumbnailCache { return request; return request; } } public Collection<TaskKey> getTaskKeys() { return mCache.getValues(); } /** /** * Clears the cache. * Clears the cache. */ */ Loading Loading
quickstep/src/com/android/quickstep/RecentTasksList.java +1 −5 Original line number Original line Diff line number Diff line Loading @@ -119,12 +119,8 @@ public class RecentTasksList extends TaskStackChangeListener { } } @Override @Override public synchronized void onTaskStackChanged() { public void onRecentTaskListUpdated() { mChangeId++; mChangeId++; } @Override public void onTaskRemoved(int taskId) { mTasks = loadTasksInBackground(Integer.MAX_VALUE, false); mTasks = loadTasksInBackground(Integer.MAX_VALUE, false); } } Loading
quickstep/src/com/android/quickstep/RecentsModel.java +13 −12 Original line number Original line Diff line number Diff line Loading @@ -16,15 +16,12 @@ package com.android.quickstep; package com.android.quickstep; import static com.android.quickstep.TaskUtils.checkCurrentOrManagedUserId; import static com.android.quickstep.TaskUtils.checkCurrentOrManagedUserId; import static com.android.systemui.shared.system.QuickStepContract.KEY_EXTRA_SUPPORTS_WINDOW_CORNERS; import static com.android.systemui.shared.system.QuickStepContract.KEY_EXTRA_WINDOW_CORNER_RADIUS; import android.annotation.TargetApi; import android.annotation.TargetApi; import android.app.ActivityManager; import android.app.ActivityManager; import android.content.ComponentCallbacks2; import android.content.ComponentCallbacks2; import android.content.Context; import android.content.Context; import android.os.Build; import android.os.Build; import android.os.Bundle; import android.os.HandlerThread; import android.os.HandlerThread; import android.os.Process; import android.os.Process; import android.os.RemoteException; import android.os.RemoteException; Loading @@ -36,12 +33,11 @@ import com.android.systemui.shared.recents.ISystemUiProxy; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.BackgroundExecutor; import com.android.systemui.shared.system.KeyguardManagerCompat; import com.android.systemui.shared.system.KeyguardManagerCompat; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.shared.system.TaskStackChangeListener; import com.android.systemui.shared.system.TaskStackChangeListener; import java.util.ArrayList; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.List; import java.util.function.Consumer; import java.util.function.Consumer; Loading Loading @@ -132,7 +128,7 @@ public class RecentsModel extends TaskStackChangeListener { } } @Override @Override public void onTaskStackChangedBackground() { public void onRecentTaskListUpdated() { if (!mThumbnailCache.isPreloadingEnabled()) { if (!mThumbnailCache.isPreloadingEnabled()) { // Skip if we aren't preloading // Skip if we aren't preloading return; return; Loading @@ -147,7 +143,11 @@ public class RecentsModel extends TaskStackChangeListener { // Keep the cache up to date with the latest thumbnails // Keep the cache up to date with the latest thumbnails int runningTaskId = RecentsModel.getRunningTaskId(); int runningTaskId = RecentsModel.getRunningTaskId(); mTaskList.getTaskKeys(mThumbnailCache.getCacheSize(), tasks -> { mTaskList.getTaskKeys(mThumbnailCache.getCacheSize(), tasks -> { Collection<Task.TaskKey> currentKeys = mThumbnailCache.getTaskKeys(); List<Task.TaskKey> newKeys = new ArrayList<>(currentKeys.size()); for (Task task : tasks) { for (Task task : tasks) { newKeys.add(task.key); if (task.key.id == runningTaskId) { if (task.key.id == runningTaskId) { // Skip the running task, it's not going to have an up-to-date snapshot by the // Skip the running task, it's not going to have an up-to-date snapshot by the // time the user next enters overview // time the user next enters overview Loading @@ -155,6 +155,13 @@ public class RecentsModel extends TaskStackChangeListener { } } mThumbnailCache.updateThumbnailInCache(task); mThumbnailCache.updateThumbnailInCache(task); } } // Remove all keys we had before but no longer are in recents now currentKeys.removeAll(newKeys); for (Task.TaskKey tk : currentKeys) { mThumbnailCache.remove(tk); } }); }); } } Loading @@ -170,12 +177,6 @@ public class RecentsModel extends TaskStackChangeListener { } } } } @Override public void onTaskRemoved(int taskId) { Task.TaskKey dummyKey = new Task.TaskKey(taskId, 0, null, null, 0, 0); mThumbnailCache.remove(dummyKey); } public void setSystemUiProxy(ISystemUiProxy systemUiProxy) { public void setSystemUiProxy(ISystemUiProxy systemUiProxy) { mSystemUiProxy = systemUiProxy; mSystemUiProxy = systemUiProxy; } } Loading
quickstep/src/com/android/quickstep/TaskThumbnailCache.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -31,6 +31,7 @@ import com.android.systemui.shared.recents.model.TaskKeyLruCache; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.recents.model.ThumbnailData; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.ActivityManagerWrapper; import java.util.ArrayList; import java.util.ArrayList; import java.util.Collection; import java.util.function.Consumer; import java.util.function.Consumer; public class TaskThumbnailCache { public class TaskThumbnailCache { Loading Loading @@ -179,6 +180,10 @@ public class TaskThumbnailCache { return request; return request; } } public Collection<TaskKey> getTaskKeys() { return mCache.getValues(); } /** /** * Clears the cache. * Clears the cache. */ */ Loading