Accessibility service toggle setting state not preserved on screen rotation.

The state of the toggle switch for enabling/disabling an accessibility service
is not preserved on screen rotation after its state has been changed once.

bug:5478062

Change-Id: Ie453f78bc07dcd39d88bb4acf260768eccc73a74
This commit is contained in:
Svetoslav Ganov
2011-10-18 11:58:21 -07:00
parent 7a33de4c00
commit 96832f8cce

View File

@@ -807,11 +807,13 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
case DialogInterface.BUTTON_POSITIVE: case DialogInterface.BUTTON_POSITIVE:
checked = (mShownDialogId == DIALOG_ID_ENABLE_WARNING); checked = (mShownDialogId == DIALOG_ID_ENABLE_WARNING);
mToggleSwitch.setCheckedInternal(checked); mToggleSwitch.setCheckedInternal(checked);
getArguments().putBoolean(EXTRA_CHECKED, checked);
onPreferenceToggled(mPreferenceKey, checked); onPreferenceToggled(mPreferenceKey, checked);
break; break;
case DialogInterface.BUTTON_NEGATIVE: case DialogInterface.BUTTON_NEGATIVE:
checked = (mShownDialogId == DIALOG_ID_DISABLE_WARNING); checked = (mShownDialogId == DIALOG_ID_DISABLE_WARNING);
mToggleSwitch.setCheckedInternal(checked); mToggleSwitch.setCheckedInternal(checked);
getArguments().putBoolean(EXTRA_CHECKED, checked);
onPreferenceToggled(mPreferenceKey, checked); onPreferenceToggled(mPreferenceKey, checked);
break; break;
default: default:
@@ -827,6 +829,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
if (checked) { if (checked) {
if (!TextUtils.isEmpty(mEnableWarningMessage)) { if (!TextUtils.isEmpty(mEnableWarningMessage)) {
toggleSwitch.setCheckedInternal(false); toggleSwitch.setCheckedInternal(false);
getArguments().putBoolean(EXTRA_CHECKED, false);
showDialog(DIALOG_ID_ENABLE_WARNING); showDialog(DIALOG_ID_ENABLE_WARNING);
return true; return true;
} }
@@ -834,6 +837,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
} else { } else {
if (!TextUtils.isEmpty(mDisableWarningMessage)) { if (!TextUtils.isEmpty(mDisableWarningMessage)) {
toggleSwitch.setCheckedInternal(true); toggleSwitch.setCheckedInternal(true);
getArguments().putBoolean(EXTRA_CHECKED, true);
showDialog(DIALOG_ID_DISABLE_WARNING); showDialog(DIALOG_ID_DISABLE_WARNING);
return true; return true;
} }