Logs on activities life cycle simplified
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / activity / PinCodeActivity.java
index 39b973d..11ddf11 100644 (file)
@@ -1,5 +1,8 @@
-/* ownCloud Android client application
+/**
+ *   ownCloud Android client application
+ *
  *   Copyright (C) 2011 Bartek Przybylski
+ *   Copyright (C) 2015 ownCloud Inc.
  *
  *   This program is free software: you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License version 2,
@@ -18,14 +21,6 @@ package com.owncloud.android.ui.activity;
 
 import java.util.Arrays;
 
-import com.actionbarsherlock.app.ActionBar;
-import com.actionbarsherlock.app.SherlockFragmentActivity;
-import com.owncloud.android.R;
-import com.owncloud.android.utils.DisplayUtils;
-
-import android.app.AlertDialog;
-import android.content.DialogInterface;
-import android.content.Intent;
 import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
@@ -39,11 +34,20 @@ import android.view.View.OnKeyListener;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.TextView;
+import android.widget.Toast;
+
+import com.actionbarsherlock.app.ActionBar;
+import com.actionbarsherlock.app.SherlockFragmentActivity;
+import com.owncloud.android.R;
+import com.owncloud.android.authentication.PassCodeManager;
+import com.owncloud.android.utils.DisplayUtils;
 
 public class PinCodeActivity extends SherlockFragmentActivity {
 
   
-    public final static String EXTRA_ACTIVITY = "com.owncloud.android.ui.activity.PinCodeActivity.ACTIVITY";
+    public final static String ACTION_TOGGLE = PinCodeActivity.class.getCanonicalName() + ".TOGGLE";
+    public final static String ACTION_REQUEST= PinCodeActivity.class.getCanonicalName()  + ".REQUEST";
+
     public final static String EXTRA_NEW_STATE = "com.owncloud.android.ui.activity.PinCodeActivity.NEW_STATE";
     
     private Button mBCancel;
@@ -56,8 +60,6 @@ public class PinCodeActivity extends SherlockFragmentActivity {
     
     private String [] mTempText ={"","","",""};
     
-    private String mActivity;
-    
     private boolean mConfirmingPinCode = false;
     private boolean mPinCodeChecked = false;
     private boolean mNewPasswordEntered = false;
@@ -69,9 +71,6 @@ public class PinCodeActivity extends SherlockFragmentActivity {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.pincodelock); 
         
-        Intent intent = getIntent();
-        mActivity = intent.getStringExtra(EXTRA_ACTIVITY);
-     
         mBCancel = (Button) findViewById(R.id.cancel);
         mPinHdr = (TextView) findViewById(R.id.pinHdr);
         mPinHdrExplanation = (TextView) findViewById(R.id.pinHdrExpl);
@@ -93,31 +92,32 @@ public class PinCodeActivity extends SherlockFragmentActivity {
             mPinCodeChecked = true; 
             mNewPasswordEntered = true;
             
-        }else{ 
-            
+        } else {
+
+            /// TODO rewrite this activity; this logic is too twisted
             if (appPrefs.getBoolean("set_pincode", false)){
-               // pincode activated
-               if (mActivity.equals("preferences")){
-                // PIN has been activated yet
-                 mPinHdr.setText(R.string.pincode_configure_your_pin);
-                 mPinHdrExplanation.setVisibility(View.VISIBLE);
-                 mPinCodeChecked = true ; // No need to check it 
-                 setChangePincodeView(true);
-               }else{
-                // PIN active
-                 mBCancel.setVisibility(View.INVISIBLE);
-                 mBCancel.setVisibility(View.GONE);
-                 mPinHdr.setText(R.string.pincode_enter_pin_code);
-                 mPinHdrExplanation.setVisibility(View.INVISIBLE);
-                 setChangePincodeView(false);
+                // pincode activated
+                if (ACTION_TOGGLE.equals(getIntent().getAction())) {
+                    // PIN has been activated yet
+                    mPinHdr.setText(R.string.pincode_configure_your_pin);
+                    mPinHdrExplanation.setVisibility(View.VISIBLE);
+                    mPinCodeChecked = true ; // No need to check it
+                    setChangePincodeView(true);
+               } else {
+                    // PIN active
+                    mBCancel.setVisibility(View.INVISIBLE);
+                    mBCancel.setVisibility(View.GONE);
+                    mPinHdr.setText(R.string.pincode_enter_pin_code);
+                    mPinHdrExplanation.setVisibility(View.INVISIBLE);
+                    setChangePincodeView(false);
               }
             
-           }else {
-            // pincode removal
-              mPinHdr.setText(R.string.pincode_remove_your_pincode);
-              mPinHdrExplanation.setVisibility(View.INVISIBLE);
-              mPinCodeChecked = false;
-              setChangePincodeView(true); 
+           } else {
+                // pincode removal
+                mPinHdr.setText(R.string.pincode_remove_your_pincode);
+                mPinHdrExplanation.setVisibility(View.INVISIBLE);
+                mPinCodeChecked = false;
+                setChangePincodeView(true);
            }
            
         }
@@ -365,34 +365,37 @@ public class PinCodeActivity extends SherlockFragmentActivity {
                         mPinCodeChecked = checkPincode();
                     }
                     
-                    if (mPinCodeChecked && 
-                            ( mActivity.equals("FileDisplayActivity") || mActivity.equals("PreviewImageActivity") ) ){
-                        finish();
-                    } else if (mPinCodeChecked){
-                        
-                        Intent intent = getIntent();
-                        String newState = intent.getStringExtra(EXTRA_NEW_STATE);
-                        
-                        if (newState.equals("false")){
-                            SharedPreferences.Editor appPrefs = PreferenceManager
-                                    .getDefaultSharedPreferences(getApplicationContext()).edit();
-                            appPrefs.putBoolean("set_pincode",false);
-                            appPrefs.commit();
-                            
-                            setInitVars();
-                            pinCodeEnd(false);
-                            
-                        }else{
-                        
-                            if (!mConfirmingPinCode){
-                                pinCodeChangeRequest();
-                             
+                    if (mPinCodeChecked) {
+                        // TODO remove or update:
+                        // PassCodeManager.setUnlockTimestamp();
+
+                        if (ACTION_REQUEST.equals(getIntent().getAction())) {
+                            finish();
+
+                        } else if (mPinCodeChecked) {
+                            String newState = getIntent().getStringExtra(EXTRA_NEW_STATE);
+
+                            // TODO - next decision should done according to the current state of PIN in prefs (enable or not), not whatever says de client
+                            if (newState.equals("false")) {
+                                SharedPreferences.Editor appPrefs = PreferenceManager
+                                        .getDefaultSharedPreferences(getApplicationContext()).edit();
+                                appPrefs.putBoolean("set_pincode", false);
+                                appPrefs.commit();
+
+                                setInitVars();
+                                pinCodeEnd(false);
+
                             } else {
-                                confirmPincode();
+
+                                if (!mConfirmingPinCode) {
+                                    pinCodeChangeRequest();
+
+                                } else {
+                                    confirmPincode();
+                                }
                             }
+
                         }
-                   
-                        
                     }    
                 }
             }
@@ -483,21 +486,9 @@ public class PinCodeActivity extends SherlockFragmentActivity {
         
         }else {
             Arrays.fill(mTempText, null);
-            AlertDialog aDialog = new AlertDialog.Builder(this).create();
             CharSequence errorSeq = getString(R.string.common_error);
-            aDialog.setTitle(errorSeq);
-            CharSequence cseq = getString(R.string.pincode_wrong);
-            aDialog.setMessage(cseq);
-            CharSequence okSeq = getString(R.string.common_ok);
-            aDialog.setButton(okSeq, new DialogInterface.OnClickListener(){
-
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                   return; 
-                }
-                
-            });
-            aDialog.show();
+            Toast.makeText(this, errorSeq, Toast.LENGTH_LONG).show();
+            
             clearBoxes(); 
             mPinHdr.setText(R.string.pincode_enter_pin_code);
             mPinHdrExplanation.setVisibility(View.INVISIBLE);
@@ -527,23 +518,10 @@ public class PinCodeActivity extends SherlockFragmentActivity {
             savePincodeAndExit();
             
         } else {
-            
             Arrays.fill(mTempText, null);
-            AlertDialog aDialog = new AlertDialog.Builder(this).create();
-            CharSequence errorSeq = getString(R.string.common_error);
-            aDialog.setTitle(errorSeq);
             CharSequence cseq = getString(R.string.pincode_mismatch);
-            aDialog.setMessage(cseq);
-            CharSequence okSeq = getString(R.string.common_ok);
-            aDialog.setButton(okSeq, new DialogInterface.OnClickListener(){
-
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                   return; 
-                }
-                
-            });
-            aDialog.show();
+            Toast.makeText(this, cseq, Toast.LENGTH_LONG).show();
+            
             mPinHdr.setText(R.string.pincode_configure_your_pin);
             mPinHdrExplanation.setVisibility(View.VISIBLE);
             clearBoxes();
@@ -553,32 +531,15 @@ public class PinCodeActivity extends SherlockFragmentActivity {
    
     
     protected void pinCodeEnd(boolean state){
-        AlertDialog aDialog = new AlertDialog.Builder(this).create();
-        
+        CharSequence cseq;
         if (state){
-            CharSequence saveSeq = getString(R.string.common_save_exit);
-            aDialog.setTitle(saveSeq);
-            CharSequence cseq = getString(R.string.pincode_stored);
-            aDialog.setMessage(cseq);
-            
+           cseq = getString(R.string.pincode_stored);
         }else{
-            CharSequence saveSeq = getString(R.string.common_save_exit);
-            aDialog.setTitle(saveSeq);
-            CharSequence cseq = getString(R.string.pincode_removed);
-            aDialog.setMessage(cseq);
-            
+             cseq = getString(R.string.pincode_removed);
         }
-        CharSequence okSeq = getString(R.string.common_ok);
-        aDialog.setButton(okSeq, new DialogInterface.OnClickListener(){
-
-            @Override
-            public void onClick(DialogInterface dialog, int which) {
-                finish();
-                return; 
-            }
-            
-        });
-        aDialog.show(); 
+        
+        Toast.makeText(this, cseq, Toast.LENGTH_LONG).show();
+        finish();
     }
     
     protected void savePincodeAndExit(){
@@ -593,14 +554,10 @@ public class PinCodeActivity extends SherlockFragmentActivity {
         appPrefs.commit();
         
         pinCodeEnd(true);
-        
-        
-        
     }
     
     
     protected void clearBoxes(){
-        
         mText1.setText("");
         mText2.setText("");
         mText3.setText("");
@@ -612,10 +569,8 @@ public class PinCodeActivity extends SherlockFragmentActivity {
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event){
         if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()== 0){
-            
-            if (mActivity.equals("preferences")){
+            if (ACTION_TOGGLE.equals(getIntent().getAction())){
                 SharedPreferences.Editor appPrefsE = PreferenceManager
-            
                     .getDefaultSharedPreferences(getApplicationContext()).edit();
             
                 SharedPreferences appPrefs = PreferenceManager
@@ -628,14 +583,7 @@ public class PinCodeActivity extends SherlockFragmentActivity {
                 finish();
             }
             return true; 
-            
         }
-        
         return super.onKeyDown(keyCode, event);
-    }
-    
-   
-
-    
-            
+    }     
 }