summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorKenny Guy <kennyguy@google.com>2014-02-25 13:01:38 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-02-25 13:01:38 +0000
commite21c52a8c9ef27c348f784daa8ec384152c3264e (patch)
treef3a830421493265b9733289edf86afe564807813 /core/java
parentf5a9ad1cd046439d8fe0eba883c35717a052943e (diff)
parent1a447535cef7e3739d5f763dfe13e568568b9789 (diff)
downloadframeworks_base-e21c52a8c9ef27c348f784daa8ec384152c3264e.zip
frameworks_base-e21c52a8c9ef27c348f784daa8ec384152c3264e.tar.gz
frameworks_base-e21c52a8c9ef27c348f784daa8ec384152c3264e.tar.bz2
Merge "Hide managed profiles from user switchers."
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/content/pm/UserInfo.java9
-rw-r--r--core/java/android/os/UserManager.java26
2 files changed, 33 insertions, 2 deletions
diff --git a/core/java/android/content/pm/UserInfo.java b/core/java/android/content/pm/UserInfo.java
index aa4a243..6f1d4f8 100644
--- a/core/java/android/content/pm/UserInfo.java
+++ b/core/java/android/content/pm/UserInfo.java
@@ -18,6 +18,7 @@ package android.content.pm;
import android.os.Parcel;
import android.os.Parcelable;
+import android.os.SystemProperties;
import android.os.UserHandle;
/**
@@ -116,6 +117,14 @@ public class UserInfo implements Parcelable {
return (flags & FLAG_MANAGED_PROFILE) == FLAG_MANAGED_PROFILE;
}
+ /**
+ * @return true if this user can be switched to.
+ **/
+ public boolean supportsSwitchTo() {
+ // TODO remove fw.show_hidden_users when we have finished developing managed profiles.
+ return !isManagedProfile() || SystemProperties.getBoolean("fw.show_hidden_users", false);
+ }
+
public UserInfo() {
}
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 8f6dda1..1ec5cd5 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -164,11 +164,13 @@ public class UserManager {
/**
* Returns whether the system supports multiple users.
- * @return true if multiple users can be created, false if it is a single user device.
+ * @return true if multiple users can be created by user, false if it is a single user device.
* @hide
*/
public static boolean supportsMultipleUsers() {
- return getMaxSupportedUsers() > 1;
+ return getMaxSupportedUsers() > 1
+ && SystemProperties.getBoolean("fw.show_multiuserui",
+ Resources.getSystem().getBoolean(R.bool.config_enableMultiUserUI));
}
/**
@@ -601,6 +603,26 @@ public class UserManager {
}
/**
+ * Returns true if the user switcher should be shown, this will be if there
+ * are multiple users that aren't managed profiles.
+ * @hide
+ * @return true if user switcher should be shown.
+ */
+ public boolean isUserSwitcherEnabled() {
+ List<UserInfo> users = getUsers(true);
+ if (users == null) {
+ return false;
+ }
+ int switchableUserCount = 0;
+ for (UserInfo user : users) {
+ if (user.supportsSwitchTo()) {
+ ++switchableUserCount;
+ }
+ }
+ return switchableUserCount > 1;
+ }
+
+ /**
* Returns a serial number on this device for a given userHandle. User handles can be recycled
* when deleting and creating users, but serial numbers are not reused until the device is wiped.
* @param userHandle