From 91e3e434cfc384c5546886442091ac4949bcb369 Mon Sep 17 00:00:00 2001 From: Matthew Fritze Date: Wed, 27 Jul 2016 16:52:49 -0700 Subject: [PATCH] Assist and Voice Input SwitchPreferences animate with talkback Toggling Use text from screen now animates the switch preference and has the appropriate "on/off" talkback response. Change-Id: Ib5f940f251c45ead3a908d7f762eebb5f76931fb Fixes: 30205119 --- .../android/settings/applications/ManageAssist.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/applications/ManageAssist.java b/src/com/android/settings/applications/ManageAssist.java index 6fe966dc1c..02875b6b39 100644 --- a/src/com/android/settings/applications/ManageAssist.java +++ b/src/com/android/settings/applications/ManageAssist.java @@ -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() { -- 2.11.0