summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/os/UserManager.java16
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/TetherUtil.java7
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java17
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java2
4 files changed, 27 insertions, 15 deletions
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 138be8743f98..b7c049a478e5 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -595,14 +595,24 @@ public class UserManager {
public boolean isSystemUser() {
return UserHandle.myUserId() == UserHandle.USER_SYSTEM;
}
+
/**
* @hide
* Returns whether the caller is running as an admin user. There can be more than one admin
* user.
*/
public boolean isAdminUser() {
- UserInfo user = getUserInfo(UserHandle.myUserId());
- return user != null ? user.isAdmin() : false;
+ return isUserAdmin(UserHandle.myUserId());
+ }
+
+ /**
+ * @hide
+ * Returns whether the provided user is an admin user. There can be more than one admin
+ * user.
+ */
+ public boolean isUserAdmin(int userId) {
+ UserInfo user = getUserInfo(userId);
+ return user != null && user.isAdmin();
}
/**
@@ -1070,7 +1080,7 @@ public class UserManager {
*/
public List<UserHandle> getUserProfiles() {
ArrayList<UserHandle> profiles = new ArrayList<UserHandle>();
- List<UserInfo> users = new ArrayList<UserInfo>();
+ List<UserInfo> users;
try {
users = mService.getProfiles(UserHandle.myUserId(), true /* enabledOnly */);
} catch (RemoteException re) {
diff --git a/packages/SettingsLib/src/com/android/settingslib/TetherUtil.java b/packages/SettingsLib/src/com/android/settingslib/TetherUtil.java
index 58e5e29adeee..096a5c43e12c 100644
--- a/packages/SettingsLib/src/com/android/settingslib/TetherUtil.java
+++ b/packages/SettingsLib/src/com/android/settingslib/TetherUtil.java
@@ -23,7 +23,7 @@ import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
import android.os.SystemProperties;
-import android.os.UserHandle;
+import android.os.UserManager;
import android.provider.Settings;
public class TetherUtil {
@@ -99,8 +99,9 @@ public class TetherUtil {
public static boolean isTetheringSupported(Context context) {
final ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
- final boolean isSecondaryUser = ActivityManager.getCurrentUser() != UserHandle.USER_OWNER;
- return !isSecondaryUser && cm.isTetheringSupported();
+ final boolean isAdminUser =
+ UserManager.get(context).isUserAdmin(ActivityManager.getCurrentUser());
+ return isAdminUser && cm.isTetheringSupported();
}
}
diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java
index 9eb7d0ebfcc3..c9a5f8f68606 100644
--- a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java
+++ b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java
@@ -30,6 +30,7 @@ import android.content.pm.PackageManager;
import android.content.pm.PackageStats;
import android.content.pm.ParceledListSlice;
import android.content.pm.ResolveInfo;
+import android.content.pm.UserInfo;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Handler;
@@ -88,7 +89,7 @@ public class ApplicationsState {
final PackageManager mPm;
final IPackageManager mIpm;
final UserManager mUm;
- final int mOwnerRetrieveFlags;
+ final int mAdminRetrieveFlags;
final int mRetrieveFlags;
PackageIntentReceiver mPackageIntentReceiver;
@@ -131,7 +132,7 @@ public class ApplicationsState {
mBackgroundHandler = new BackgroundHandler(mThread.getLooper());
// Only the owner can see all apps.
- mOwnerRetrieveFlags = PackageManager.GET_UNINSTALLED_PACKAGES |
+ mAdminRetrieveFlags = PackageManager.GET_UNINSTALLED_PACKAGES |
PackageManager.GET_DISABLED_COMPONENTS |
PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS;
mRetrieveFlags = PackageManager.GET_DISABLED_COMPONENTS |
@@ -181,17 +182,17 @@ public class ApplicationsState {
mPackageIntentReceiver.registerReceiver();
}
mApplications = new ArrayList<ApplicationInfo>();
- for (UserHandle user : mUm.getUserProfiles()) {
+ for (UserInfo user : mUm.getProfiles(UserHandle.myUserId())) {
try {
// If this user is new, it needs a map created.
- if (mEntriesMap.indexOfKey(user.getIdentifier()) < 0) {
- mEntriesMap.put(user.getIdentifier(), new HashMap<String, AppEntry>());
+ if (mEntriesMap.indexOfKey(user.id) < 0) {
+ mEntriesMap.put(user.id, new HashMap<String, AppEntry>());
}
@SuppressWarnings("unchecked")
ParceledListSlice<ApplicationInfo> list =
mIpm.getInstalledApplications(
- user.isOwner() ? mOwnerRetrieveFlags : mRetrieveFlags,
- user.getIdentifier());
+ user.isAdmin() ? mAdminRetrieveFlags : mRetrieveFlags,
+ user.id);
mApplications.addAll(list.getList());
} catch (RemoteException e) {
}
@@ -363,7 +364,7 @@ public class ApplicationsState {
return;
}
ApplicationInfo info = mIpm.getApplicationInfo(pkgName,
- userId == UserHandle.USER_OWNER ? mOwnerRetrieveFlags : mRetrieveFlags,
+ mUm.isUserAdmin(userId) ? mAdminRetrieveFlags : mRetrieveFlags,
userId);
if (info == null) {
return;
diff --git a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java
index 5d3d1206f4e8..9790e6408cc2 100644
--- a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java
+++ b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java
@@ -314,7 +314,7 @@ public class StorageMeasurement {
} else {
Intent service = new Intent().setComponent(DEFAULT_CONTAINER_COMPONENT);
mContext.bindServiceAsUser(service, mDefContainerConn,
- Context.BIND_AUTO_CREATE, UserHandle.OWNER);
+ Context.BIND_AUTO_CREATE, UserHandle.SYSTEM);
}
}
break;