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

Commit 8d1c24e0 authored by Evan Rosky's avatar Evan Rosky
Browse files

Inform receivers of restart attempt previous visibility

This way receivers like recents know whether the activity
was already visible before a restart attempt.

Bug: 154575664
Test: added test. Can also launch a running activity into
      split-primary and it won't expand it.
Change-Id: If59ee1615fa36bbe3af9412194a7f96b9377528a
parent f7d789b0
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -43,9 +43,10 @@ oneway interface ITaskStackListener {
     * @param homeVisible whether or not the home task is visible
     * @param clearedTask whether or not the launch activity also cleared the task as a part of
     * starting
     * @param wasVisible whether the activity was visible before the restart attempt
     */
    void onActivityRestartAttempt(in ActivityManager.RunningTaskInfo task, boolean homeTaskVisible,
            boolean clearedTask);
            boolean clearedTask, boolean wasVisible);

    /**
     * Called when we launched an activity that we forced to be resizable.
+1 −1
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ public abstract class TaskStackListener extends ITaskStackListener.Stub {
    @Override
    @UnsupportedAppUsage
    public void onActivityRestartAttempt(RunningTaskInfo task, boolean homeTaskVisible,
            boolean clearedTask) throws RemoteException {
            boolean clearedTask, boolean wasVisible) throws RemoteException {
    }

    @Override
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ public abstract class TaskStackChangeListener {
    public void onActivityPinned(String packageName, int userId, int taskId, int stackId) { }
    public void onActivityUnpinned() { }
    public void onActivityRestartAttempt(RunningTaskInfo task, boolean homeTaskVisible,
            boolean clearedTask) { }
            boolean clearedTask, boolean wasVisible) { }
    public void onActivityForcedResizable(String packageName, int taskId, int reason) { }
    public void onActivityDismissingDockedStack() { }
    public void onActivityLaunchOnSecondaryDisplayFailed() { }
+4 −2
Original line number Diff line number Diff line
@@ -122,11 +122,12 @@ public class TaskStackChangeListeners extends TaskStackListener {

    @Override
    public void onActivityRestartAttempt(RunningTaskInfo task, boolean homeTaskVisible,
            boolean clearedTask) throws RemoteException {
            boolean clearedTask, boolean wasVisible) throws RemoteException {
        final SomeArgs args = SomeArgs.obtain();
        args.arg1 = task;
        args.argi1 = homeTaskVisible ? 1 : 0;
        args.argi2 = clearedTask ? 1 : 0;
        args.argi3 = wasVisible ? 1 : 0;
        mHandler.removeMessages(H.ON_ACTIVITY_RESTART_ATTEMPT);
        mHandler.obtainMessage(H.ON_ACTIVITY_RESTART_ATTEMPT, args).sendToTarget();
    }
@@ -305,9 +306,10 @@ public class TaskStackChangeListeners extends TaskStackListener {
                        final RunningTaskInfo task = (RunningTaskInfo) args.arg1;
                        final boolean homeTaskVisible = args.argi1 != 0;
                        final boolean clearedTask = args.argi2 != 0;
                        final boolean wasVisible = args.argi3 != 0;
                        for (int i = mTaskStackListeners.size() - 1; i >= 0; i--) {
                            mTaskStackListeners.get(i).onActivityRestartAttempt(task,
                                    homeTaskVisible, clearedTask);
                                    homeTaskVisible, clearedTask, wasVisible);
                        }
                        break;
                    }
+1 −1
Original line number Diff line number Diff line
@@ -1236,7 +1236,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi

        @Override
        public void onActivityRestartAttempt(RunningTaskInfo task, boolean homeTaskVisible,
                boolean clearedTask) {
                boolean clearedTask, boolean wasVisible) {
            for (Bubble b : mBubbleData.getBubbles()) {
                if (b.getDisplayId() == task.displayId) {
                    expandStackAndSelectBubble(b.getKey());
Loading