Merge "UserManager: Add new @SystemApis"

This commit is contained in:
Roshan Pius
2019-10-23 14:18:38 +00:00
committed by Android (Google) Code Review
2 changed files with 42 additions and 2 deletions

View File

@@ -5645,6 +5645,8 @@ package android.os {
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isPrimaryUser();
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isRestrictedProfile();
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isRestrictedProfile(@NonNull android.os.UserHandle);
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isSameProfileGroup(@NonNull android.os.UserHandle, @NonNull android.os.UserHandle);
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS}) public boolean isUserUnlockingOrUnlocked(@NonNull android.os.UserHandle);
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean removeUser(@NonNull android.os.UserHandle);
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public void setUserIcon(@NonNull android.graphics.Bitmap);
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public void setUserName(@Nullable String);

View File

@@ -1748,8 +1748,30 @@ public class UserManager {
}
}
/** {@hide} */
public boolean isUserUnlockingOrUnlocked(UserHandle user) {
/**
* Return whether the provided user is already running in an
* "unlocked" state or in the process of unlocking.
* <p>
* On devices with direct boot, a user is unlocked only after they've
* entered their credentials (such as a lock pattern or PIN). On devices
* without direct boot, a user is unlocked as soon as it starts.
* <p>
* When a user is locked, only device-protected data storage is available.
* When a user is unlocked, both device-protected and credential-protected
* private app data storage is available.
*
* <p>Requires {@code android.permission.MANAGE_USERS} or
* {@code android.permission.INTERACT_ACROSS_USERS}, otherwise specified {@link UserHandle user}
* must be the calling user or a profile associated with it.
*
* @hide
*/
@SystemApi
@RequiresPermission(anyOf = {
Manifest.permission.MANAGE_USERS,
Manifest.permission.INTERACT_ACROSS_USERS
})
public boolean isUserUnlockingOrUnlocked(@NonNull UserHandle user) {
return isUserUnlockingOrUnlocked(user.getIdentifier());
}
@@ -2567,6 +2589,22 @@ public class UserManager {
}
}
/**
* Checks if the 2 provided user handles belong to the same profile group.
*
* @param user one of the two user handles to check.
* @param otherUser one of the two user handles to check.
* @return true if the two users are in the same profile group.
*
* Requires {@link android.Manifest.permission#MANAGE_USERS} permission.
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.MANAGE_USERS)
public boolean isSameProfileGroup(@NonNull UserHandle user, @NonNull UserHandle otherUser) {
return isSameProfileGroup(user.getIdentifier(), otherUser.getIdentifier());
}
/**
* Requires {@link android.Manifest.permission#MANAGE_USERS} permission.
* @param userId one of the two user ids to check.