summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2012-09-20 22:15:37 -0700
committerAmith Yamasani <yamasani@google.com>2012-09-20 22:33:43 -0700
commit920ace0bbc2d4133dbec991d2636c99a57d6245e (patch)
treea69deeaa2cd76a15eaf402faeb95bba608bc6895 /core/java
parent2f98008d06cbe48f0f5619d16f59988952c9b2ca (diff)
downloadframeworks_base-920ace0bbc2d4133dbec991d2636c99a57d6245e.zip
frameworks_base-920ace0bbc2d4133dbec991d2636c99a57d6245e.tar.gz
frameworks_base-920ace0bbc2d4133dbec991d2636c99a57d6245e.tar.bz2
Query users excluding any being removed
Keep track of user creation and last logged-in time. adb shell dumpsys users User switcher shouldn't show users about to be removed. No need to check for singleton for activities. Bug: 7194894 Change-Id: Ic9a59ea5bd544920479e191d1a1e8a77f8b6ddcf
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/content/pm/UserInfo.java8
-rw-r--r--core/java/android/os/IUserManager.aidl2
-rw-r--r--core/java/android/os/UserManager.java20
3 files changed, 26 insertions, 4 deletions
diff --git a/core/java/android/content/pm/UserInfo.java b/core/java/android/content/pm/UserInfo.java
index a06aba9..ab32523 100644
--- a/core/java/android/content/pm/UserInfo.java
+++ b/core/java/android/content/pm/UserInfo.java
@@ -68,6 +68,8 @@ public class UserInfo implements Parcelable {
public String name;
public String iconPath;
public int flags;
+ public long creationTime;
+ public long lastLoggedInTime;
public UserInfo(int id, String name, int flags) {
this(id, name, null, flags);
@@ -101,6 +103,8 @@ public class UserInfo implements Parcelable {
id = orig.id;
flags = orig.flags;
serialNumber = orig.serialNumber;
+ creationTime = orig.creationTime;
+ lastLoggedInTime = orig.lastLoggedInTime;
}
public UserHandle getUserHandle() {
@@ -122,6 +126,8 @@ public class UserInfo implements Parcelable {
dest.writeString(iconPath);
dest.writeInt(flags);
dest.writeInt(serialNumber);
+ dest.writeLong(creationTime);
+ dest.writeLong(lastLoggedInTime);
}
public static final Parcelable.Creator<UserInfo> CREATOR
@@ -140,5 +146,7 @@ public class UserInfo implements Parcelable {
iconPath = source.readString();
flags = source.readInt();
serialNumber = source.readInt();
+ creationTime = source.readLong();
+ lastLoggedInTime = source.readLong();
}
}
diff --git a/core/java/android/os/IUserManager.aidl b/core/java/android/os/IUserManager.aidl
index 0798913..ec02ae0 100644
--- a/core/java/android/os/IUserManager.aidl
+++ b/core/java/android/os/IUserManager.aidl
@@ -30,7 +30,7 @@ interface IUserManager {
void setUserName(int userHandle, String name);
void setUserIcon(int userHandle, in Bitmap icon);
Bitmap getUserIcon(int userHandle);
- List<UserInfo> getUsers();
+ List<UserInfo> getUsers(boolean excludeDying);
UserInfo getUserInfo(int userHandle);
void setGuestEnabled(boolean enable);
boolean isGuestEnabled();
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index b532966..2a5c1aa 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -116,7 +116,23 @@ public class UserManager {
*/
public List<UserInfo> getUsers() {
try {
- return mService.getUsers();
+ return mService.getUsers(false);
+ } catch (RemoteException re) {
+ Log.w(TAG, "Could not get user list", re);
+ return null;
+ }
+ }
+
+ /**
+ * Returns information for all users on this device.
+ * Requires {@link android.Manifest.permission#MANAGE_USERS} permission.
+ * @param excludeDying specify if the list should exclude users being removed.
+ * @return the list of users that were created.
+ * @hide
+ */
+ public List<UserInfo> getUsers(boolean excludeDying) {
+ try {
+ return mService.getUsers(excludeDying);
} catch (RemoteException re) {
Log.w(TAG, "Could not get user list", re);
return null;
@@ -271,6 +287,4 @@ public class UserManager {
}
return -1;
}
-
-
}