From 57cf5702e0634b8cb25daa8f2f73292428ec4e08 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Wed, 3 Sep 2014 15:56:30 +0200 Subject: [PATCH] Add current user announce to MultiUserSwitch Bug: 17142162 Change-Id: I0322b1e653b8ceac473739dc6b52aa3700d81fb8 --- packages/SystemUI/res/values/strings.xml | 3 +++ .../statusbar/phone/MultiUserSwitch.java | 19 ++++++++++++++++--- .../policy/UserSwitcherController.java | 8 ++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index b488c562a42b8..eff519105b0ad 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -752,6 +752,9 @@ Switch user + + Switch user, current user %s + Show profile 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/policy/UserSwitcherController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java index adb71e714f388..27a89015b91ee 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;