浏览代码

save the state before rotate

purigarcia 9 年之前
父节点
当前提交
066324f60a
共有 1 个文件被更改,包括 26 次插入7 次删除
  1. 26 7
      src/com/owncloud/android/ui/activity/PassCodeActivity.java

+ 26 - 7
src/com/owncloud/android/ui/activity/PassCodeActivity.java

@@ -61,7 +61,9 @@ public class PassCodeActivity extends ActionBarActivity {
     private EditText[] mPassCodeEditTexts = new EditText[4];
     
     private String [] mPassCodeDigits = {"","","",""};
+    private static String KEY_PASSCODE_DIGITS = "PASSCODE_DIGITS";
     private boolean mConfirmingPassCode = false;
+    private static String KEY_CONFIRMING_PASSCODE = "CONFIRMING_PASSCODE";
 
     private boolean mBChange = true; // to control that only one blocks jump
 
@@ -96,13 +98,23 @@ public class PassCodeActivity extends ActionBarActivity {
             setCancelButtonEnabled(false);      // no option to cancel
 
         } else if (ACTION_ENABLE.equals(getIntent().getAction())) {
-            /// pass code preference has just been activated in Preferences;
-            // will receive and confirm pass code value
-            mPassCodeHdr.setText(R.string.pass_code_configure_your_pass_code);
-            //mPassCodeHdr.setText(R.string.pass_code_enter_pass_code);
-            // TODO choose a header, check iOS
-            mPassCodeHdrExplanation.setVisibility(View.VISIBLE);
-            setCancelButtonEnabled(true);
+            if (savedInstanceState != null) {
+                mConfirmingPassCode = savedInstanceState.getBoolean(PassCodeActivity.KEY_CONFIRMING_PASSCODE);
+                mPassCodeDigits = savedInstanceState.getStringArray(PassCodeActivity.KEY_PASSCODE_DIGITS);
+                if(mConfirmingPassCode){
+                    //the app was in the passcodeconfirmation
+                    requestPassCodeConfirmation();
+                }
+            }
+            if(savedInstanceState == null || (savedInstanceState != null && !mConfirmingPassCode)){
+                /// pass code preference has just been activated in Preferences;
+                // will receive and confirm pass code value
+                mPassCodeHdr.setText(R.string.pass_code_configure_your_pass_code);
+                //mPassCodeHdr.setText(R.string.pass_code_enter_pass_code);
+                // TODO choose a header, check iOS
+                mPassCodeHdrExplanation.setVisibility(View.VISIBLE);
+                setCancelButtonEnabled(true);
+            }
 
         } else if (ACTION_DISABLE.equals(getIntent().getAction())) {
             /// pass code preference has just been disabled in Preferences;
@@ -455,6 +467,13 @@ public class PassCodeActivity extends ActionBarActivity {
         finish();
     }
 
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putBoolean(PassCodeActivity.KEY_CONFIRMING_PASSCODE, mConfirmingPassCode);
+        outState.putStringArray(PassCodeActivity.KEY_PASSCODE_DIGITS, mPassCodeDigits);
+    }
+
 
     private class PassCodeDigitTextWatcher implements TextWatcher {