diff options
author | Svetoslav Ganov <svetoslavganov@google.com> | 2011-09-14 10:44:09 -0700 |
---|---|---|
committer | Svetoslav Ganov <svetoslavganov@google.com> | 2011-09-14 10:49:08 -0700 |
commit | 37fedf8b78dea969b97188fd3079fea5e71704be (patch) | |
tree | 4037df31fc4bc76f905f483ee81e8dcd1b72ef65 /services | |
parent | cb18db8e7e43c4aa15aeb82dbab41ee3ee95f0b4 (diff) | |
download | frameworks_base-37fedf8b78dea969b97188fd3079fea5e71704be.zip frameworks_base-37fedf8b78dea969b97188fd3079fea5e71704be.tar.gz frameworks_base-37fedf8b78dea969b97188fd3079fea5e71704be.tar.bz2 |
Disable accessibility if all accessibility serivces are disbaled.
Accessibility was kept enabled even if all accessibility services
are disabled (explicitly by the user or removed) which was causing
the system to fire accessibility events that will never be consumed.
Change-Id: Ifb03e786ac0106687252bd1979725ffd724ad1c5
Diffstat (limited to 'services')
-rw-r--r-- | services/java/com/android/server/accessibility/AccessibilityManagerService.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/services/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/java/com/android/server/accessibility/AccessibilityManagerService.java index 09ddc2f..1e4faad 100644 --- a/services/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -225,7 +225,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub return false; } } - + @Override public void onReceive(Context context, Intent intent) { if (intent.getAction() == Intent.ACTION_BOOT_COMPLETED) { @@ -697,6 +697,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub private void manageServicesLocked() { populateEnabledServicesLocked(mEnabledServices); updateServicesStateLocked(mInstalledServices, mEnabledServices); + disableAccessibilityIfNoEnabledServices(mEnabledServices); } /** @@ -781,6 +782,19 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } /** + * Disables accessibility if there are no enabled accessibility services which + * to consume the generated accessibility events. + * + * @param enabledServices The set of enabled services. + */ + private void disableAccessibilityIfNoEnabledServices(Set<ComponentName> enabledServices) { + if (enabledServices.isEmpty()) { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.ACCESSIBILITY_ENABLED, 0); + } + } + + /** * Sends the state to the clients. */ private void sendStateToClientsLocked() { |