diff options
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() { |