summaryrefslogtreecommitdiff
path: root/core/java/android/os/UserHandle.java
diff options
context:
space:
mode:
authorBart Sears <bsears@google.com>2015-09-26 01:58:59 +0000
committerBart Sears <bsears@google.com>2015-09-26 01:58:59 +0000
commit9249a9097707bb57ae0a7d114eff54bc82ad462d (patch)
tree628479e3471dec81d3546b0ff49ba07e5a7180e3 /core/java/android/os/UserHandle.java
parent737b216b5c28f7d7162f219136d4e8a9eb1a486b (diff)
Revert "Added --restricted option for create-user command"
This reverts commit 737b216b5c28f7d7162f219136d4e8a9eb1a486b. Change-Id: I4c43967933bb2e46cdb8ad6e643d7037d722cab2
Diffstat (limited to 'core/java/android/os/UserHandle.java')
-rw-r--r--core/java/android/os/UserHandle.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/core/java/android/os/UserHandle.java b/core/java/android/os/UserHandle.java
index 796addc4c3bc..213e0831c0f2 100644
--- a/core/java/android/os/UserHandle.java
+++ b/core/java/android/os/UserHandle.java
@@ -17,6 +17,7 @@
package android.os;
import android.annotation.SystemApi;
+import android.util.SparseArray;
import java.io.PrintWriter;
@@ -82,6 +83,8 @@ public final class UserHandle implements Parcelable {
final int mHandle;
+ private static final SparseArray<UserHandle> userHandles = new SparseArray<UserHandle>();
+
/**
* Checks to see if the user id is the same for the two uids, i.e., they belong to the same
* user.
@@ -141,8 +144,15 @@ public final class UserHandle implements Parcelable {
}
/** @hide */
- public static UserHandle of(int userId) {
- return userId == USER_SYSTEM ? SYSTEM : new UserHandle(userId);
+ public static UserHandle getCallingUserHandle() {
+ int userId = getUserId(Binder.getCallingUid());
+ UserHandle userHandle = userHandles.get(userId);
+ // Intentionally not synchronized to save time
+ if (userHandle == null) {
+ userHandle = new UserHandle(userId);
+ userHandles.put(userId, userHandle);
+ }
+ return userHandle;
}
/**