diff options
| author | Pierre Barbier de Reuille <pbdr@google.com> | 2020-01-17 16:50:29 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-01-17 16:50:29 +0000 |
| commit | d56a615a01836141fd958cbf5c8345770fe48026 (patch) | |
| tree | abf17447549f8e246a833a89fe879a8e807e19eb /core/java/android | |
| parent | 874951f003c361163e83a2c27ef3e5347b4dba3c (diff) | |
| parent | 17eaf740d1a3a25325a6e1d449422b1bef47b207 (diff) | |
Merge "New UserManager API to request quiet mode."
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/os/IUserManager.aidl | 2 | ||||
| -rw-r--r-- | core/java/android/os/UserManager.java | 51 |
2 files changed, 51 insertions, 2 deletions
diff --git a/core/java/android/os/IUserManager.aidl b/core/java/android/os/IUserManager.aidl index edaaf81cd906..33d613152bc1 100644 --- a/core/java/android/os/IUserManager.aidl +++ b/core/java/android/os/IUserManager.aidl @@ -113,7 +113,7 @@ interface IUserManager { boolean isUserRunning(int userId); boolean isUserNameSet(int userId); boolean hasRestrictedProfiles(); - boolean requestQuietModeEnabled(String callingPackage, boolean enableQuietMode, int userId, in IntentSender target); + boolean requestQuietModeEnabled(String callingPackage, boolean enableQuietMode, int userId, in IntentSender target, int flags); String getUserName(); long getUserStartRealtime(); long getUserUnlockRealtime(); diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index 2eaefca0efa3..12e843c87481 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -133,6 +133,22 @@ public class UserManager { public static final String USER_TYPE_SYSTEM_HEADLESS = "android.os.usertype.system.HEADLESS"; /** + * Flag passed to {@link #requestQuietModeEnabled} to request disabling quiet mode only if + * there is no need to confirm the user credentials. If credentials are required to disable + * quiet mode, {@link #requestQuietModeEnabled} will do nothing and return {@code false}. + */ + public static final int QUIET_MODE_DISABLE_ONLY_IF_CREDENTIAL_NOT_REQUIRED = 0x1; + + /** + * List of flags available for the {@link #requestQuietModeEnabled} method. + * @hide + */ + @Retention(RetentionPolicy.SOURCE) + @IntDef(flag = true, prefix = { "QUIET_MODE_" }, value = { + QUIET_MODE_DISABLE_ONLY_IF_CREDENTIAL_NOT_REQUIRED }) + public @interface QuietModeFlag {} + + /** * @hide * No user restriction. */ @@ -3216,6 +3232,25 @@ public class UserManager { } /** + * Perform the same operation as {@link #requestQuietModeEnabled(boolean, UserHandle)}, but + * with a flag to tweak the behavior of the request. + * + * @param enableQuietMode whether quiet mode should be enabled or disabled + * @param userHandle user handle of the profile + * @param flags Can be 0 or {@link #QUIET_MODE_DISABLE_ONLY_IF_CREDENTIAL_NOT_REQUIRED}. + * @return {@code false} if user's credential is needed in order to turn off quiet mode, + * {@code true} otherwise + * @throws SecurityException if the caller is invalid + * @throws IllegalArgumentException if {@code userHandle} is not a managed profile + * + * @see #isQuietModeEnabled(UserHandle) + */ + public boolean requestQuietModeEnabled(boolean enableQuietMode, @NonNull UserHandle userHandle, + @QuietModeFlag int flags) { + return requestQuietModeEnabled(enableQuietMode, userHandle, null, flags); + } + + /** * Similar to {@link #requestQuietModeEnabled(boolean, UserHandle)}, except you can specify * a target to start when user is unlocked. If {@code target} is specified, caller must have * the {@link android.Manifest.permission#MANAGE_USERS} permission. @@ -3225,9 +3260,23 @@ public class UserManager { */ public boolean requestQuietModeEnabled( boolean enableQuietMode, @NonNull UserHandle userHandle, IntentSender target) { + return requestQuietModeEnabled(enableQuietMode, userHandle, target, 0); + } + /** + * Similar to {@link #requestQuietModeEnabled(boolean, UserHandle)}, except you can specify + * a target to start when user is unlocked. If {@code target} is specified, caller must have + * the {@link android.Manifest.permission#MANAGE_USERS} permission. + * + * @see {@link #requestQuietModeEnabled(boolean, UserHandle)} + * @hide + */ + public boolean requestQuietModeEnabled( + boolean enableQuietMode, @NonNull UserHandle userHandle, IntentSender target, + int flags) { try { return mService.requestQuietModeEnabled( - mContext.getPackageName(), enableQuietMode, userHandle.getIdentifier(), target); + mContext.getPackageName(), enableQuietMode, userHandle.getIdentifier(), target, + flags); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } |
