X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/63a3522ab7c8940ccc48be09e2247f86cbf60598..e0867d2b28b3e29430eead9938f9fc6a9b2944be:/src/com/owncloud/android/ui/activity/PinCodeActivity.java diff --git a/src/com/owncloud/android/ui/activity/PinCodeActivity.java b/src/com/owncloud/android/ui/activity/PinCodeActivity.java index 215ea45f..cab1917c 100644 --- a/src/com/owncloud/android/ui/activity/PinCodeActivity.java +++ b/src/com/owncloud/android/ui/activity/PinCodeActivity.java @@ -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,12 +21,6 @@ package com.owncloud.android.ui.activity; import java.util.Arrays; -import com.actionbarsherlock.app.SherlockFragmentActivity; - -import com.owncloud.android.R; - -import android.app.AlertDialog; -import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; @@ -38,40 +35,44 @@ 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.PinCheck; +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"; - Button bCancel; - TextView mPinHdr; - TextView mPinHdrExplanation; - EditText mText1; - EditText mText2; - EditText mText3; - EditText mText4; - - String [] tempText ={"","","",""}; + private Button mBCancel; + private TextView mPinHdr; + private TextView mPinHdrExplanation; + private EditText mText1; + private EditText mText2; + private EditText mText3; + private EditText mText4; - String activity; + private String [] mTempText ={"","","",""}; - boolean confirmingPinCode = false; - boolean pinCodeChecked = false; - boolean newPasswordEntered = false; - boolean bChange = true; // to control that only one blocks jump - int tCounter ; // Count the number of attempts an user could introduce the PIN code + private boolean mConfirmingPinCode = false; + private boolean mPinCodeChecked = false; + private boolean mNewPasswordEntered = false; + private boolean mBChange = true; // to control that only one blocks jump + //private int mTCounter ; // Count the number of attempts an user could introduce the PIN code protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.pincodelock); - Intent intent = getIntent(); - activity = intent.getStringExtra(EXTRA_ACTIVITY); - - bCancel = (Button) findViewById(R.id.cancel); + mBCancel = (Button) findViewById(R.id.cancel); mPinHdr = (TextView) findViewById(R.id.pinHdr); mPinHdrExplanation = (TextView) findViewById(R.id.pinHdrExpl); mText1 = (EditText) findViewById(R.id.txt1); @@ -81,8 +82,6 @@ public class PinCodeActivity extends SherlockFragmentActivity { mText3 = (EditText) findViewById(R.id.txt3); mText4 = (EditText) findViewById(R.id.txt4); - - SharedPreferences appPrefs = PreferenceManager .getDefaultSharedPreferences(getApplicationContext()); @@ -91,54 +90,56 @@ public class PinCodeActivity extends SherlockFragmentActivity { // In a previous version settings is allow from start if ( (appPrefs.getString("PrefPinCode1", null) == null ) ){ setChangePincodeView(true); - pinCodeChecked = true; - newPasswordEntered = true; - - }else{ + mPinCodeChecked = true; + mNewPasswordEntered = true; + } else { + + /// TODO rewrite this activity; this logic is too twisted if (appPrefs.getBoolean("set_pincode", false)){ - // pincode activated - if (activity.equals("preferences")){ - // PIN has been activated yet - mPinHdr.setText(R.string.pincode_configure_your_pin); - mPinHdrExplanation.setVisibility(View.VISIBLE); - pinCodeChecked = true ; // No need to check it - setChangePincodeView(true); - }else{ - // PIN active - bCancel.setVisibility(View.INVISIBLE); - bCancel.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); - pinCodeChecked = false; - setChangePincodeView(true); + } else { + // pincode removal + mPinHdr.setText(R.string.pincode_remove_your_pincode); + mPinHdrExplanation.setVisibility(View.INVISIBLE); + mPinCodeChecked = false; + setChangePincodeView(true); } } setTextListeners(); - + ActionBar actionBar = getSupportActionBar(); + actionBar.setIcon(DisplayUtils.getSeasonalIconId()); } protected void setInitVars(){ - confirmingPinCode = false; - pinCodeChecked = false; - newPasswordEntered = false; + mConfirmingPinCode = false; + mPinCodeChecked = false; + mNewPasswordEntered = false; } protected void setInitView(){ - bCancel.setVisibility(View.INVISIBLE); - bCancel.setVisibility(View.GONE); + mBCancel.setVisibility(View.INVISIBLE); + mBCancel.setVisibility(View.GONE); mPinHdr.setText(R.string.pincode_enter_pin_code); mPinHdrExplanation.setVisibility(View.INVISIBLE); } @@ -147,8 +148,8 @@ public class PinCodeActivity extends SherlockFragmentActivity { protected void setChangePincodeView(boolean state){ if(state){ - bCancel.setVisibility(View.VISIBLE); - bCancel.setOnClickListener(new OnClickListener() { + mBCancel.setVisibility(View.VISIBLE); + mBCancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -195,8 +196,8 @@ public class PinCodeActivity extends SherlockFragmentActivity { @Override public void afterTextChanged(Editable s) { if (s.length() > 0) { - if (!confirmingPinCode){ - tempText[0] = mText1.getText().toString(); + if (!mConfirmingPinCode){ + mTempText[0] = mText1.getText().toString(); } mText2.requestFocus(); @@ -224,8 +225,8 @@ public class PinCodeActivity extends SherlockFragmentActivity { @Override public void afterTextChanged(Editable s) { if (s.length() > 0) { - if (!confirmingPinCode){ - tempText[1] = mText2.getText().toString(); + if (!mConfirmingPinCode){ + mTempText[1] = mText2.getText().toString(); } mText3.requestFocus(); @@ -237,16 +238,16 @@ public class PinCodeActivity extends SherlockFragmentActivity { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_DEL && bChange) { + if (keyCode == KeyEvent.KEYCODE_DEL && mBChange) { mText1.setText(""); mText1.requestFocus(); - if (!confirmingPinCode) - tempText[0] = ""; - bChange= false; + if (!mConfirmingPinCode) + mTempText[0] = ""; + mBChange= false; - }else if(!bChange){ - bChange=true; + }else if(!mBChange){ + mBChange=true; } return false; @@ -288,8 +289,8 @@ public class PinCodeActivity extends SherlockFragmentActivity { @Override public void afterTextChanged(Editable s) { if (s.length() > 0) { - if (!confirmingPinCode){ - tempText[2] = mText3.getText().toString(); + if (!mConfirmingPinCode){ + mTempText[2] = mText3.getText().toString(); } mText4.requestFocus(); } @@ -300,15 +301,15 @@ public class PinCodeActivity extends SherlockFragmentActivity { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_DEL && bChange) { + if (keyCode == KeyEvent.KEYCODE_DEL && mBChange) { mText2.requestFocus(); - if (!confirmingPinCode) - tempText[1] = ""; + if (!mConfirmingPinCode) + mTempText[1] = ""; mText2.setText(""); - bChange= false; + mBChange= false; - }else if(!bChange){ - bChange=true; + }else if(!mBChange){ + mBChange=true; } return false; @@ -356,42 +357,45 @@ public class PinCodeActivity extends SherlockFragmentActivity { public void afterTextChanged(Editable s) { if (s.length() > 0) { - if (!confirmingPinCode){ - tempText[3] = mText4.getText().toString(); + if (!mConfirmingPinCode){ + mTempText[3] = mText4.getText().toString(); } mText1.requestFocus(); - if (!pinCodeChecked){ - pinCodeChecked = checkPincode(); + if (!mPinCodeChecked){ + mPinCodeChecked = checkPincode(); } - if (pinCodeChecked && activity.equals("FileDisplayActivity")){ - finish(); - } else if (pinCodeChecked){ - - 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 (!confirmingPinCode){ - pinCodeChangeRequest(); - + if (mPinCodeChecked) { + PinCheck.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(); + } } + } - - } } } @@ -403,15 +407,15 @@ public class PinCodeActivity extends SherlockFragmentActivity { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_DEL && bChange) { + if (keyCode == KeyEvent.KEYCODE_DEL && mBChange) { mText3.requestFocus(); - if (!confirmingPinCode) - tempText[2]=""; + if (!mConfirmingPinCode) + mTempText[2]=""; mText3.setText(""); - bChange= false; + mBChange= false; - }else if(!bChange){ - bChange=true; + }else if(!mBChange){ + mBChange=true; } return false; } @@ -456,7 +460,7 @@ public class PinCodeActivity extends SherlockFragmentActivity { clearBoxes(); mPinHdr.setText(R.string.pincode_reenter_your_pincode); mPinHdrExplanation.setVisibility(View.INVISIBLE); - confirmingPinCode =true; + mConfirmingPinCode =true; } @@ -472,36 +476,24 @@ public class PinCodeActivity extends SherlockFragmentActivity { String pText3 = appPrefs.getString("PrefPinCode3", null); String pText4 = appPrefs.getString("PrefPinCode4", null); - if ( tempText[0].equals(pText1) && - tempText[1].equals(pText2) && - tempText[2].equals(pText3) && - tempText[3].equals(pText4) ) { + if ( mTempText[0].equals(pText1) && + mTempText[1].equals(pText2) && + mTempText[2].equals(pText3) && + mTempText[3].equals(pText4) ) { return true; }else { - Arrays.fill(tempText, null); - AlertDialog aDialog = new AlertDialog.Builder(this).create(); + Arrays.fill(mTempText, null); 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); - newPasswordEntered = true; - confirmingPinCode = false; + mNewPasswordEntered = true; + mConfirmingPinCode = false; } @@ -511,38 +503,25 @@ public class PinCodeActivity extends SherlockFragmentActivity { protected void confirmPincode(){ - confirmingPinCode = false; + mConfirmingPinCode = false; String rText1 = mText1.getText().toString(); String rText2 = mText2.getText().toString(); String rText3 = mText3.getText().toString(); String rText4 = mText4.getText().toString(); - if ( tempText[0].equals(rText1) && - tempText[1].equals(rText2) && - tempText[2].equals(rText3) && - tempText[3].equals(rText4) ) { + if ( mTempText[0].equals(rText1) && + mTempText[1].equals(rText2) && + mTempText[2].equals(rText3) && + mTempText[3].equals(rText4) ) { savePincodeAndExit(); } else { - - Arrays.fill(tempText, null); - AlertDialog aDialog = new AlertDialog.Builder(this).create(); - CharSequence errorSeq = getString(R.string.common_error); - aDialog.setTitle(errorSeq); + Arrays.fill(mTempText, null); 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(); @@ -552,54 +531,33 @@ 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(){ SharedPreferences.Editor appPrefs = PreferenceManager .getDefaultSharedPreferences(getApplicationContext()).edit(); - appPrefs.putString("PrefPinCode1", tempText[0]); - appPrefs.putString("PrefPinCode2",tempText[1]); - appPrefs.putString("PrefPinCode3", tempText[2]); - appPrefs.putString("PrefPinCode4", tempText[3]); + appPrefs.putString("PrefPinCode1", mTempText[0]); + appPrefs.putString("PrefPinCode2",mTempText[1]); + appPrefs.putString("PrefPinCode3", mTempText[2]); + appPrefs.putString("PrefPinCode4", mTempText[3]); appPrefs.putBoolean("set_pincode",true); appPrefs.commit(); pinCodeEnd(true); - - - } protected void clearBoxes(){ - mText1.setText(""); mText2.setText(""); mText3.setText(""); @@ -611,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 (activity.equals("preferences")){ + if (ACTION_TOGGLE.equals(getIntent().getAction())){ SharedPreferences.Editor appPrefsE = PreferenceManager - .getDefaultSharedPreferences(getApplicationContext()).edit(); SharedPreferences appPrefs = PreferenceManager @@ -627,14 +583,7 @@ public class PinCodeActivity extends SherlockFragmentActivity { finish(); } return true; - } - return super.onKeyDown(keyCode, event); - } - - - - - + } }