OSDN Git Service

Update accessibility service toggle switch when resuming.
authorSvetoslav <svetoslavganov@google.com>
Wed, 8 Oct 2014 19:29:12 +0000 (12:29 -0700)
committerSvetoslav Ganov <svetoslavganov@google.com>
Wed, 8 Oct 2014 19:47:55 +0000 (19:47 +0000)
An accessibility service can be enabled via a global gesture
in which case if the settings activity for enabling the service
is running its toggle switch is shown in the wrong state.

bug:16558106

Change-Id: I2821b148475a7afae21e29148ef98db724c817f2

src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java

index 2375061..9fe224e 100644 (file)
@@ -56,10 +56,7 @@ public class ToggleAccessibilityServicePreferenceFragment
             new SettingsContentObserver(new Handler()) {
             @Override
                 public void onChange(boolean selfChange, Uri uri) {
-                    String settingValue = Settings.Secure.getString(getContentResolver(),
-                            Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
-                    final boolean enabled = settingValue.contains(mComponentName.flattenToString());
-                    mSwitchBar.setCheckedInternal(enabled);
+                    updateSwitchBarToggleSwitch();
                 }
             };
 
@@ -70,6 +67,7 @@ public class ToggleAccessibilityServicePreferenceFragment
     @Override
     public void onResume() {
         mSettingsContentObserver.register(getContentResolver());
+        updateSwitchBarToggleSwitch();
         super.onResume();
     }
 
@@ -195,6 +193,13 @@ public class ToggleAccessibilityServicePreferenceFragment
         }
     }
 
+    private void updateSwitchBarToggleSwitch() {
+        String settingValue = Settings.Secure.getString(getContentResolver(),
+                Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
+        final boolean checked = settingValue.contains(mComponentName.flattenToString());
+        mSwitchBar.setCheckedInternal(checked);
+    }
+
     private View createEnableDialogContentView(AccessibilityServiceInfo info) {
         LayoutInflater inflater = (LayoutInflater) getSystemService(
                 Context.LAYOUT_INFLATER_SERVICE);