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

Commit 8a13e275 authored by Vinit Nayak's avatar Vinit Nayak Committed by Android (Google) Code Review
Browse files

Revert "Ignore taskbar launch request if app(s) are already running"

This reverts commit 9a7b6f97.

Reason for revert: b/319750648

Change-Id: I778453cf65bb48e31062365a069cfe5b1cb77b96
parent 9a7b6f97
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -104,13 +104,6 @@ public class FallbackTaskbarUIController extends TaskbarUIController {
        }
    }

    @Override
    protected boolean isInOverview() {
        TopTaskTracker.CachedTaskInfo topTask = TopTaskTracker.INSTANCE
                .get(mControllers.taskbarActivityContext).getCachedTopTask(true);
        return topTask.isRecentsTask();
    }

    @Override
    public RecentsView getRecentsView() {
        return mRecentsActivity.getOverviewPanel();
+7 −43
Original line number Diff line number Diff line
@@ -42,9 +42,7 @@ import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_V

import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
import android.app.ActivityManager.RunningTaskInfo;
import android.app.ActivityOptions;
import android.app.ActivityTaskManager;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
@@ -132,13 +130,10 @@ import com.android.systemui.unfold.updates.RotationChangeProvider;
import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider;

import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.function.Consumer;
import java.util.stream.Collectors;

/**
 * The {@link ActivityContext} with which we inflate Taskbar-related Views. This allows UI elements
@@ -1152,25 +1147,15 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
                    @Nullable Task foundTask = foundTasks[0];
                    if (foundTask != null) {
                        TaskView foundTaskView = recents.getTaskViewByTaskId(foundTask.key.id);
                        if (foundTaskView != null) {
                            // The foundTaskView contains the 1-2 taskIds we are looking for.
                            // If we are already in-app and running the correct tasks, no need
                            // to do anything.
                            if (FeatureFlags.enableAppPairs()
                                    && isAlreadyInApp(foundTaskView.getTaskIds())) {
                                return;
                            }
                            // If we are in Overview and the TaskView tile is visible, expand that
                            // tile.
                            if (foundTaskView.isVisibleToUser()) {
                        if (foundTaskView != null
                                && foundTaskView.isVisibleToUser()) {
                            TestLogging.recordEvent(
                                    TestProtocol.SEQUENCE_MAIN, "start: taskbarAppIcon");
                            foundTaskView.launchTasks();
                            return;
                        }
                    }
                    }
                    // If none of the above cases apply, launch a new app or app pair.

                    if (findExactPairMatch) {
                        // We did not find the app pair we were looking for, so launch one.
                        recents.getSplitSelectController().getAppPairsController().launchAppPair(
@@ -1182,27 +1167,6 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
        );
    }

    /**
     * Checks if a given list of taskIds are all already running in-app.
     */
    private boolean isAlreadyInApp(int[] ids) {
        if (mControllers.uiController.isInOverview()) {
            return false;
        }

        RunningTaskInfo[] currentlyRunningTasks = ActivityManagerWrapper.getInstance()
                .getRunningTasks(false /* filterOnlyVisibleRecents */);
        Set<Integer> currentlyRunningIds = Arrays.stream(currentlyRunningTasks)
                .map(task -> task.taskId).collect(Collectors.toSet());

        for (int id : ids) {
            if (id != ActivityTaskManager.INVALID_TASK_ID && !currentlyRunningIds.contains(id)) {
                return false;
            }
        }
        return true;
    }

    private void startItemInfoActivity(ItemInfo info) {
        Intent intent = new Intent(info.getIntent())
                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);