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

Commit 0d1e5461 authored by Miriam Polzer's avatar Miriam Polzer Committed by Android (Google) Code Review
Browse files

Merge "Show user switch message for non-system user" into main

parents 10413f33 4e282401
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -55,9 +55,7 @@ import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Point;
import android.graphics.Rect;
import android.graphics.drawable.Icon;
import android.hardware.HardwareBuffer;
import android.os.BatteryStats;
import android.os.Binder;
import android.os.Build;
@@ -86,7 +84,6 @@ import android.util.Log;
import android.util.Singleton;
import android.util.Size;
import android.view.WindowInsetsController.Appearance;
import android.window.TaskSnapshot;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.app.LocalePicker;
@@ -5420,10 +5417,11 @@ public class ActivityManager {
     *
     * @hide
     */
    @Nullable
    @RequiresPermission(Manifest.permission.MANAGE_USERS)
    public @Nullable String getSwitchingFromUserMessage() {
    public String getSwitchingFromUserMessage(@UserIdInt int userId) {
        try {
            return getService().getSwitchingFromUserMessage();
            return getService().getSwitchingFromUserMessage(userId);
        } catch (RemoteException re) {
            throw re.rethrowFromSystemServer();
        }
@@ -5434,10 +5432,11 @@ public class ActivityManager {
     *
     * @hide
     */
    @Nullable
    @RequiresPermission(Manifest.permission.MANAGE_USERS)
    public @Nullable String getSwitchingToUserMessage() {
    public String getSwitchingToUserMessage(@UserIdInt int userId) {
        try {
            return getService().getSwitchingToUserMessage();
            return getService().getSwitchingToUserMessage(userId);
        } catch (RemoteException re) {
            throw re.rethrowFromSystemServer();
        }
+4 −4
Original line number Diff line number Diff line
@@ -292,14 +292,14 @@ public abstract class ActivityManagerInternal {
    public abstract boolean canStartMoreUsers();

    /**
     * Sets the user switcher message for switching from {@link android.os.UserHandle#SYSTEM}.
     * Sets the user switcher message for switching from a user.
     */
    public abstract void setSwitchingFromSystemUserMessage(String switchingFromSystemUserMessage);
    public abstract void setSwitchingFromUserMessage(@UserIdInt int user, @Nullable String message);

    /**
     * Sets the user switcher message for switching to {@link android.os.UserHandle#SYSTEM}.
     * Sets the user switcher message for switching to a user.
     */
    public abstract void setSwitchingToSystemUserMessage(String switchingToSystemUserMessage);
    public abstract void setSwitchingToUserMessage(@UserIdInt int user, @Nullable String message);

    /**
     * Returns maximum number of users that can run simultaneously.
+2 −2
Original line number Diff line number Diff line
@@ -403,8 +403,8 @@ interface IActivityManager {
    void setPackageScreenCompatMode(in String packageName, int mode);
    @UnsupportedAppUsage
    boolean switchUser(int userid);
    String getSwitchingFromUserMessage();
    String getSwitchingToUserMessage();
    String getSwitchingFromUserMessage(int userId);
    String getSwitchingToUserMessage(int userId);
    @UnsupportedAppUsage
    void setStopUserOnSwitch(int value);
    boolean removeTask(int taskId);
+10 −8
Original line number Diff line number Diff line
@@ -16190,14 +16190,16 @@ public class ActivityManagerService extends IActivityManager.Stub
        return mUserController.switchUser(targetUserId);
    }
    @Nullable
    @Override
    public String getSwitchingFromUserMessage() {
        return mUserController.getSwitchingFromSystemUserMessage();
    public String getSwitchingFromUserMessage(@UserIdInt int userId) {
        return mUserController.getSwitchingFromUserMessage(userId);
    }
    @Nullable
    @Override
    public String getSwitchingToUserMessage() {
        return mUserController.getSwitchingToSystemUserMessage();
    public String getSwitchingToUserMessage(@UserIdInt int userId) {
        return mUserController.getSwitchingToUserMessage(userId);
    }
    @Override
@@ -16938,13 +16940,13 @@ public class ActivityManagerService extends IActivityManager.Stub
        }
        @Override
        public void setSwitchingFromSystemUserMessage(String switchingFromSystemUserMessage) {
            mUserController.setSwitchingFromSystemUserMessage(switchingFromSystemUserMessage);
        public void setSwitchingFromUserMessage(@UserIdInt int userId, @Nullable String message) {
            mUserController.setSwitchingFromUserMessage(userId, message);
        }
        @Override
        public void setSwitchingToSystemUserMessage(String switchingToSystemUserMessage) {
            mUserController.setSwitchingToSystemUserMessage(switchingToSystemUserMessage);
        public void setSwitchingToUserMessage(@UserIdInt int userId, @Nullable String message) {
            mUserController.setSwitchingToUserMessage(userId, message);
        }
        @Override
+28 −28
Original line number Diff line number Diff line
@@ -340,16 +340,16 @@ class UserController implements Handler.Callback {
    private volatile ArraySet<String> mCurWaitingUserSwitchCallbacks;

    /**
     * Messages for switching from {@link android.os.UserHandle#SYSTEM}.
     * Message shown when switching from a user.
     */
    @GuardedBy("mLock")
    private String mSwitchingFromSystemUserMessage;
    private final SparseArray<String> mSwitchingFromUserMessage = new SparseArray<>();

    /**
     * Messages for switching to {@link android.os.UserHandle#SYSTEM}.
     * Message shown when switching to a user.
     */
    @GuardedBy("mLock")
    private String mSwitchingToSystemUserMessage;
    private final SparseArray<String> mSwitchingToUserMessage = new SparseArray<>();

    /**
     * Callbacks that are still active after {@link #getUserSwitchTimeoutMs}
@@ -2271,8 +2271,8 @@ class UserController implements Handler.Callback {
    private void showUserSwitchDialog(Pair<UserInfo, UserInfo> fromToUserPair) {
        // The dialog will show and then initiate the user switch by calling startUserInForeground
        mInjector.showUserSwitchingDialog(fromToUserPair.first, fromToUserPair.second,
                getSwitchingFromSystemUserMessageUnchecked(),
                getSwitchingToSystemUserMessageUnchecked(),
                getSwitchingFromUserMessageUnchecked(fromToUserPair.first.id),
                getSwitchingToUserMessageUnchecked(fromToUserPair.second.id),
                /* onShown= */ () -> sendStartUserSwitchFgMessage(fromToUserPair.second.id));
    }

@@ -3388,41 +3388,45 @@ class UserController implements Handler.Callback {
        return mLockPatternUtils.isLockScreenDisabled(userId);
    }

    void setSwitchingFromSystemUserMessage(String switchingFromSystemUserMessage) {
    void setSwitchingFromUserMessage(@UserIdInt int user, @Nullable String message) {
        synchronized (mLock) {
            mSwitchingFromSystemUserMessage = switchingFromSystemUserMessage;
            mSwitchingFromUserMessage.put(user, message);
        }
    }

    void setSwitchingToSystemUserMessage(String switchingToSystemUserMessage) {
    void setSwitchingToUserMessage(@UserIdInt int user, @Nullable String message) {
        synchronized (mLock) {
            mSwitchingToSystemUserMessage = switchingToSystemUserMessage;
            mSwitchingToUserMessage.put(user, message);
        }
    }

    // Called by AMS, must check permission
    String getSwitchingFromSystemUserMessage() {
        checkHasManageUsersPermission("getSwitchingFromSystemUserMessage()");
    @Nullable
    String getSwitchingFromUserMessage(@UserIdInt int userId) {
        checkHasManageUsersPermission("getSwitchingFromUserMessage()");

        return getSwitchingFromSystemUserMessageUnchecked();
        return getSwitchingFromUserMessageUnchecked(userId);
    }

    // Called by AMS, must check permission
    String getSwitchingToSystemUserMessage() {
        checkHasManageUsersPermission("getSwitchingToSystemUserMessage()");
    @Nullable
    String getSwitchingToUserMessage(@UserIdInt int userId) {
        checkHasManageUsersPermission("getSwitchingToUserMessage()");

        return getSwitchingToSystemUserMessageUnchecked();
        return getSwitchingToUserMessageUnchecked(userId);
    }

    private String getSwitchingFromSystemUserMessageUnchecked() {
    @Nullable
    private String getSwitchingFromUserMessageUnchecked(@UserIdInt int userId) {
        synchronized (mLock) {
            return mSwitchingFromSystemUserMessage;
            return mSwitchingFromUserMessage.get(userId);
        }
    }

    private String getSwitchingToSystemUserMessageUnchecked() {
    @Nullable
    private String getSwitchingToUserMessageUnchecked(@UserIdInt int userId) {
        synchronized (mLock) {
            return mSwitchingToSystemUserMessage;
            return mSwitchingToUserMessage.get(userId);
        }
    }

@@ -3518,12 +3522,8 @@ class UserController implements Handler.Callback {
                    + mIsBroadcastSentForSystemUserStarted);
            pw.println("  mIsBroadcastSentForSystemUserStarting:"
                    + mIsBroadcastSentForSystemUserStarting);
            if (mSwitchingFromSystemUserMessage != null) {
                pw.println("  mSwitchingFromSystemUserMessage: " + mSwitchingFromSystemUserMessage);
            }
            if (mSwitchingToSystemUserMessage != null) {
                pw.println("  mSwitchingToSystemUserMessage: " + mSwitchingToSystemUserMessage);
            }
            pw.println("  mSwitchingFromUserMessage:" + mSwitchingFromUserMessage);
            pw.println("  mSwitchingToUserMessage:" + mSwitchingToUserMessage);
            pw.println("  mLastUserUnlockingUptime: " + mLastUserUnlockingUptime);
        }
    }
@@ -4046,7 +4046,7 @@ class UserController implements Handler.Callback {
        }

        void showUserSwitchingDialog(UserInfo fromUser, UserInfo toUser,
                String switchingFromSystemUserMessage, String switchingToSystemUserMessage,
                @Nullable String switchingFromUserMessage, @Nullable String switchingToUserMessage,
                @NonNull Runnable onShown) {
            if (mService.mContext.getPackageManager()
                    .hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)) {
@@ -4059,7 +4059,7 @@ class UserController implements Handler.Callback {
            synchronized (mUserSwitchingDialogLock) {
                dismissUserSwitchingDialog(null);
                mUserSwitchingDialog = new UserSwitchingDialog(mService.mContext, fromUser, toUser,
                        mHandler, switchingFromSystemUserMessage, switchingToSystemUserMessage);
                        mHandler, switchingFromUserMessage, switchingToUserMessage);
                mUserSwitchingDialog.show(onShown);
            }
        }
Loading