Add current user announce to MultiUserSwitch
Bug: 17142162 Change-Id: I0322b1e653b8ceac473739dc6b52aa3700d81fb8
This commit is contained in:
@@ -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>
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user