*/
package eu.alefzero.owncloud.ui.activity;
+import java.util.Arrays;
+
import com.actionbarsherlock.app.SherlockFragmentActivity;
import eu.alefzero.owncloud.R;
-import android.app.ActionBar.LayoutParams;
+
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.graphics.Typeface;
import android.os.Bundle;
+import android.os.Handler;
import android.preference.PreferenceManager;
import android.text.Editable;
+import android.text.InputType;
import android.text.TextWatcher;
+import android.text.method.PasswordTransformationMethod;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.View.OnKeyListener;
+import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
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 de PIN code
+ int tCounter ; // Count the number of attempts an user could introduce the PIN code
protected void onCreate(Bundle savedInstanceState) {
mText4 = (EditText) findViewById(R.id.txt4);
+
SharedPreferences appPrefs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
- // Not PIN Code defined yet
- if ( appPrefs.getString("PrefPinCode1", null) == null ){
- setChangePincodeView();
+
+ // Not PIN Code defined yet.
+ // In a previous version settings is allow from start
+ if ( (appPrefs.getString("PrefPinCode1", null) == null ) ){
+ setChangePincodeView(true);
pinCodeChecked = true;
newPasswordEntered = true;
- } else {
- setInitView();
- }
+ }else{
+
+ 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);
+ 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);
+ setChangePincodeView(false);
+ }
+
+ }else {
+ // pincode removal
+ mPinHdr.setText(R.string.pincode_remove_your_pincode);
+ pinCodeChecked = false;
+ setChangePincodeView(true);
+ }
-
+ }
setTextListeners();
}
-
+
+
+
+ protected void setInitVars(){
+ confirmingPinCode = false;
+ pinCodeChecked = false;
+ newPasswordEntered = false;
+
+ }
protected void setInitView(){
bCancel.setVisibility(View.INVISIBLE);
mPinHdr.setText(R.string.pincode_enter_pin_code);
}
-
-
- protected void setChangePincodeView(){
- mPinHdr.setText(R.string.pincode_configure_your_pin);
+
+ protected void setChangePincodeView(boolean state){
+
+ if(state){
+ bCancel.setVisibility(View.VISIBLE);
bCancel.setOnClickListener(new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- finish();
+ @Override
+ public void onClick(View v) {
+
+ SharedPreferences.Editor appPrefsE = PreferenceManager
+ .getDefaultSharedPreferences(getApplicationContext()).edit();
+
+ SharedPreferences appPrefs = PreferenceManager
+ .getDefaultSharedPreferences(getApplicationContext());
+
+ boolean state = appPrefs.getBoolean("set_pincode", false);
+ appPrefsE.putBoolean("set_pincode",!state);
+ appPrefsE.commit();
+ setInitVars();
+ finish();
}
});
+ }
}
+
+
/*
*
*/
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
+
}
});
if (!confirmingPinCode){
tempText[1] = mText2.getText().toString();
}
+
mText3.requestFocus();
+
}
}
mText1.setText("");
mText1.requestFocus();
- tempText[0] = "";
+ if (!confirmingPinCode)
+ tempText[0] = "";
bChange= false;
}else if(!bChange){
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
+
+ mText2.setCursorVisible(true);
if (mText1.getText().toString().equals("")){
+ mText2.setSelected(false);
+ mText2.setCursorVisible(false);
mText1.requestFocus();
+ mText1.setSelected(true);
+ mText1.setSelection(0);
}
}
tempText[2] = mText3.getText().toString();
}
mText4.requestFocus();
+
}
}
if (keyCode == KeyEvent.KEYCODE_DEL && bChange) {
mText2.requestFocus();
- tempText[1] = "";
+ if (!confirmingPinCode)
+ tempText[1] = "";
mText2.setText("");
bChange= false;
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
+ mText3.setCursorVisible(true);
if (mText1.getText().toString().equals("")){
- mText1.requestFocus();
+ mText3.setSelected(false);
+ mText3.setCursorVisible(false);
+ mText1.requestFocus();
+ mText1.setSelected(true);
+ mText1.setSelection(0);
}else if (mText2.getText().toString().equals("")){
- mText2.requestFocus();
+ mText3.setSelected(false);
+ mText3.setCursorVisible(false);
+ mText2.requestFocus();
+ mText2.setSelected(true);
+ mText2.setSelection(0);
}
}
.getDefaultSharedPreferences(getApplicationContext()).edit();
appPrefs.putBoolean("set_pincode",false);
appPrefs.commit();
- // TODO Alert Message que salte y vuelva a la pantalla anterior
- finish();
+ setInitVars();
+ pinCodeEnd(false);
}else{
- if (!confirmingPinCode && !newPasswordEntered){
+ if (!confirmingPinCode){
pinCodeChangeRequest();
- } else if (newPasswordEntered && !confirmingPinCode){
- mPinHdr.setText(R.string.pincode_confirm_your_pincode);
- confirmingPinCode = true;
- clearBoxes();
+
} else {
confirmPincode();
}
if (keyCode == KeyEvent.KEYCODE_DEL && bChange) {
mText3.requestFocus();
- tempText[2]="";
+ if (!confirmingPinCode)
+ tempText[2]="";
mText3.setText("");
bChange= false;
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
+
+ mText4.setCursorVisible(true);
+
if (mText1.getText().toString().equals("")){
- mText1.requestFocus();
+ mText4.setSelected(false);
+ mText4.setCursorVisible(false);
+ mText1.requestFocus();
+ mText1.setSelected(true);
+ mText1.setSelection(0);
}else if (mText2.getText().toString().equals("")){
- mText2.requestFocus();
+ mText4.setSelected(false);
+ mText4.setCursorVisible(false);
+ mText2.requestFocus();
+ mText2.setSelected(true);
+ mText2.setSelection(0);
}else if (mText3.getText().toString().equals("")){
- mText3.requestFocus();
+ mText4.setSelected(false);
+ mText4.setCursorVisible(false);
+ mText3.requestFocus();
+ mText3.setSelected(true);
+ mText3.setSelection(0);
}
}
protected void pinCodeChangeRequest(){
- AlertDialog.Builder aBuilder = new AlertDialog.Builder(this);
- aBuilder.setMessage("Do yo want to set a new PIN Code")
- .setCancelable(false)
- .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
-
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- setChangePincodeView();
- mPinHdr.setText(R.string.pincode_enter_new_pin_code);
- clearBoxes();
- newPasswordEntered = true;
- }
- })
- .setNegativeButton("No", new DialogInterface.OnClickListener() {
-
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- SharedPreferences.Editor appPrefs = PreferenceManager
- .getDefaultSharedPreferences(getApplicationContext()).edit();
- appPrefs.putBoolean("set_pincode",false);
- appPrefs.commit();
- finish();
- }
- });
-
- AlertDialog alert =aBuilder.create();
-
- alert.show();
-
+ clearBoxes();
+ mPinHdr.setText(R.string.pincode_reenter_your_pincode);
+ confirmingPinCode =true;
}
}else {
+ Arrays.fill(tempText, null);
AlertDialog aDialog = new AlertDialog.Builder(this).create();
- aDialog.setTitle("ERROR");
- aDialog.setMessage("Wrong PIN");
- aDialog.setButton("OK", new DialogInterface.OnClickListener(){
+ 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) {
});
aDialog.show();
clearBoxes();
- mPinHdr.setText(R.string.pincode_configure_your_pin);
+ mPinHdr.setText(R.string.pincode_enter_pin_code);
newPasswordEntered = true;
confirmingPinCode = false;
} else {
+ Arrays.fill(tempText, null);
AlertDialog aDialog = new AlertDialog.Builder(this).create();
- aDialog.setTitle("ERROR");
- aDialog.setMessage("PIN Code Mismatch");
- aDialog.setButton("OK", new DialogInterface.OnClickListener(){
+ 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) {
}
+
+ protected void pinCodeEnd(boolean state){
+ AlertDialog aDialog = new AlertDialog.Builder(this).create();
+
+ if (state){
+ CharSequence saveSeq = getString(R.string.common_save_exit);
+ aDialog.setTitle(saveSeq);
+ CharSequence cseq = getString(R.string.pincode_stored);
+ aDialog.setMessage(cseq);
+
+ }else{
+ CharSequence saveSeq = getString(R.string.common_save_exit);
+ aDialog.setTitle(saveSeq);
+ CharSequence cseq = getString(R.string.pincode_removed);
+ aDialog.setMessage(cseq);
+
+ }
+ CharSequence okSeq = getString(R.string.common_ok);
+ aDialog.setButton(okSeq, new DialogInterface.OnClickListener(){
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ // TODO Auto-generated method stub("");
+ finish();
+ return;
+ }
+
+ });
+ aDialog.show();
+ }
+
protected void savePincodeAndExit(){
SharedPreferences.Editor appPrefs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext()).edit();
appPrefs.putBoolean("set_pincode",true);
appPrefs.commit();
- finish();
+ pinCodeEnd(true);
+
+
+
}
mText4.setText("");
mText1.requestFocus();
}
+
+
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event){
+ if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()== 0){
+
+ if (activity.equals("preferences")){
+ SharedPreferences.Editor appPrefsE = PreferenceManager
+
+ .getDefaultSharedPreferences(getApplicationContext()).edit();
+
+ SharedPreferences appPrefs = PreferenceManager
+ .getDefaultSharedPreferences(getApplicationContext());
+
+ boolean state = appPrefs.getBoolean("set_pincode", false);
+ appPrefsE.putBoolean("set_pincode",!state);
+ appPrefsE.commit();
+ setInitVars();
+ finish();
+ }
+ return true;
+ }
+
+ return super.onKeyDown(keyCode, event);
+ }
+
+
+
+
}