Merge "Added AM APIs to get switch from / to user messages." into sc-v2-dev
This commit is contained in:
@@ -4075,6 +4075,34 @@ public class ActivityManager {
|
||||
return switchUser(user.getIdentifier());
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the message that is shown when a user is switched from.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.MANAGE_USERS)
|
||||
public @Nullable String getSwitchingFromUserMessage() {
|
||||
try {
|
||||
return getService().getSwitchingFromUserMessage();
|
||||
} catch (RemoteException re) {
|
||||
throw re.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the message that is shown when a user is switched to.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.MANAGE_USERS)
|
||||
public @Nullable String getSwitchingToUserMessage() {
|
||||
try {
|
||||
return getService().getSwitchingToUserMessage();
|
||||
} catch (RemoteException re) {
|
||||
throw re.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Uses the value defined by the platform.
|
||||
*
|
||||
|
||||
@@ -338,6 +338,8 @@ interface IActivityManager {
|
||||
void setPackageScreenCompatMode(in String packageName, int mode);
|
||||
@UnsupportedAppUsage
|
||||
boolean switchUser(int userid);
|
||||
String getSwitchingFromUserMessage();
|
||||
String getSwitchingToUserMessage();
|
||||
@UnsupportedAppUsage
|
||||
void setStopUserOnSwitch(int value);
|
||||
boolean removeTask(int taskId);
|
||||
|
||||
@@ -15090,6 +15090,16 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
return mUserController.switchUser(targetUserId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSwitchingFromUserMessage() {
|
||||
return mUserController.getSwitchingFromSystemUserMessage();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSwitchingToUserMessage() {
|
||||
return mUserController.getSwitchingToSystemUserMessage();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStopUserOnSwitch(@StopUserOnSwitch int value) {
|
||||
mUserController.setStopUserOnSwitch(value);
|
||||
|
||||
@@ -1792,7 +1792,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,
|
||||
getSwitchingFromSystemUserMessage(), getSwitchingToSystemUserMessage());
|
||||
getSwitchingFromSystemUserMessageUnchecked(),
|
||||
getSwitchingToSystemUserMessageUnchecked());
|
||||
}
|
||||
|
||||
private void dispatchForegroundProfileChanged(@UserIdInt int userId) {
|
||||
@@ -2564,18 +2565,40 @@ class UserController implements Handler.Callback {
|
||||
}
|
||||
}
|
||||
|
||||
private String getSwitchingFromSystemUserMessage() {
|
||||
// Called by AMS, must check permission
|
||||
String getSwitchingFromSystemUserMessage() {
|
||||
checkHasManageUsersPermission("getSwitchingFromSystemUserMessage()");
|
||||
|
||||
return getSwitchingFromSystemUserMessageUnchecked();
|
||||
}
|
||||
|
||||
// Called by AMS, must check permission
|
||||
String getSwitchingToSystemUserMessage() {
|
||||
checkHasManageUsersPermission("getSwitchingToSystemUserMessage()");
|
||||
|
||||
return getSwitchingToSystemUserMessageUnchecked();
|
||||
}
|
||||
|
||||
private String getSwitchingFromSystemUserMessageUnchecked() {
|
||||
synchronized (mLock) {
|
||||
return mSwitchingFromSystemUserMessage;
|
||||
}
|
||||
}
|
||||
|
||||
private String getSwitchingToSystemUserMessage() {
|
||||
private String getSwitchingToSystemUserMessageUnchecked() {
|
||||
synchronized (mLock) {
|
||||
return mSwitchingToSystemUserMessage;
|
||||
}
|
||||
}
|
||||
|
||||
private void checkHasManageUsersPermission(String operation) {
|
||||
if (mInjector.checkCallingPermission(
|
||||
android.Manifest.permission.MANAGE_USERS) == PackageManager.PERMISSION_DENIED) {
|
||||
throw new SecurityException(
|
||||
"You need MANAGE_USERS permission to call " + operation);
|
||||
}
|
||||
}
|
||||
|
||||
void dumpDebug(ProtoOutputStream proto, long fieldId) {
|
||||
synchronized (mLock) {
|
||||
long token = proto.start(fieldId);
|
||||
@@ -2648,6 +2671,12 @@ class UserController implements Handler.Callback {
|
||||
pw.println(" mMaxRunningUsers:" + mMaxRunningUsers);
|
||||
pw.println(" mUserSwitchUiEnabled:" + mUserSwitchUiEnabled);
|
||||
pw.println(" mInitialized:" + mInitialized);
|
||||
if (mSwitchingFromSystemUserMessage != null) {
|
||||
pw.println(" mSwitchingFromSystemUserMessage: " + mSwitchingFromSystemUserMessage);
|
||||
}
|
||||
if (mSwitchingToSystemUserMessage != null) {
|
||||
pw.println(" mSwitchingToSystemUserMessage: " + mSwitchingToSystemUserMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user