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
This commit is contained in:
Matthew Fritze
2016-07-27 16:52:49 -07:00
parent 0a2a3a6ac1
commit 91e3e434cf

View File

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