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.
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index 80300e0..5a4d26b 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -231,6 +231,8 @@
 
         mShowPassword.setChecked(Settings.System.getInt(getContentResolver(),
                 Settings.System.TEXT_SHOW_PASSWORD, 1) != 0);
+
+        mCstorHelper.resume();
     }
 
     @Override
@@ -362,7 +364,7 @@
 
         private View mView;
         private int mDialogId;
-        private boolean mRetry = false;
+        private boolean mRetry;
         private CheckBoxPreference mAccessCheckBox;
         private Preference mResetButton;
 
@@ -383,6 +385,11 @@
             }
         }
 
+        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 @@
 
         private void showCstorDialog(int dialogId) {
             mDialogId = dialogId;
+            mRetry = false;
             showDialog(dialogId);
         }
 
@@ -455,6 +463,7 @@
                 showCstorDialog(mDialogId);
             } else {
                 removeDialog(mDialogId);
+                updatePreferences(mState); // may revert checkbox
 
                 if (mExternalIntent != null) {
                     finish();