From fc9c4cd51b3bdca27726dd6d8a00d47e388ca2aa Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Fri, 2 Nov 2012 11:49:22 -0700 Subject: [PATCH] Polish user selector accessibility. 1. The current user was not announced as such. 2. The event for a user switch was not sent. Change-Id: Ib3caf1f9e93ea1f0b5450246601bc37f416be6da --- .../view/accessibility/AccessibilityRecord.java | 11 +++++++++++ .../policy/impl/keyguard/KeyguardMultiUserAvatar.java | 5 +++++ .../accessibility/AccessibilityManagerService.java | 1 + 3 files changed, 17 insertions(+) diff --git a/core/java/android/view/accessibility/AccessibilityRecord.java b/core/java/android/view/accessibility/AccessibilityRecord.java index 5c60a1262ff0e..7147c57c8b0d2 100644 --- a/core/java/android/view/accessibility/AccessibilityRecord.java +++ b/core/java/android/view/accessibility/AccessibilityRecord.java @@ -167,6 +167,17 @@ public class AccessibilityRecord { mSourceNodeId, GET_SOURCE_PREFETCH_FLAGS); } + /** + * Sets the window id. + * + * @param windowId The window id. + * + * @hide + */ + public void setWindowId(int windowId) { + mSourceWindowId = windowId; + } + /** * Gets the id of the window from which the event comes from. * diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserAvatar.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserAvatar.java index a21ebe38b2c7c..7bf2bf9991356 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserAvatar.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserAvatar.java @@ -150,6 +150,11 @@ class KeyguardMultiUserAvatar extends FrameLayout { if (active) { KeyguardLinearLayout parent = (KeyguardLinearLayout) getParent(); parent.setTopChild(this); + // TODO: Create an appropriate asset when string changes are possible. + setContentDescription(mUserName.getText() + + ". " + mContext.getString(R.string.user_switched, "")); + } else { + setContentDescription(mUserName.getText()); } } updateVisualsForActive(mActive, animate, SWITCH_ANIMATION_DURATION, onComplete); diff --git a/services/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/java/com/android/server/accessibility/AccessibilityManagerService.java index 6b277c7887e24..aee96f9906f34 100644 --- a/services/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -1330,6 +1330,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { AccessibilityEvent event = AccessibilityEvent.obtain( AccessibilityEvent.TYPE_ANNOUNCEMENT); event.getText().add(message); + event.setWindowId(mSecurityPolicy.getRetrievalAllowingWindowLocked()); sendAccessibilityEvent(event, mCurrentUserId); } }