From 59f07690c2bdd97b9e486b776d2175d914818d06 Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Mon, 1 Oct 2012 19:01:32 -0700 Subject: [PATCH] Owner should not be announces as a user switch. 1. The accessibility layer announces user switches. Even though the initial switch to the owner on a singe user device is a valid use switch we should not announce it for accessibility. bug:7264693 Change-Id: Idf022fab6b74c84b7a96bc4ed7c7fee2b83029a6 --- core/res/res/values/strings.xml | 2 +- .../accessibility/AccessibilityManagerService.java | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 51dc0d210e83f..0a94a5b9ca0e6 100755 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -3934,6 +3934,6 @@ Enable accessibility canceled. - Switched to user %1$s. + Current user %1$s. diff --git a/services/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/java/com/android/server/accessibility/AccessibilityManagerService.java index 8193a4f27a90d..d23e5714804ba 100644 --- a/services/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -111,7 +111,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { // TODO: This is arbitrary. When there is time implement this by watching // when that accessibility services are bound. - private static final int WAIT_FOR_USER_STATE_FULLY_INITIALIZED_MILLIS = 5000; + private static final int WAIT_FOR_USER_STATE_FULLY_INITIALIZED_MILLIS = 3000; private static final String FUNCTION_REGISTER_UI_TEST_AUTOMATION_SERVICE = "registerUiTestAutomationService"; @@ -659,6 +659,10 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { oldUserState.mUserId, 0).sendToTarget(); } + // Announce user changes only if more that one exist. + UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); + final boolean announceNewUser = userManager.getUsers().size() > 1; + // The user changed. mCurrentUserId = userId; @@ -666,9 +670,11 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { mMainHandler.obtainMessage(MainHandler.MSG_SEND_RECREATE_INTERNAL_STATE, mCurrentUserId, 0).sendToTarget(); - // Schedule announcement of the current user if needed. - mMainHandler.sendEmptyMessageDelayed(MainHandler.MSG_ANNOUNCE_NEW_USER_IF_NEEDED, - WAIT_FOR_USER_STATE_FULLY_INITIALIZED_MILLIS); + if (announceNewUser) { + // Schedule announcement of the current user if needed. + mMainHandler.sendEmptyMessageDelayed(MainHandler.MSG_ANNOUNCE_NEW_USER_IF_NEEDED, + WAIT_FOR_USER_STATE_FULLY_INITIALIZED_MILLIS); + } } }