summaryrefslogtreecommitdiff
path: root/services
diff options
context:
space:
mode:
author Svetoslav Ganov <svetoslavganov@google.com> 2011-06-03 19:43:23 -0700
committer Svetoslav Ganov <svetoslavganov@google.com> 2011-06-03 19:49:00 -0700
commitc321c19fc91bfec9a74039ed4d37b815dd4ef379 (patch)
treeadbefdc8f339733357a1fd0f6eb817ba7b8b3cd7 /services
parent8cdda442357bc5c5ab673b6369ee1560ebe1b086 (diff)
Fixing a bug I introduced during my last merge.
Change-Id: I6474ca94a6ef9bd17a5670a4baa51673f3c2f5d0
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/accessibility/AccessibilityManagerService.java17
1 files changed, 10 insertions, 7 deletions
diff --git a/services/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/java/com/android/server/accessibility/AccessibilityManagerService.java
index 7801aecf444c..fba293cd52d3 100644
--- a/services/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -259,7 +259,6 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
unbindAllServicesLocked();
}
updateClientsLocked();
- updateInputFilterLocked();
}
}
});
@@ -319,6 +318,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int feedbackType) {
List<AccessibilityServiceInfo> result = mEnabledServicesForFeedbackTempList;
+ result.clear();
List<Service> services = mServices;
synchronized (mLock) {
while (feedbackType != 0) {
@@ -327,7 +327,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
final int serviceCount = services.size();
for (int i = 0; i < serviceCount; i++) {
Service service = services.get(i);
- if (service.mFeedbackType == feedbackType) {
+ if ((service.mFeedbackType & feedbackTypeBit) != 0) {
result.add(service.mAccessibilityServiceInfo);
}
}
@@ -368,10 +368,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
service.setAccessibilityServiceInfo(oldInfo);
} else {
service.setAccessibilityServiceInfo(info);
- tryAddServiceLocked(service);
}
-
- updateInputFilterLocked();
}
return;
default:
@@ -772,6 +769,10 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
}
mNotificationTimeout = info.notificationTimeout;
mIsDefault = (info.flags & AccessibilityServiceInfo.DEFAULT) != 0;
+
+ synchronized (mLock) {
+ tryAddServiceLocked(this);
+ }
}
/**
@@ -794,7 +795,9 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
*/
public boolean unbind() {
if (mService != null) {
- tryRemoveServiceLocked(this);
+ synchronized (mLock) {
+ tryRemoveServiceLocked(this);
+ }
mContext.unbindService(this);
mService = null;
return true;
@@ -809,7 +812,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
* @return True if the service is configured, false otherwise.
*/
public boolean isConfigured() {
- return (mEventTypes != 0 && mFeedbackType != 0);
+ return (mEventTypes != 0 && mFeedbackType != 0 && mService != null);
}
public void setServiceInfo(AccessibilityServiceInfo info) {