diff options
| author | 2011-06-03 19:43:23 -0700 | |
|---|---|---|
| committer | 2011-06-03 19:49:00 -0700 | |
| commit | c321c19fc91bfec9a74039ed4d37b815dd4ef379 (patch) | |
| tree | adbefdc8f339733357a1fd0f6eb817ba7b8b3cd7 /services | |
| parent | 8cdda442357bc5c5ab673b6369ee1560ebe1b086 (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.java | 17 |
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) { |