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

Commit e4974565 authored by Uwais Ashraf's avatar Uwais Ashraf Committed by Android (Google) Code Review
Browse files

Merge "Add TasksRepository" into main

parents 2de842b5 f6f34ca4
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -148,7 +148,7 @@ public final class KeyboardQuickSwitchController implements
        });
    }

    private void processLoadedTasks(ArrayList<GroupTask> tasks) {
    private void processLoadedTasks(List<GroupTask> tasks) {
        // Only store MAX_TASK tasks, from most to least recent
        Collections.reverse(tasks);
        mTasks = tasks.stream()
@@ -157,7 +157,7 @@ public final class KeyboardQuickSwitchController implements
        mNumHiddenTasks = Math.max(0, tasks.size() - MAX_TASKS);
    }

    private void processLoadedTasksOnDesktop(ArrayList<GroupTask> tasks) {
    private void processLoadedTasksOnDesktop(List<GroupTask> tasks) {
        // Find the single desktop task that contains a grouping of desktop tasks
        DesktopTask desktopTask = findDesktopTask(tasks);

@@ -173,7 +173,7 @@ public final class KeyboardQuickSwitchController implements
    }

    @Nullable
    private DesktopTask findDesktopTask(ArrayList<GroupTask> tasks) {
    private DesktopTask findDesktopTask(List<GroupTask> tasks) {
        return (DesktopTask) tasks.stream()
                .filter(t -> t instanceof DesktopTask)
                .findFirst()
+3 −1
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.os.Process;
import android.os.RemoteException;
import android.util.SparseBooleanArray;

import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;

import com.android.launcher3.util.LooperExecutor;
@@ -44,6 +45,7 @@ import com.android.wm.shell.util.GroupedRecentTaskInfo;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@@ -137,7 +139,7 @@ public class RecentTasksList {
     * @return The change id of the current task list
     */
    public synchronized int getTasks(boolean loadKeysOnly,
            Consumer<ArrayList<GroupTask>> callback, Predicate<GroupTask> filter) {
            @Nullable Consumer<List<GroupTask>> callback, Predicate<GroupTask> filter) {
        final int requestLoadId = mChangeId;
        if (mResultsUi.isValidForRequest(requestLoadId, loadKeysOnly)) {
            // The list is up to date, send the callback on the next frame,
+7 −4
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.os.Build;
import android.os.Process;
import android.os.UserHandle;

import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;

import com.android.launcher3.icons.IconProvider;
@@ -40,6 +41,7 @@ import com.android.launcher3.icons.IconProvider.IconChangeListener;
import com.android.launcher3.util.Executors.SimpleThreadFactory;
import com.android.launcher3.util.MainThreadInitializedObject;
import com.android.launcher3.util.SafeCloseable;
import com.android.quickstep.recents.data.RecentTasksDataSource;
import com.android.quickstep.util.GroupTask;
import com.android.quickstep.util.TaskVisualsChangeListener;
import com.android.systemui.shared.recents.model.Task;
@@ -60,8 +62,8 @@ import java.util.function.Predicate;
 * Singleton class to load and manage recents model.
 */
@TargetApi(Build.VERSION_CODES.O)
public class RecentsModel implements IconChangeListener, TaskStackChangeListener,
        TaskVisualsChangeListener, SafeCloseable {
public class RecentsModel implements RecentTasksDataSource, IconChangeListener,
        TaskStackChangeListener, TaskVisualsChangeListener, SafeCloseable {

    // We do not need any synchronization for this variable as its only written on UI thread.
    public static final MainThreadInitializedObject<RecentsModel> INSTANCE =
@@ -141,7 +143,8 @@ public class RecentsModel implements IconChangeListener, TaskStackChangeListener
     *                always called on the UI thread.
     * @return the request id associated with this call.
     */
    public int getTasks(Consumer<ArrayList<GroupTask>> callback) {
    @Override
    public int getTasks(@Nullable Consumer<List<GroupTask>> callback) {
        return mTaskList.getTasks(false /* loadKeysOnly */, callback,
                RecentsFilterState.DEFAULT_FILTER);
    }
@@ -155,7 +158,7 @@ public class RecentsModel implements IconChangeListener, TaskStackChangeListener
     *                callback.
     * @return the request id associated with this call.
     */
    public int getTasks(Consumer<ArrayList<GroupTask>> callback, Predicate<GroupTask> filter) {
    public int getTasks(@Nullable Consumer<List<GroupTask>> callback, Predicate<GroupTask> filter) {
        return mTaskList.getTasks(false /* loadKeysOnly */, callback, filter);
    }

+5 −2
Original line number Diff line number Diff line
@@ -21,11 +21,13 @@ import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
import android.content.Context;
import android.content.res.Resources;

import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;

import com.android.launcher3.R;
import com.android.launcher3.util.CancellableTask;
import com.android.launcher3.util.Preconditions;
import com.android.quickstep.task.thumbnail.data.TaskThumbnailDataSource;
import com.android.quickstep.util.TaskKeyByLastActiveTimeCache;
import com.android.quickstep.util.TaskKeyCache;
import com.android.quickstep.util.TaskKeyLruCache;
@@ -38,7 +40,7 @@ import java.util.ArrayList;
import java.util.concurrent.Executor;
import java.util.function.Consumer;

public class TaskThumbnailCache {
public class TaskThumbnailCache implements TaskThumbnailDataSource {

    private final Executor mBgExecutor;
    private final TaskKeyCache<ThumbnailData> mCache;
@@ -148,8 +150,9 @@ public class TaskThumbnailCache {
     * @param callback The callback to receive the task after its data has been populated.
     * @return A cancelable handle to the request
     */
    @Override
    public CancellableTask<ThumbnailData> updateThumbnailInBackground(
            Task task, Consumer<ThumbnailData> callback) {
            Task task, @NonNull Consumer<ThumbnailData> callback) {
        Preconditions.assertUIThread();

        boolean lowResolution = !mHighResLoadingState.isEnabled();
+2 −1
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ import com.android.systemui.shared.recents.model.Task;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class FallbackRecentsView extends RecentsView<RecentsActivity, RecentsState>
        implements StateListener<RecentsState> {
@@ -179,7 +180,7 @@ public class FallbackRecentsView extends RecentsView<RecentsActivity, RecentsSta
    }

    @Override
    protected void applyLoadPlan(ArrayList<GroupTask> taskGroups) {
    protected void applyLoadPlan(List<GroupTask> taskGroups) {
        // When quick-switching on 3p-launcher, we add a "stub" tile corresponding to Launcher
        // as well. This tile is never shown as we have setCurrentTaskHidden, but allows use to
        // track the index of the next task appropriately, as if we are switching on any other app.
Loading