Fix bugs in credential storage settings:

* resume credential storage settings in onResume() in case if a new
  activity changes the settings and switches back.
* reset mRetry in case the dialog is retried and canceled.
* update preferences in onDismiss handler in case the dialog is canceled
  and need to revert the checkbox.
This commit is contained in:
Hung-ying Tyan
2009-09-30 11:56:05 +08:00
parent cabb147ce5
commit b0883cb384

View File

@@ -231,6 +231,8 @@ public class SecuritySettings extends PreferenceActivity {
mShowPassword.setChecked(Settings.System.getInt(getContentResolver(),
Settings.System.TEXT_SHOW_PASSWORD, 1) != 0);
mCstorHelper.resume();
}
@Override
@@ -362,7 +364,7 @@ public class SecuritySettings extends PreferenceActivity {
private View mView;
private int mDialogId;
private boolean mRetry = false;
private boolean mRetry;
private CheckBoxPreference mAccessCheckBox;
private Preference mResetButton;
@@ -383,6 +385,11 @@ public class SecuritySettings extends PreferenceActivity {
}
}
void resume() {
if (mExternalIntent != null) return;
updatePreferences(mKeyStore.test());
}
private void updatePreferences(int state) {
mAccessCheckBox.setEnabled(state != KeyStore.UNINITIALIZED);
mAccessCheckBox.setChecked(state == KeyStore.NO_ERROR);
@@ -428,6 +435,7 @@ public class SecuritySettings extends PreferenceActivity {
private void showCstorDialog(int dialogId) {
mDialogId = dialogId;
mRetry = false;
showDialog(dialogId);
}
@@ -455,6 +463,7 @@ public class SecuritySettings extends PreferenceActivity {
showCstorDialog(mDialogId);
} else {
removeDialog(mDialogId);
updatePreferences(mState); // may revert checkbox
if (mExternalIntent != null) {
finish();