diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index c7a91afc8da3f..23d9748ddd09e 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -756,6 +756,9 @@ Switch user + + Switch user, current user %s + Show profile diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java index 2c1d70db52335..9898f452b44f7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java @@ -558,6 +558,8 @@ public abstract class BaseStatusBar extends SystemUI implements // disable lockscreen notifications until user acts on the banner. Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, 0); + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 0); final String packageName = mContext.getPackageName(); PendingIntent cancelIntent = PendingIntent.getBroadcast(mContext, 0, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java index d7144dadcd9e8..dc491183b4f01 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java @@ -30,6 +30,7 @@ import android.widget.FrameLayout; import com.android.systemui.R; import com.android.systemui.qs.QSPanel; import com.android.systemui.statusbar.policy.KeyguardUserSwitcher; +import com.android.systemui.statusbar.policy.UserSwitcherController; /** * Container for image of the multi user switcher (tappable). @@ -90,9 +91,21 @@ public class MultiUserSwitch extends FrameLayout implements View.OnClickListener if (isClickable()) { final UserManager um = UserManager.get(getContext()); - String text = mContext.getString(um.isUserSwitcherEnabled() - ? R.string.accessibility_multi_user_switch_switcher - : R.string.accessibility_multi_user_switch_quick_contact); + String text; + if (um.isUserSwitcherEnabled()) { + UserSwitcherController controller = mQsPanel.getHost() + .getUserSwitcherController(); + String currentUser = controller.getCurrentUserName(mContext); + if (TextUtils.isEmpty(currentUser)) { + text = mContext.getString(R.string.accessibility_multi_user_switch_switcher); + } else { + text = mContext.getString( + R.string.accessibility_multi_user_switch_switcher_with_current, + currentUser); + } + } else { + text = mContext.getString(R.string.accessibility_multi_user_switch_quick_contact); + } if (!TextUtils.isEmpty(text)) { event.getText().add(text); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index ddd03d69e22e8..cbb5e8c162554 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -3774,7 +3774,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, row = (ExpandableNotificationRow) expandView; row.setUserExpanded(true); } - if (isLockscreenPublicMode() && !userAllowsPrivateNotificationsInPublic(mCurrentUserId)) { + boolean fullShadeNeedsBouncer = !userAllowsPrivateNotificationsInPublic(mCurrentUserId) + || !mShowLockscreenNotifications; + if (isLockscreenPublicMode() && fullShadeNeedsBouncer) { mLeaveOpenOnKeyguardHide = true; showBouncer(); mDraggedDownRow = row; 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 e4b1945fc37c3..52fa621dc5cc6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java @@ -334,6 +334,14 @@ public class UserSwitcherController { } } + public String getCurrentUserName(Context context) { + if (mUsers.isEmpty()) return null; + UserRecord item = mUsers.get(0); + if (item == null || item.info == null) return null; + if (item.isGuest) return context.getString(R.string.guest_nickname); + return item.info.name; + } + public static abstract class BaseUserAdapter extends BaseAdapter { final UserSwitcherController mController;