summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Svetoslav Ganov <svetoslavganov@google.com> 2012-04-20 14:57:11 -0700
committer Svetoslav Ganov <svetoslavganov@google.com> 2012-04-20 14:57:18 -0700
commit8e2f41426ce162a164d1074dd67ea4549ffd0711 (patch)
treecfd14751bbb59f10389bc8673d02be0dfab6f13a
parent5778626d9b3aa2d81dc8bbe3139547ad90b90f25 (diff)
Fixes in the accessibility gesture dispatching.
1. The gesture dispatcher thread was not waiting in a loop that check for complete initialization. Therefore is was susceptible to missed signals and unexpected interrupts. 2. In the gesture processing message handle the interaction id was reading the wrong message argument. bug:5932640 Change-Id: Ic65ecc01a7fe7d43929c6c07d0759ae9001cf515
-rw-r--r--services/java/com/android/server/accessibility/AccessibilityManagerService.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/services/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/java/com/android/server/accessibility/AccessibilityManagerService.java
index 8215dcff6bf7..86efd17223cd 100644
--- a/services/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -1007,10 +1007,12 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
synchronized (mGestureLock) {
Thread worker = new Thread(this, THREAD_NAME);
worker.start();
- try {
- mGestureLock.wait();
- } catch (InterruptedException ie) {
- /* ignore */
+ while (mHandler == null) {
+ try {
+ mGestureLock.wait();
+ } catch (InterruptedException ie) {
+ /* ignore */
+ }
}
}
}
@@ -1044,7 +1046,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
IAccessibilityServiceClient service =
(IAccessibilityServiceClient) message.obj;
final int gestureId = message.arg1;
- final int interactionId = message.arg1;
+ final int interactionId = message.arg2;
try {
service.onGesture(gestureId, this, interactionId);