if (preference == mContextPref) {
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ASSIST_STRUCTURE_ENABLED,
(boolean) newValue ? 1 : 0);
- postUpdateUi();
+ postGuardScreenshotPref();
return true;
}
if (preference == mScreenshotPref) {
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();
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() {