X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/3eb64bcdd745438391038a7ba7c1c8b29fc00516..9593b580b72aaec969689eb4ca7197f8da736ab8:/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 deleted file mode 100644 index 11ddf11d..00000000 --- a/src/com/owncloud/android/ui/activity/PinCodeActivity.java +++ /dev/null @@ -1,589 +0,0 @@ -/** - * 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, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ -package com.owncloud.android.ui.activity; - -import java.util.Arrays; - -import android.content.SharedPreferences; -import android.os.Bundle; -import android.preference.PreferenceManager; -import android.text.Editable; -import android.text.TextWatcher; -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.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 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; - private TextView mPinHdr; - private TextView mPinHdrExplanation; - private EditText mText1; - private EditText mText2; - private EditText mText3; - private EditText mText4; - - private String [] mTempText ={"","","",""}; - - 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); - - mBCancel = (Button) findViewById(R.id.cancel); - mPinHdr = (TextView) findViewById(R.id.pinHdr); - mPinHdrExplanation = (TextView) findViewById(R.id.pinHdrExpl); - mText1 = (EditText) findViewById(R.id.txt1); - mText1.requestFocus(); - getWindow().setSoftInputMode(android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); - mText2 = (EditText) findViewById(R.id.txt2); - mText3 = (EditText) findViewById(R.id.txt3); - mText4 = (EditText) findViewById(R.id.txt4); - - SharedPreferences appPrefs = PreferenceManager - .getDefaultSharedPreferences(getApplicationContext()); - - - // Not PIN Code defined yet. - // In a previous version settings is allow from start - if ( (appPrefs.getString("PrefPinCode1", null) == null ) ){ - setChangePincodeView(true); - mPinCodeChecked = true; - mNewPasswordEntered = true; - - } else { - - /// TODO rewrite this activity; this logic is too twisted - if (appPrefs.getBoolean("set_pincode", 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); - } - - } - setTextListeners(); - - ActionBar actionBar = getSupportActionBar(); - actionBar.setIcon(DisplayUtils.getSeasonalIconId()); - } - - - - protected void setInitVars(){ - mConfirmingPinCode = false; - mPinCodeChecked = false; - mNewPasswordEntered = false; - - } - - protected void setInitView(){ - mBCancel.setVisibility(View.INVISIBLE); - mBCancel.setVisibility(View.GONE); - mPinHdr.setText(R.string.pincode_enter_pin_code); - mPinHdrExplanation.setVisibility(View.INVISIBLE); - } - - - protected void setChangePincodeView(boolean state){ - - if(state){ - mBCancel.setVisibility(View.VISIBLE); - mBCancel.setOnClickListener(new OnClickListener() { - @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(); - } - }); - } - - } - - - - /* - * - */ - protected void setTextListeners(){ - - /*------------------------------------------------ - * FIRST BOX - -------------------------------------------------*/ - - mText1.addTextChangedListener(new TextWatcher() { - - @Override - public void onTextChanged(CharSequence s, int start, int before, - int count) { - } - - @Override - public void beforeTextChanged(CharSequence s, int start, int count, - int after) { - } - - @Override - public void afterTextChanged(Editable s) { - if (s.length() > 0) { - if (!mConfirmingPinCode){ - mTempText[0] = mText1.getText().toString(); - - } - mText2.requestFocus(); - } - } - }); - - - - /*------------------------------------------------ - * SECOND BOX - -------------------------------------------------*/ - mText2.addTextChangedListener(new TextWatcher() { - - @Override - public void onTextChanged(CharSequence s, int start, int before, - int count) { - } - - @Override - public void beforeTextChanged(CharSequence s, int start, int count, - int after) { - } - - @Override - public void afterTextChanged(Editable s) { - if (s.length() > 0) { - if (!mConfirmingPinCode){ - mTempText[1] = mText2.getText().toString(); - } - - mText3.requestFocus(); - } - } - }); - - mText2.setOnKeyListener(new OnKeyListener() { - - @Override - public boolean onKey(View v, int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_DEL && mBChange) { - - mText1.setText(""); - mText1.requestFocus(); - if (!mConfirmingPinCode) - mTempText[0] = ""; - mBChange= false; - - }else if(!mBChange){ - mBChange=true; - - } - return false; - } - }); - - mText2.setOnFocusChangeListener(new OnFocusChangeListener() { - - @Override - public void onFocusChange(View v, boolean hasFocus) { - mText2.setCursorVisible(true); - if (mText1.getText().toString().equals("")){ - mText2.setSelected(false); - mText2.setCursorVisible(false); - mText1.requestFocus(); - mText1.setSelected(true); - mText1.setSelection(0); - } - - } - }); - - - /*------------------------------------------------ - * THIRD BOX - -------------------------------------------------*/ - mText3.addTextChangedListener(new TextWatcher() { - - @Override - public void onTextChanged(CharSequence s, int start, int before, - int count) { - } - - @Override - public void beforeTextChanged(CharSequence s, int start, int count, - int after) { - } - - @Override - public void afterTextChanged(Editable s) { - if (s.length() > 0) { - if (!mConfirmingPinCode){ - mTempText[2] = mText3.getText().toString(); - } - mText4.requestFocus(); - } - } - }); - - mText3.setOnKeyListener(new OnKeyListener() { - - @Override - public boolean onKey(View v, int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_DEL && mBChange) { - mText2.requestFocus(); - if (!mConfirmingPinCode) - mTempText[1] = ""; - mText2.setText(""); - mBChange= false; - - }else if(!mBChange){ - mBChange=true; - - } - return false; - } - }); - - mText3.setOnFocusChangeListener(new OnFocusChangeListener() { - - @Override - public void onFocusChange(View v, boolean hasFocus) { - mText3.setCursorVisible(true); - if (mText1.getText().toString().equals("")){ - mText3.setSelected(false); - mText3.setCursorVisible(false); - mText1.requestFocus(); - mText1.setSelected(true); - mText1.setSelection(0); - }else if (mText2.getText().toString().equals("")){ - mText3.setSelected(false); - mText3.setCursorVisible(false); - mText2.requestFocus(); - mText2.setSelected(true); - mText2.setSelection(0); - } - - } - }); - - /*------------------------------------------------ - * FOURTH BOX - -------------------------------------------------*/ - mText4.addTextChangedListener(new TextWatcher() { - - @Override - public void onTextChanged(CharSequence s, int start, int before, - int count) { - } - - @Override - public void beforeTextChanged(CharSequence s, int start, int count, - int after) { - } - - @Override - public void afterTextChanged(Editable s) { - if (s.length() > 0) { - - if (!mConfirmingPinCode){ - mTempText[3] = mText4.getText().toString(); - } - mText1.requestFocus(); - - if (!mPinCodeChecked){ - mPinCodeChecked = checkPincode(); - } - - 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 { - - if (!mConfirmingPinCode) { - pinCodeChangeRequest(); - - } else { - confirmPincode(); - } - } - - } - } - } - } - }); - - - - mText4.setOnKeyListener(new OnKeyListener() { - - @Override - public boolean onKey(View v, int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_DEL && mBChange) { - mText3.requestFocus(); - if (!mConfirmingPinCode) - mTempText[2]=""; - mText3.setText(""); - mBChange= false; - - }else if(!mBChange){ - mBChange=true; - } - return false; - } - }); - - mText4.setOnFocusChangeListener(new OnFocusChangeListener() { - - @Override - public void onFocusChange(View v, boolean hasFocus) { - mText4.setCursorVisible(true); - - if (mText1.getText().toString().equals("")){ - mText4.setSelected(false); - mText4.setCursorVisible(false); - mText1.requestFocus(); - mText1.setSelected(true); - mText1.setSelection(0); - }else if (mText2.getText().toString().equals("")){ - mText4.setSelected(false); - mText4.setCursorVisible(false); - mText2.requestFocus(); - mText2.setSelected(true); - mText2.setSelection(0); - }else if (mText3.getText().toString().equals("")){ - mText4.setSelected(false); - mText4.setCursorVisible(false); - mText3.requestFocus(); - mText3.setSelected(true); - mText3.setSelection(0); - } - - } - }); - - - - } // end setTextListener - - - protected void pinCodeChangeRequest(){ - - clearBoxes(); - mPinHdr.setText(R.string.pincode_reenter_your_pincode); - mPinHdrExplanation.setVisibility(View.INVISIBLE); - mConfirmingPinCode =true; - - } - - - protected boolean checkPincode(){ - - - SharedPreferences appPrefs = PreferenceManager - .getDefaultSharedPreferences(getApplicationContext()); - - String pText1 = appPrefs.getString("PrefPinCode1", null); - String pText2 = appPrefs.getString("PrefPinCode2", null); - String pText3 = appPrefs.getString("PrefPinCode3", null); - String pText4 = appPrefs.getString("PrefPinCode4", null); - - if ( mTempText[0].equals(pText1) && - mTempText[1].equals(pText2) && - mTempText[2].equals(pText3) && - mTempText[3].equals(pText4) ) { - - return true; - - - }else { - Arrays.fill(mTempText, null); - CharSequence errorSeq = getString(R.string.common_error); - Toast.makeText(this, errorSeq, Toast.LENGTH_LONG).show(); - - clearBoxes(); - mPinHdr.setText(R.string.pincode_enter_pin_code); - mPinHdrExplanation.setVisibility(View.INVISIBLE); - mNewPasswordEntered = true; - mConfirmingPinCode = false; - - } - - - return false; - } - - protected void confirmPincode(){ - - mConfirmingPinCode = false; - - String rText1 = mText1.getText().toString(); - String rText2 = mText2.getText().toString(); - String rText3 = mText3.getText().toString(); - String rText4 = mText4.getText().toString(); - - if ( mTempText[0].equals(rText1) && - mTempText[1].equals(rText2) && - mTempText[2].equals(rText3) && - mTempText[3].equals(rText4) ) { - - savePincodeAndExit(); - - } else { - Arrays.fill(mTempText, null); - CharSequence cseq = getString(R.string.pincode_mismatch); - Toast.makeText(this, cseq, Toast.LENGTH_LONG).show(); - - mPinHdr.setText(R.string.pincode_configure_your_pin); - mPinHdrExplanation.setVisibility(View.VISIBLE); - clearBoxes(); - } - - } - - - protected void pinCodeEnd(boolean state){ - CharSequence cseq; - if (state){ - cseq = getString(R.string.pincode_stored); - }else{ - cseq = getString(R.string.pincode_removed); - } - - Toast.makeText(this, cseq, Toast.LENGTH_LONG).show(); - finish(); - } - - protected void savePincodeAndExit(){ - SharedPreferences.Editor appPrefs = PreferenceManager - .getDefaultSharedPreferences(getApplicationContext()).edit(); - - 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(""); - mText4.setText(""); - mText1.requestFocus(); - } - - - @Override - public boolean onKeyDown(int keyCode, KeyEvent event){ - if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()== 0){ - if (ACTION_TOGGLE.equals(getIntent().getAction())){ - 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); - } -}