OSDN Git Service

Assist and Voice Input SwitchPreferences animate with talkback
authorMatthew Fritze <mfritze@google.com>
Wed, 27 Jul 2016 23:52:49 +0000 (16:52 -0700)
committerMatthew Fritze <mfritze@google.com>
Thu, 28 Jul 2016 01:04:49 +0000 (18:04 -0700)
Toggling Use text from screen now animates the switch preference
and has the appropriate "on/off" talkback response.

Change-Id: Ib5f940f251c45ead3a908d7f762eebb5f76931fb
Fixes: 30205119

src/com/android/settings/applications/ManageAssist.java

index 6fe966d..02875b6 100644 (file)
@@ -76,7 +76,7 @@ public class ManageAssist extends SettingsPreferenceFragment
         if (preference == mContextPref) {
             Settings.Secure.putInt(getContentResolver(), Settings.Secure.ASSIST_STRUCTURE_ENABLED,
                     (boolean) newValue ? 1 : 0);
-            postUpdateUi();
+            postGuardScreenshotPref();
             return true;
         }
         if (preference == mScreenshotPref) {
@@ -101,15 +101,23 @@ public class ManageAssist extends SettingsPreferenceFragment
         return false;
     }
 
-    private void postUpdateUi() {
+    private void postGuardScreenshotPref() {
         mHandler.post(new Runnable() {
             @Override
             public void run() {
-                updateUi();
+                guardScreenshotPref();
             }
         });
     }
 
+    private void guardScreenshotPref() {
+        boolean isChecked = mContextPref.isChecked();
+        boolean screenshotPrefWasSet = Settings.Secure.getInt(
+                getContentResolver(), Settings.Secure.ASSIST_SCREENSHOT_ENABLED, 1) != 0;
+        mScreenshotPref.setEnabled(isChecked);
+        mScreenshotPref.setChecked(isChecked && screenshotPrefWasSet);
+    }
+
     private void updateUi() {
         mDefaultAssitPref.refreshAssistApps();
         mVoiceInputPref.refreshVoiceInputs();
@@ -131,9 +139,7 @@ public class ManageAssist extends SettingsPreferenceFragment
             mVoiceInputPref.setAssistRestrict(currentAssist);
         }
 
-        mScreenshotPref.setEnabled(mContextPref.isChecked());
-        mScreenshotPref.setChecked(mContextPref.isChecked() && Settings.Secure.getInt(
-                getContentResolver(), Settings.Secure.ASSIST_SCREENSHOT_ENABLED, 1) != 0);
+        guardScreenshotPref();
     }
 
     private boolean isCurrentAssistVoiceService() {