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

Commit 4973ee62 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix NPE and make getTask return Optional" into ub-launcher3-master

parents c88047b5 77f01524
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ public final class TaskActionController {
     * @param viewHolder the task view holder to launch
     */
    public void launchTask(TaskHolder viewHolder) {
        if (viewHolder.getTask() == null) {
        if (!viewHolder.getTask().isPresent()) {
            return;
        }
        TaskItemView itemView = (TaskItemView) (viewHolder.itemView);
@@ -53,8 +53,9 @@ public final class TaskActionController {
        int height = v.getMeasuredHeight();

        ActivityOptions opts = ActivityOptions.makeClipRevealAnimation(v, left, top, width, height);
        ActivityManagerWrapper.getInstance().startActivityFromRecentsAsync(viewHolder.getTask().key,
                opts, null /* resultCallback */, null /* resultCallbackHandler */);
        ActivityManagerWrapper.getInstance().startActivityFromRecentsAsync(
                viewHolder.getTask().get().key, opts, null /* resultCallback */,
                null /* resultCallbackHandler */);
    }

    /**
@@ -63,11 +64,11 @@ public final class TaskActionController {
     * @param viewHolder the task view holder to remove
     */
    public void removeTask(TaskHolder viewHolder) {
        if (viewHolder.getTask() == null) {
        if (!viewHolder.getTask().isPresent()) {
            return;
        }
        int position = viewHolder.getAdapterPosition();
        Task task = viewHolder.getTask();
        Task task = viewHolder.getTask().get();
        ActivityManagerWrapper.getInstance().removeTask(task.key.id);
        mLoader.removeTask(task);
        mAdapter.notifyItemRemoved(position);
+3 −2
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import com.android.systemui.shared.recents.model.Task;

import java.util.List;
import java.util.Objects;
import java.util.Optional;

/**
 * Recycler view adapter that dynamically inflates and binds {@link TaskHolder} instances with the
@@ -109,13 +110,13 @@ public final class TaskAdapter extends Adapter<TaskHolder> {
        holder.bindTask(task, willAnimate /* willAnimate */);
        mLoader.loadTaskIconAndLabel(task, () -> {
            // Ensure holder still has the same task.
            if (Objects.equals(task, holder.getTask())) {
            if (Objects.equals(Optional.of(task), holder.getTask())) {
                holder.getTaskItemView().setIcon(task.icon);
                holder.getTaskItemView().setLabel(task.titleDescription);
            }
        });
        mLoader.loadTaskThumbnail(task, () -> {
            if (Objects.equals(task, holder.getTask())) {
            if (Objects.equals(Optional.of(task), holder.getTask())) {
                holder.getTaskItemView().setThumbnail(task.thumbnail.thumbnail);
            }
        });
+4 −3
Original line number Diff line number Diff line
@@ -18,12 +18,13 @@ package com.android.quickstep;
import android.graphics.Bitmap;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;

import com.android.quickstep.views.TaskItemView;
import com.android.systemui.shared.recents.model.Task;

import java.util.Optional;

/**
 * A recycler view holder that holds the task view and binds {@link Task} content (app title, icon,
 * etc.) to the view.
@@ -81,7 +82,7 @@ public final class TaskHolder extends ViewHolder {
     *
     * @return the current task
     */
    public @Nullable Task getTask() {
        return mTask;
    public Optional<Task> getTask() {
        return Optional.ofNullable(mTask);
    }
}
+5 −2
Original line number Diff line number Diff line
@@ -61,6 +61,8 @@ import com.android.quickstep.TaskListLoader;
import com.android.quickstep.TaskSwipeCallback;
import com.android.systemui.shared.recents.model.Task;

import java.util.Optional;

/**
 * Root view for the icon recents view. Acts as the main interface to the rest of the Launcher code
 * base.
@@ -120,8 +122,9 @@ public final class IconRecentsView extends FrameLayout {
        TaskItemView[] itemViews = getTaskViews();
        for (TaskItemView taskView : itemViews) {
            TaskHolder taskHolder = (TaskHolder) mTaskRecyclerView.getChildViewHolder(taskView);
            Task task = taskHolder.getTask();
            if (taskHolder.getTask().key.id == taskId) {
            Optional<Task> optTask = taskHolder.getTask();
            if (optTask.filter(task -> task.key.id == taskId).isPresent()) {
                Task task = optTask.get();
                // Update thumbnail on the task.
                task.thumbnail = thumbnailData;
                taskView.setThumbnail(thumbnailData.thumbnail);