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

Commit 834b63af authored by Evan Rosky's avatar Evan Rosky
Browse files

Apply pending-intent op before blanket locktask check

PendingIntent goes through ActivityStarter which will, itself,
check locktask state. So, we can consider it one of the HOPs
that is valid to attempt during locktask-mode.

Bug: 283011244
Test: enable HOME/OVERVIEW features in lock-task policy,
      enter lock-task mode, go to home or recents.
Change-Id: Id209684db35b24ae12c4ec2f8c63ebebae1c0f9b
parent 7f7fd82c
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
@@ -960,20 +960,6 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
                        errorCallbackToken, organizer);
                break;
            }
            default: {
                // The other operations may change task order so they are skipped while in lock
                // task mode. The above operations are still allowed because they don't move
                // tasks. And it may be necessary such as clearing launch root after entering
                // lock task mode.
                if (isInLockTaskMode) {
                    Slog.w(TAG, "Skip applying hierarchy operation " + hop
                            + " while in lock task mode");
                    return effects;
                }
            }
        }

        switch (type) {
            case HIERARCHY_OP_TYPE_PENDING_INTENT: {
                final Bundle launchOpts = hop.getLaunchOptions();
                ActivityOptions activityOptions = launchOpts != null
@@ -1012,6 +998,20 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
                }
                break;
            }
            default: {
                // The other operations may change task order so they are skipped while in lock
                // task mode. The above operations are still allowed because they don't move
                // tasks. And it may be necessary such as clearing launch root after entering
                // lock task mode.
                if (isInLockTaskMode) {
                    Slog.w(TAG, "Skip applying hierarchy operation " + hop
                            + " while in lock task mode");
                    return effects;
                }
            }
        }

        switch (type) {
            case HIERARCHY_OP_TYPE_START_SHORTCUT: {
                final Bundle launchOpts = hop.getLaunchOptions();
                final String callingPackage = launchOpts.getString(