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

Commit 5b15bfe2 authored by Alex Chau's avatar Alex Chau
Browse files

Use TaskContainer as source of truth around Task handling

- Renamed TaskIdAttributeContainer into TaskContainer so it's shorter
- Make mTaskContainers the source of truth for Task handling, removing mTask, mSecondaryTask, mTaskIdContainer and use mTaskContainers to derive all related information
- Remove mTasks/mSnapshotViewMap in DesktopTaskView and replace with mTaskContainers
- Mark methods that assumes a single Task as deprecated e.g. getTask, getItemInfo, getThumbnail to discourage further usage of such methods; "First" is added to the method name to make it explicit only first Task is considered; getTaskContainers is encouraged to access such information

Bug: 249371338
Test: Manual
Flag: None
Change-Id: Ieb15e0e8432913c89dc46c1011f0148095c665f8
parent 919ce270
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ import com.android.quickstep.util.GroupTask;
import com.android.quickstep.util.TISBindHelper;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.TaskView;
import com.android.quickstep.views.TaskView.TaskIdAttributeContainer;
import com.android.quickstep.views.TaskView.TaskContainer;
import com.android.systemui.shared.recents.model.Task;

import java.io.PrintWriter;
@@ -259,14 +259,14 @@ public class TaskbarUIController {
                        if (foundTaskView != null) {
                            // There is already a running app of this type, use that as second app.
                            // Get index of task (0 or 1), in case it's a GroupedTaskView
                            TaskIdAttributeContainer taskAttributes =
                                    foundTaskView.getTaskAttributesById(foundTask.key.id);
                            TaskContainer taskContainer =
                                    foundTaskView.getTaskContainerById(foundTask.key.id);
                            recents.confirmSplitSelect(
                                    foundTaskView,
                                    foundTask,
                                    taskAttributes.getIconView().getDrawable(),
                                    taskAttributes.getThumbnailView(),
                                    taskAttributes.getThumbnailView().getThumbnail(),
                                    taskContainer.getIconView().getDrawable(),
                                    taskContainer.getThumbnailView(),
                                    taskContainer.getThumbnailView().getThumbnail(),
                                    null /* intent */,
                                    null /* user */,
                                    info);
+1 −1
Original line number Diff line number Diff line
@@ -151,7 +151,7 @@ public class QuickSwitchTouchController extends AbstractStateChangeTouchControll
            int sysuiFlags = 0;
            TaskView tv = mOverviewPanel.getTaskViewAt(0);
            if (tv != null) {
                sysuiFlags = tv.getThumbnail().getSysUiStatusNavFlags();
                sysuiFlags = tv.getFirstThumbnailView().getSysUiStatusNavFlags();
            }
            mLauncher.getSystemUiController().updateUiState(UI_STATE_FULLSCREEN_TASK, sysuiFlags);
        } else {
+1 −1
Original line number Diff line number Diff line
@@ -252,7 +252,7 @@ public abstract class TaskViewTouchController<CONTAINER extends Context & Recent
                    mTaskBeingDragged, maxDuration, currentInterpolator);

            // Since the thumbnail is what is filling the screen, based the end displacement on it.
            View thumbnailView = mTaskBeingDragged.getThumbnail();
            View thumbnailView = mTaskBeingDragged.getFirstThumbnailView();
            mTempCords[1] = orientationHandler.getSecondaryDimension(thumbnailView);
            dl.getDescendantCoordRelativeToSelf(thumbnailView, mTempCords);
            mEndDisplacement = secondaryLayerDimension - mTempCords[1];
+7 −7
Original line number Diff line number Diff line
@@ -138,7 +138,7 @@ import com.android.quickstep.util.TransformParams;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.RecentsViewContainer;
import com.android.quickstep.views.TaskView;
import com.android.quickstep.views.TaskView.TaskIdAttributeContainer;
import com.android.quickstep.views.TaskView.TaskContainer;
import com.android.systemui.shared.recents.model.Task;
import com.android.systemui.shared.recents.model.ThumbnailData;
import com.android.systemui.shared.system.ActivityManagerWrapper;
@@ -922,7 +922,7 @@ public abstract class AbsSwipeUpHandler<T extends RecentsViewContainer,
            TaskView runningTask = mRecentsView.getRunningTaskView();
            TaskView centermostTask = mRecentsView.getTaskViewNearestToCenterOfScreen();
            int centermostTaskFlags = centermostTask == null ? 0
                    : centermostTask.getThumbnail().getSysUiStatusNavFlags();
                    : centermostTask.getFirstThumbnailView().getSysUiStatusNavFlags();
            boolean swipeUpThresholdPassed = windowProgress > 1 - UPDATE_SYSUI_FLAGS_THRESHOLD;
            boolean quickswitchThresholdPassed = centermostTask != runningTask;

@@ -2287,15 +2287,15 @@ public abstract class AbsSwipeUpHandler<T extends RecentsViewContainer,
                int[] taskIds = nextTask.getTaskIds();
                ActiveGestureLog.CompoundString nextTaskLog = new ActiveGestureLog.CompoundString(
                        "Launching task: ");
                for (TaskIdAttributeContainer c : nextTask.getTaskIdAttributeContainers()) {
                    if (c == null) {
                for (TaskContainer container : nextTask.getTaskContainers()) {
                    if (container == null) {
                        continue;
                    }
                    nextTaskLog
                            .append("[id: ")
                            .append(c.getTask().key.id)
                            .append(container.getTask().key.id)
                            .append(", pkg: ")
                            .append(c.getTask().key.getPackageName())
                            .append(container.getTask().key.getPackageName())
                            .append("] | ");
                }
                mGestureState.updateLastStartedTaskIds(taskIds);
@@ -2407,7 +2407,7 @@ public abstract class AbsSwipeUpHandler<T extends RecentsViewContainer,
        RemoteAnimationTarget taskTarget = taskTargetOptional.get();
        TaskView taskView = mRecentsView == null
                ? null : mRecentsView.getTaskViewByTaskId(taskTarget.taskId);
        if (taskView == null || !taskView.getThumbnail().shouldShowSplashView()) {
        if (taskView == null || !taskView.getFirstThumbnailView().shouldShowSplashView()) {
            ActiveGestureLog.INSTANCE.addLog("Invalid task view splash state");
            finishRecentsAnimationOnTasksAppeared(null /* onFinishComplete */);
            return;
+3 −3
Original line number Diff line number Diff line
@@ -23,12 +23,12 @@ import com.android.launcher3.logging.StatsLogManager.LauncherEvent
import com.android.launcher3.popup.SystemShortcut
import com.android.quickstep.views.RecentsView
import com.android.quickstep.views.RecentsViewContainer
import com.android.quickstep.views.TaskView.TaskIdAttributeContainer
import com.android.quickstep.views.TaskView.TaskContainer

/** A menu item, "Desktop", that allows the user to bring the current app into Desktop Windowing. */
class DesktopSystemShortcut(
    container: RecentsViewContainer,
    private val mTaskContainer: TaskIdAttributeContainer,
    private val mTaskContainer: TaskContainer,
    abstractFloatingViewHelper: AbstractFloatingViewHelper
) :
    SystemShortcut<RecentsViewContainer>(
@@ -59,7 +59,7 @@ class DesktopSystemShortcut(
            return object : TaskShortcutFactory {
                override fun getShortcuts(
                    container: RecentsViewContainer,
                    taskContainer: TaskIdAttributeContainer
                    taskContainer: TaskContainer
                ): List<DesktopSystemShortcut>? {
                    return if (!DesktopModeStatus.canEnterDesktopMode(container.asContext())) null
                    else if (!taskContainer.task.isDockable) null
Loading