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

Commit fa4455a1 authored by Nicolas Prevot's avatar Nicolas Prevot Committed by android-build-merger
Browse files

Merge \\\"Don\\\'t allow showing an activity if user is stopping or shutting...

Merge \\\"Don\\\'t allow showing an activity if user is stopping or shutting down.\\\" into nyc-dev am: 2058553b am: ea600f9a
am: 39c5f9f0

Change-Id: Ifd0df3a3e18f475347fee163ce002a18bca460ac
parents 35d07d99 39c5f9f0
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -3030,8 +3030,9 @@ public final class ActivityStackSupervisor implements DisplayListener {


    /** Checks whether the activity should be shown for current user. */
    /** Checks whether the activity should be shown for current user. */
    boolean okToShowLocked(ActivityRecord r) {
    boolean okToShowLocked(ActivityRecord r) {
        return r != null && (isCurrentProfileLocked(r.userId)
        return r != null && ((r.info.flags & FLAG_SHOW_FOR_ALL_USERS) != 0
                || (r.info.flags & FLAG_SHOW_FOR_ALL_USERS) != 0);
                || (isCurrentProfileLocked(r.userId)
                && !mService.mUserController.isUserStoppingOrShuttingDownLocked(r.userId)));
    }
    }


    final ArrayList<ActivityRecord> processStoppingActivitiesLocked(boolean remove) {
    final ArrayList<ActivityRecord> processStoppingActivitiesLocked(boolean remove) {
+9 −0
Original line number Original line Diff line number Diff line
@@ -1336,6 +1336,15 @@ final class UserController {
        return mStartedUserArray;
        return mStartedUserArray;
    }
    }


    boolean isUserStoppingOrShuttingDownLocked(int userId) {
        UserState state = getStartedUserStateLocked(userId);
        if (state == null) {
            return false;
        }
        return state.state == UserState.STATE_STOPPING
                || state.state == UserState.STATE_SHUTDOWN;
    }

    boolean isUserRunningLocked(int userId, int flags) {
    boolean isUserRunningLocked(int userId, int flags) {
        UserState state = getStartedUserStateLocked(userId);
        UserState state = getStartedUserStateLocked(userId);
        if (state == null) {
        if (state == null) {
+1 −1
Original line number Original line Diff line number Diff line
@@ -737,9 +737,9 @@ public class UserManagerService extends IUserManager.Stub {
            long identity = Binder.clearCallingIdentity();
            long identity = Binder.clearCallingIdentity();
            try {
            try {
                if (enableQuietMode) {
                if (enableQuietMode) {
                    ActivityManagerNative.getDefault().stopUser(userHandle, /* force */true, null);
                    LocalServices.getService(ActivityManagerInternal.class)
                    LocalServices.getService(ActivityManagerInternal.class)
                            .killForegroundAppsForUser(userHandle);
                            .killForegroundAppsForUser(userHandle);
                    ActivityManagerNative.getDefault().stopUser(userHandle, /* force */true, null);
                } else {
                } else {
                    ActivityManagerNative.getDefault().startUserInBackground(userHandle);
                    ActivityManagerNative.getDefault().startUserInBackground(userHandle);
                }
                }