diff options
| author | 2016-03-11 23:25:09 +0000 | |
|---|---|---|
| committer | 2016-03-11 23:25:10 +0000 | |
| commit | 89f1622e48206d2f8ebd9af9c32449f1f8eab7d1 (patch) | |
| tree | e6bb73b721649e54a3e5ae54ab41564d6257e449 | |
| parent | 026cf53fe46a3da512088212f22a2989993eb963 (diff) | |
| parent | b5690bc3086af1d1f064a080c728090de24d6f96 (diff) | |
Merge "Added logoutCurrentUser method" into nyc-dev
| -rw-r--r-- | core/java/android/app/ActivityManager.java | 17 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java | 12 |
2 files changed, 19 insertions, 10 deletions
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index 2f6907e3f31e..2d33a2c8450f 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -3329,6 +3329,23 @@ public class ActivityManager { } } + /** + * Logs out current current foreground user by switching to the system user and stopping the + * user being switched from. + * @hide + */ + public static void logoutCurrentUser() { + int currentUser = ActivityManager.getCurrentUser(); + if (currentUser != UserHandle.USER_SYSTEM) { + try { + ActivityManagerNative.getDefault().switchUser(UserHandle.USER_SYSTEM); + ActivityManagerNative.getDefault().stopUser(currentUser, /* force= */ false, null); + } catch (RemoteException e) { + e.rethrowFromSystemServer(); + } + } + } + /** {@hide} */ public static final int FLAG_OR_STOPPED = 1 << 0; /** {@hide} */ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java index cedc3c7eef2f..ab44b6a277ee 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java @@ -315,8 +315,8 @@ public class UserSwitcherController { public void logoutCurrentUser() { int currentUser = ActivityManager.getCurrentUser(); if (currentUser != UserHandle.USER_SYSTEM) { - switchToUserId(UserHandle.USER_SYSTEM); - stopUserId(currentUser); + pauseRefreshUsers(); + ActivityManager.logoutCurrentUser(); } } @@ -384,14 +384,6 @@ public class UserSwitcherController { } } - private void stopUserId(int id) { - try { - ActivityManagerNative.getDefault().stopUser(id, /* force= */ false, null); - } catch (RemoteException e) { - Log.e(TAG, "Couldn't stop user.", e); - } - } - private void showExitGuestDialog(int id) { if (mExitGuestDialog != null && mExitGuestDialog.isShowing()) { mExitGuestDialog.cancel(); |