From b642387b43417e2f342a1bc16e4f639b5d6c4b97 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Fri, 11 Dec 2015 11:11:58 -0700 Subject: [PATCH] Cleaner API for requesting locked status. Change-Id: I1a5a6703737fb838347eaa292004430f2b9d29c3 --- api/current.txt | 10 ++++++---- api/system-current.txt | 10 ++++++---- api/test-current.txt | 10 ++++++---- core/java/android/os/UserManager.java | 31 +++++++++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 12 deletions(-) diff --git a/api/current.txt b/api/current.txt index 894f01602cab..8d174c3845ad 100644 --- a/api/current.txt +++ b/api/current.txt @@ -28100,11 +28100,13 @@ package android.os { method public boolean isSystemUser(); method public boolean isUserAGoat(); method public boolean isUserRunning(android.os.UserHandle); - method public boolean isUserRunningAndLocked(); - method public boolean isUserRunningAndLocked(android.os.UserHandle); - method public boolean isUserRunningAndUnlocked(); - method public boolean isUserRunningAndUnlocked(android.os.UserHandle); + method public deprecated boolean isUserRunningAndLocked(); + method public deprecated boolean isUserRunningAndLocked(android.os.UserHandle); + method public deprecated boolean isUserRunningAndUnlocked(); + method public deprecated boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); + method public boolean isUserUnlocked(); + method public boolean isUserUnlocked(android.os.UserHandle); method public deprecated boolean setRestrictionsChallenge(java.lang.String); method public deprecated void setUserRestriction(java.lang.String, boolean); method public deprecated void setUserRestrictions(android.os.Bundle); diff --git a/api/system-current.txt b/api/system-current.txt index 1dbc408edf54..15426c181887 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -30094,11 +30094,13 @@ package android.os { method public boolean isSystemUser(); method public boolean isUserAGoat(); method public boolean isUserRunning(android.os.UserHandle); - method public boolean isUserRunningAndLocked(); - method public boolean isUserRunningAndLocked(android.os.UserHandle); - method public boolean isUserRunningAndUnlocked(); - method public boolean isUserRunningAndUnlocked(android.os.UserHandle); + method public deprecated boolean isUserRunningAndLocked(); + method public deprecated boolean isUserRunningAndLocked(android.os.UserHandle); + method public deprecated boolean isUserRunningAndUnlocked(); + method public deprecated boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); + method public boolean isUserUnlocked(); + method public boolean isUserUnlocked(android.os.UserHandle); method public deprecated boolean setRestrictionsChallenge(java.lang.String); method public deprecated void setUserRestriction(java.lang.String, boolean); method public deprecated void setUserRestrictions(android.os.Bundle); diff --git a/api/test-current.txt b/api/test-current.txt index 9f03c8cc4853..029073ce3a0e 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -28100,11 +28100,13 @@ package android.os { method public boolean isSystemUser(); method public boolean isUserAGoat(); method public boolean isUserRunning(android.os.UserHandle); - method public boolean isUserRunningAndLocked(); - method public boolean isUserRunningAndLocked(android.os.UserHandle); - method public boolean isUserRunningAndUnlocked(); - method public boolean isUserRunningAndUnlocked(android.os.UserHandle); + method public deprecated boolean isUserRunningAndLocked(); + method public deprecated boolean isUserRunningAndLocked(android.os.UserHandle); + method public deprecated boolean isUserRunningAndUnlocked(); + method public deprecated boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); + method public boolean isUserUnlocked(); + method public boolean isUserUnlocked(android.os.UserHandle); method public deprecated boolean setRestrictionsChallenge(java.lang.String); method public deprecated void setUserRestriction(java.lang.String, boolean); method public deprecated void setUserRestrictions(android.os.Bundle); diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index 00a874b2d6fe..1f16c4a4cded 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -781,6 +781,7 @@ public class UserManager { * pattern or PIN), and credential-encrypted private app data storage is * available. */ + @Deprecated public boolean isUserRunningAndLocked() { return isUserRunningAndLocked(Process.myUserHandle()); } @@ -793,6 +794,7 @@ public class UserManager { * * @param user to retrieve the unlocked state for. */ + @Deprecated public boolean isUserRunningAndLocked(UserHandle user) { try { return ActivityManagerNative.getDefault().isUserRunning( @@ -808,6 +810,7 @@ public class UserManager { * pattern or PIN), and credential-encrypted private app data storage is * available. */ + @Deprecated public boolean isUserRunningAndUnlocked() { return isUserRunningAndUnlocked(Process.myUserHandle()); } @@ -820,6 +823,7 @@ public class UserManager { * * @param user to retrieve the unlocked state for. */ + @Deprecated public boolean isUserRunningAndUnlocked(UserHandle user) { try { return ActivityManagerNative.getDefault().isUserRunning( @@ -830,6 +834,33 @@ public class UserManager { } /** + * Return whether the calling user is running in an "unlocked" state. A user + * is unlocked only after they've entered their credentials (such as a lock + * pattern or PIN), and credential-encrypted private app data storage is + * available. + */ + public boolean isUserUnlocked() { + return isUserUnlocked(Process.myUserHandle()); + } + + /** + * Return whether the given user is running in an "unlocked" state. A user + * is unlocked only after they've entered their credentials (such as a lock + * pattern or PIN), and credential-encrypted private app data storage is + * available. + * + * @param user to retrieve the unlocked state for. + */ + public boolean isUserUnlocked(UserHandle user) { + try { + return ActivityManagerNative.getDefault().isUserRunning( + user.getIdentifier(), ActivityManager.FLAG_AND_UNLOCKED); + } catch (RemoteException e) { + return false; + } + } + + /** * Returns the UserInfo object describing a specific user. * Requires {@link android.Manifest.permission#MANAGE_USERS} permission. * @param userHandle the user handle of the user whose information is being requested. -- 2.11.0