summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author felipeal <felipeal@google.com> 2020-07-23 08:13:41 -0700
committer Felipe Leme <felipeal@google.com> 2020-08-10 19:13:43 -0700
commite55688d450356343f67a17b5616e81dd69096a93 (patch)
tree9409e07a226e95d30e08b82f81172a98f43f1129
parent679825e9eab426e95fc21f32f69a57c550dc1883 (diff)
Minor fixes handling START_USER_SWITCH_UI_MSG:
- It was using the wrong handler. - It would never show the UserController UI on automotive. Test: manual verification Fixes: 161935091 Change-Id: I4ab764ee0ad02eb4aa5de3e651b866972db293d5
-rw-r--r--services/core/java/com/android/server/am/UserController.java19
1 files changed, 12 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java
index 0658e8139cc2..7420e0a6e828 100644
--- a/services/core/java/com/android/server/am/UserController.java
+++ b/services/core/java/com/android/server/am/UserController.java
@@ -1630,7 +1630,7 @@ class UserController implements Handler.Callback {
UserInfo currentUserInfo = getUserInfo(currentUserId);
Pair<UserInfo, UserInfo> userNames = new Pair<>(currentUserInfo, targetUserInfo);
mUiHandler.removeMessages(START_USER_SWITCH_UI_MSG);
- mUiHandler.sendMessage(mHandler.obtainMessage(
+ mUiHandler.sendMessage(mUiHandler.obtainMessage(
START_USER_SWITCH_UI_MSG, userNames));
} else {
mHandler.removeMessages(START_USER_SWITCH_FG_MSG);
@@ -2887,13 +2887,18 @@ class UserController implements Handler.Callback {
void showUserSwitchingDialog(UserInfo fromUser, UserInfo toUser,
String switchingFromSystemUserMessage, String switchingToSystemUserMessage) {
- if (!mService.mContext.getPackageManager()
+ if (mService.mContext.getPackageManager()
.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)) {
- final Dialog d = new UserSwitchingDialog(mService, mService.mContext, fromUser,
- toUser, true /* above system */, switchingFromSystemUserMessage,
- switchingToSystemUserMessage);
- d.show();
- }
+ // config_customUserSwitchUi is set to true on Automotive as CarSystemUI is
+ // responsible to show the UI; OEMs should not change that, but if they do, we
+ // should at least warn the user...
+ Slog.w(TAG, "Showing user switch dialog on UserController, it could cause a race "
+ + "condition if it's shown by CarSystemUI as well");
+ }
+ final Dialog d = new UserSwitchingDialog(mService, mService.mContext, fromUser,
+ toUser, true /* above system */, switchingFromSystemUserMessage,
+ switchingToSystemUserMessage);
+ d.show();
}
void reportGlobalUsageEventLocked(int event) {