Add current user announce to MultiUserSwitch

Bug: 17142162
Change-Id: I0322b1e653b8ceac473739dc6b52aa3700d81fb8
This commit is contained in:
Adrian Roos
2014-09-03 15:56:30 +02:00
parent be47b07bef
commit 57cf5702e0
3 changed files with 27 additions and 3 deletions

View File

@@ -752,6 +752,9 @@
<!-- Accessibility label for the button that opens the user switcher. -->
<string name="accessibility_multi_user_switch_switcher">Switch user</string>
<!-- Accessibility label for the button that opens the user switcher and announces the current user. -->
<string name="accessibility_multi_user_switch_switcher_with_current">Switch user, current user <xliff:g id="current_user_name" example="John Doe">%s</xliff:g></string>
<!-- Accessibility label for the button that opens the quick contact of the user. -->
<string name="accessibility_multi_user_switch_quick_contact">Show profile</string>

View File

@@ -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);
}

View File

@@ -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;