am 70c0a168: am 1ad0fd9c: Merge "Accessibility active window not updated on time." into jb-mr1-dev

* commit '70c0a168d02146e6f5d43adb13cc0edf0ea8490a':
  Accessibility active window not updated on time.
This commit is contained in:
Svetoslav Ganov
2012-10-07 09:06:56 -07:00
committed by Android Git Automerger
2 changed files with 22 additions and 5 deletions

View File

@@ -643,6 +643,10 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
return mSecurityPolicy.mActiveWindowId;
}
void onTouchInteractionEnd() {
mSecurityPolicy.onTouchInteractionEnd();
}
private void switchUser(int userId) {
synchronized (mLock) {
// The user switched so we do not need to restore the current user
@@ -2178,16 +2182,24 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
mActiveWindowId = windowId;
}
} break;
case AccessibilityEvent.TYPE_VIEW_HOVER_ENTER:
case AccessibilityEvent.TYPE_VIEW_HOVER_EXIT: {
case AccessibilityEvent.TYPE_VIEW_HOVER_ENTER: {
mActiveWindowId = windowId;
} break;
case AccessibilityEvent.TYPE_TOUCH_INTERACTION_END: {
mActiveWindowId = getFocusedWindowId();
} break;
}
}
public void onTouchInteractionEnd() {
// We want to set the active window to be current immediately
// after the user has stopped touching the screen since if the
// user types with the IME he should get a feedback for the
// letter typed in the text view which is in the input focused
// window. Note that we always deliver hover accessibility events
// (they are a result of user touching the screen) so change of
// the active window before all hover accessibility events from
// the touched window are delivered is fine.
mActiveWindowId = getFocusedWindowId();
}
public int getRetrievalAllowingWindowLocked() {
return mActiveWindowId;
}

View File

@@ -304,6 +304,7 @@ class TouchExplorer implements EventStreamTransformation {
mNext.clear();
}
mTouchExplorationInProgress = false;
mAms.onTouchInteractionEnd();
}
@Override
@@ -615,6 +616,7 @@ class TouchExplorer implements EventStreamTransformation {
}
} break;
case MotionEvent.ACTION_UP:
mAms.onTouchInteractionEnd();
// We know that we do not need the pre-fed gesture points are not
// needed anymore since the last pointer just went up.
mStrokeBuffer.clear();
@@ -737,6 +739,7 @@ class TouchExplorer implements EventStreamTransformation {
}
} break;
case MotionEvent.ACTION_UP: {
mAms.onTouchInteractionEnd();
// Announce the end of a new touch interaction.
sendAccessibilityEvent(
AccessibilityEvent.TYPE_TOUCH_INTERACTION_END);
@@ -782,6 +785,7 @@ class TouchExplorer implements EventStreamTransformation {
AccessibilityEvent.TYPE_TOUCH_INTERACTION_END);
//$FALL-THROUGH$
case MotionEvent.ACTION_POINTER_UP: {
mAms.onTouchInteractionEnd();
mLongPressingPointerId = -1;
mLongPressingPointerDeltaX = 0;
mLongPressingPointerDeltaY = 0;
@@ -819,6 +823,7 @@ class TouchExplorer implements EventStreamTransformation {
}
} break;
case MotionEvent.ACTION_UP: {
mAms.onTouchInteractionEnd();
// Announce the end of gesture recognition.
sendAccessibilityEvent(
AccessibilityEvent.TYPE_GESTURE_DETECTION_END);