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

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

Merge "Don't block activity starts in permissive mode." into qt-dev

parents b112f3f6 07389b6e
Loading
Loading
Loading
Loading
+4 −7
Original line number Original line Diff line number Diff line
@@ -161,7 +161,7 @@ class ActivityStarter {
    private ActivityOptions mOptions;
    private ActivityOptions mOptions;


    // If it is true, background activity can only be started in an existing task that contains
    // If it is true, background activity can only be started in an existing task that contains
    // an activity with same uid.
    // an activity with same uid, or if activity starts are enabled in developer options.
    private boolean mRestrictedBgActivity;
    private boolean mRestrictedBgActivity;


    private int mLaunchMode;
    private int mLaunchMode;
@@ -921,7 +921,7 @@ class ActivityStarter {
                || stack.getResumedActivity().info.applicationInfo.uid != realCallingUid)) {
                || stack.getResumedActivity().info.applicationInfo.uid != realCallingUid)) {
            if (!mService.checkAppSwitchAllowedLocked(callingPid, callingUid,
            if (!mService.checkAppSwitchAllowedLocked(callingPid, callingUid,
                    realCallingPid, realCallingUid, "Activity start")) {
                    realCallingPid, realCallingUid, "Activity start")) {
                if (!restrictedBgActivity) {
                if (!(restrictedBgActivity && handleBackgroundActivityAbort(r))) {
                    mController.addPendingActivityLaunch(new PendingActivityLaunch(r,
                    mController.addPendingActivityLaunch(new PendingActivityLaunch(r,
                            sourceRecord, startFlags, stack, callerApp));
                            sourceRecord, startFlags, stack, callerApp));
                }
                }
@@ -1916,7 +1916,7 @@ class ActivityStarter {


        mNoAnimation = (mLaunchFlags & FLAG_ACTIVITY_NO_ANIMATION) != 0;
        mNoAnimation = (mLaunchFlags & FLAG_ACTIVITY_NO_ANIMATION) != 0;


        if (restrictedBgActivity) {
        if (mRestrictedBgActivity && !mService.isBackgroundActivityStartsEnabled()) {
            mAvoidMoveToFront = true;
            mAvoidMoveToFront = true;
            mDoResume = false;
            mDoResume = false;
        }
        }
@@ -2380,7 +2380,6 @@ class ActivityStarter {
            if (handleBackgroundActivityAbort(mStartActivity)) {
            if (handleBackgroundActivityAbort(mStartActivity)) {
                return START_ABORTED;
                return START_ABORTED;
            }
            }
            return START_ABORTED;
        }
        }
        // We only want to allow changing stack in two cases:
        // We only want to allow changing stack in two cases:
        // 1. If the target task is not the top one. Otherwise we would move the launching task to
        // 1. If the target task is not the top one. Otherwise we would move the launching task to
@@ -2553,17 +2552,15 @@ class ActivityStarter {
            if (handleBackgroundActivityAbort(mStartActivity)) {
            if (handleBackgroundActivityAbort(mStartActivity)) {
                return START_ABORTED;
                return START_ABORTED;
            }
            }
            return START_ABORTED;
        }
        }
        final TaskRecord task = (prev != null)
        final TaskRecord task = (prev != null)
                ? prev.getTaskRecord() : mTargetStack.createTaskRecord(
                ? prev.getTaskRecord() : mTargetStack.createTaskRecord(
                mSupervisor.getNextTaskIdForUserLocked(mStartActivity.mUserId), mStartActivity.info,
                mSupervisor.getNextTaskIdForUserLocked(mStartActivity.mUserId), mStartActivity.info,
                mIntent, null, null, true, mStartActivity, mSourceRecord, mOptions);
                mIntent, null, null, true, mStartActivity, mSourceRecord, mOptions);
        if (mRestrictedBgActivity && !task.containsAppUid(mCallingUid)) {
        if (mRestrictedBgActivity && prev != null && !task.containsAppUid(mCallingUid)) {
            if (handleBackgroundActivityAbort(mStartActivity)) {
            if (handleBackgroundActivityAbort(mStartActivity)) {
                return START_ABORTED;
                return START_ABORTED;
            }
            }
            return START_ABORTED;
        }
        }
        addOrReparentStartingActivity(task, "setTaskToCurrentTopOrCreateNewTask");
        addOrReparentStartingActivity(task, "setTaskToCurrentTopOrCreateNewTask");
        mTargetStack.positionChildWindowContainerAtTop(task);
        mTargetStack.positionChildWindowContainerAtTop(task);