diff options
author | Svetoslav Ganov <svetoslavganov@google.com> | 2011-09-09 18:57:35 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-09-09 18:57:35 -0700 |
commit | fd19906b50927834787403ca984f6fda93b53410 (patch) | |
tree | 3d6896b1aed30a014618452183976ae471fb7c50 /core/java/android | |
parent | dbed072251306bb1d8d9cdca46eed491539f92c0 (diff) | |
parent | 6bc5e530016928027c7b390a8368ecdd5bff072f (diff) | |
download | frameworks_base-fd19906b50927834787403ca984f6fda93b53410.zip frameworks_base-fd19906b50927834787403ca984f6fda93b53410.tar.gz frameworks_base-fd19906b50927834787403ca984f6fda93b53410.tar.bz2 |
Merge "Inter process interrogation ocassionally gets stuck."
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/view/accessibility/AccessibilityInteractionClient.java | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/core/java/android/view/accessibility/AccessibilityInteractionClient.java b/core/java/android/view/accessibility/AccessibilityInteractionClient.java index 071701e..25b980b 100644 --- a/core/java/android/view/accessibility/AccessibilityInteractionClient.java +++ b/core/java/android/view/accessibility/AccessibilityInteractionClient.java @@ -104,6 +104,7 @@ public final class AccessibilityInteractionClient public void setSameThreadMessage(Message message) { synchronized (mInstanceLock) { mSameThreadMessage = message; + mInstanceLock.notifyAll(); } } @@ -125,7 +126,6 @@ public final class AccessibilityInteractionClient Thread.currentThread().getId()); // If the scale is zero the call has failed. if (windowScale > 0) { - handleSameThreadMessageIfNeeded(); AccessibilityNodeInfo info = getFindAccessibilityNodeInfoResultAndClear( interactionId); finalizeAccessibilityNodeInfo(info, connection, windowScale); @@ -142,7 +142,7 @@ public final class AccessibilityInteractionClient * in the currently active window and starts from the root View in the window. * * @param connection A connection for interacting with the system. - * @param id The id of the node. + * @param viewId The id of the view. * @return An {@link AccessibilityNodeInfo} if found, null otherwise. */ public AccessibilityNodeInfo findAccessibilityNodeInfoByViewIdInActiveWindow( @@ -153,7 +153,6 @@ public final class AccessibilityInteractionClient viewId, interactionId, this, Thread.currentThread().getId()); // If the scale is zero the call has failed. if (windowScale > 0) { - handleSameThreadMessageIfNeeded(); AccessibilityNodeInfo info = getFindAccessibilityNodeInfoResultAndClear( interactionId); finalizeAccessibilityNodeInfo(info, connection, windowScale); @@ -182,7 +181,6 @@ public final class AccessibilityInteractionClient text, interactionId, this, Thread.currentThread().getId()); // If the scale is zero the call has failed. if (windowScale > 0) { - handleSameThreadMessageIfNeeded(); List<AccessibilityNodeInfo> infos = getFindAccessibilityNodeInfosResultAndClear( interactionId); finalizeAccessibilityNodeInfos(infos, connection, windowScale); @@ -217,7 +215,6 @@ public final class AccessibilityInteractionClient Thread.currentThread().getId()); // If the scale is zero the call has failed. if (windowScale > 0) { - handleSameThreadMessageIfNeeded(); List<AccessibilityNodeInfo> infos = getFindAccessibilityNodeInfosResultAndClear( interactionId); finalizeAccessibilityNodeInfos(infos, connection, windowScale); @@ -246,7 +243,6 @@ public final class AccessibilityInteractionClient accessibilityWindowId, accessibilityViewId, action, interactionId, this, Thread.currentThread().getId()); if (success) { - handleSameThreadMessageIfNeeded(); return getPerformAccessibilityActionResult(interactionId); } } catch (RemoteException re) { @@ -363,6 +359,11 @@ public final class AccessibilityInteractionClient final long startTimeMillis = SystemClock.uptimeMillis(); while (true) { try { + Message sameProcessMessage = getSameProcessMessageAndClear(); + if (sameProcessMessage != null) { + sameProcessMessage.getTarget().handleMessage(sameProcessMessage); + } + if (mInteractionId == interactionId) { return true; } @@ -402,17 +403,6 @@ public final class AccessibilityInteractionClient } /** - * Handles the message stored if the interacted and interacting - * threads are the same otherwise this is a NOP. - */ - private void handleSameThreadMessageIfNeeded() { - Message sameProcessMessage = getSameProcessMessageAndClear(); - if (sameProcessMessage != null) { - sameProcessMessage.getTarget().handleMessage(sameProcessMessage); - } - } - - /** * Finalize an {@link AccessibilityNodeInfo} before passing it to the client. * * @param info The info. |