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

Commit b102b3a3 authored by Presubmit Automerger Backend's avatar Presubmit Automerger Backend
Browse files

[automerge] [Multiple Users] Start activity as system user. 2p: 7e3f139b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17592026

Change-Id: Icfcfb74a350819c5b051bd7bf293a131fb9201fd
parents 776e4d2d 7e3f139b
Loading
Loading
Loading
Loading
+22 −5
Original line number Diff line number Diff line
@@ -1708,7 +1708,7 @@ public class CentralSurfaces extends CoreStartable implements
            @Nullable ActivityLaunchAnimator.Controller animationController,
            boolean showOverLockscreenWhenLocked) {
        startActivity(intent, dismissShade, animationController, showOverLockscreenWhenLocked,
                UserHandle.CURRENT);
                getActivityUserHandle(intent));
    }

    @Override
@@ -1795,7 +1795,7 @@ public class CentralSurfaces extends CoreStartable implements
    public void startActivity(Intent intent, boolean dismissShade, Callback callback) {
        startActivityDismissingKeyguard(intent, false, dismissShade,
                false /* disallowEnterPictureInPictureWhileLaunching */, callback, 0,
                null /* animationController */, UserHandle.CURRENT);
                null /* animationController */, getActivityUserHandle(intent));
    }

    public void setQsExpanded(boolean expanded) {
@@ -2425,7 +2425,7 @@ public class CentralSurfaces extends CoreStartable implements
            boolean dismissShade, int flags) {
        startActivityDismissingKeyguard(intent, onlyProvisioned, dismissShade,
                false /* disallowEnterPictureInPictureWhileLaunching */, null /* callback */,
                flags, null /* animationController */, UserHandle.CURRENT);
                flags, null /* animationController */, getActivityUserHandle(intent));
    }

    public void startActivityDismissingKeyguard(final Intent intent, boolean onlyProvisioned,
@@ -2868,7 +2868,7 @@ public class CentralSurfaces extends CoreStartable implements
                                null /* callback */,
                                0 /* flags */,
                                animationController,
                                UserHandle.CURRENT),
                                getActivityUserHandle(intent)),
                delay);
    }

@@ -3602,7 +3602,8 @@ public class CentralSurfaces extends CoreStartable implements
                mLaunchEmergencyActionWhenFinishedWaking = false;
                Intent emergencyIntent = getEmergencyActionIntent();
                if (emergencyIntent != null) {
                    mContext.startActivityAsUser(emergencyIntent, UserHandle.CURRENT);
                    mContext.startActivityAsUser(emergencyIntent,
                            getActivityUserHandle(emergencyIntent));
                }
            }
            updateScrimController();
@@ -4500,4 +4501,20 @@ public class CentralSurfaces extends CoreStartable implements
        @Override
        public void dispatchDemoCommand(String command, Bundle args) { }
    };

    /**
     *  Determines what UserHandle to use when launching an activity.
     *
     *  We want to ensure that activities that are launched within the systemui process should be
     *  launched as user of the current process.
     * @param intent
     * @return UserHandle
     */
    private UserHandle getActivityUserHandle(Intent intent) {
        if (intent.getComponent() != null
                && mContext.getPackageName().equals(intent.getComponent().getPackageName())) {
            return new UserHandle(UserHandle.myUserId());
        }
        return UserHandle.CURRENT;
    }
}