summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorSvetoslav Ganov <svetoslavganov@google.com>2011-09-14 10:44:09 -0700
committerSvetoslav Ganov <svetoslavganov@google.com>2011-09-14 10:49:08 -0700
commit37fedf8b78dea969b97188fd3079fea5e71704be (patch)
tree4037df31fc4bc76f905f483ee81e8dcd1b72ef65 /services
parentcb18db8e7e43c4aa15aeb82dbab41ee3ee95f0b4 (diff)
downloadframeworks_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.java16
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() {