/* * Copyright (C) 2012-2016 The Android Money Manager Ex Project Team * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * 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 <http://www.gnu.org/licenses/>. */ package com.money.manager.ex; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; import android.widget.TextView; import com.mikepenz.google_material_typeface_library.GoogleMaterial; import com.money.manager.ex.core.UIHelper; import com.money.manager.ex.log.ErrorRaisedEvent; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import butterknife.ButterKnife; import butterknife.OnClick; import timber.log.Timber; public class PasscodeActivity extends AppCompatActivity { public static final String INTENT_REQUEST_PASSWORD = "com.money.manager.ex.custom.intent.action.REQUEST_PASSWORD"; public static final String INTENT_MESSAGE_TEXT = "INTENT_MESSAGE_TEXT"; public static final String INTENT_RESULT_PASSCODE = "INTENT_RESULT_PASSCODE"; @Override protected void onCreate(Bundle savedInstanceState) { // set theme try { UIHelper uiHelper = new UIHelper(getApplicationContext()); setTheme(uiHelper.getThemeId()); } catch (Exception e) { //Log.e(BaseListFragment.class.getSimpleName(), e.getMessage()); Timber.e(e, "setting theme in passcode activity"); } super.onCreate(savedInstanceState); setContentView(R.layout.passcode_activity); ButterKnife.bind(this); // create a listener for button OnClickListener clickListener = new OnClickListener() { @Override public void onClick(View v) { Button click = (Button) v; if (getWindow().getCurrentFocus() != null && getWindow().getCurrentFocus() instanceof EditText) { EditText getFocus = (EditText) getWindow().getCurrentFocus(); if (getFocus != null && click.getTag() != null) { getFocus.setText(click.getTag().toString()); //quick-fix convert 'switch' to 'if-else' if (getFocus.getId() == R.id.editTextPasscode1) { ((EditText) findViewById(R.id.editTextPasscode2)).requestFocus(); } else if (getFocus.getId() == R.id.editTextPasscode2) { ((EditText) findViewById(R.id.editTextPasscode3)).requestFocus(); } else if (getFocus.getId() == R.id.editTextPasscode3) { ((EditText) findViewById(R.id.editTextPasscode4)).requestFocus(); } else if (getFocus.getId() == R.id.editTextPasscode4) { ((EditText) findViewById(R.id.editTextPasscode5)).requestFocus(); } else if (getFocus.getId() == R.id.editTextPasscode5) { Intent result = new Intent(); // set result result.putExtra(INTENT_RESULT_PASSCODE, ((EditText) findViewById(R.id.editTextPasscode1)).getText().toString() + ((EditText) findViewById(R.id.editTextPasscode2)).getText().toString() + ((EditText) findViewById(R.id.editTextPasscode3)).getText().toString() + ((EditText) findViewById(R.id.editTextPasscode4)).getText().toString() + ((EditText) findViewById(R.id.editTextPasscode5)).getText().toString()); // return result setResult(RESULT_OK, result); finish(); } } } } }; // arrays of button id int ids[] = { R.id.buttonPasscode0, R.id.buttonPasscode1, R.id.buttonPasscode2, R.id.buttonPasscode3, R.id.buttonPasscode4, R.id.buttonPasscode5, R.id.buttonPasscode6, R.id.buttonPasscode7, R.id.buttonPasscode8, R.id.buttonPasscode9 }; for (int i : ids) { Button button = (Button) findViewById(i); button.setOnClickListener(clickListener); } // textview message TextView textView = (TextView) findViewById(R.id.textViewMessage); textView.setText(null); // intent and action if (getIntent() != null && getIntent().getAction() != null) { if (INTENT_REQUEST_PASSWORD.equals(getIntent().getAction())) { if (getIntent().getStringExtra(INTENT_MESSAGE_TEXT) != null) { textView.setText(getIntent().getStringExtra(INTENT_MESSAGE_TEXT)); } } } UIHelper ui = new UIHelper(this); ImageButton buttonKeyBack = (ImageButton) findViewById(R.id.buttonPasscodeKeyBack); buttonKeyBack.setImageDrawable(ui.getIcon(GoogleMaterial.Icon.gmd_backspace) .color(ui.getPrimaryTextColor())); } @Override protected void onStart() { super.onStart(); EventBus.getDefault().register(this); } @Override protected void onStop() { EventBus.getDefault().unregister(this); super.onStop(); } @Subscribe public void onEvent(ErrorRaisedEvent event) { // display the error to the user new UIHelper(this).showToast(event.message); } @OnClick(R.id.buttonPasscodeKeyBack) public void onBackspaceClick() { EditText getFocus = (EditText) getWindow().getCurrentFocus(); if (getFocus != null) { boolean nullRequestFocus = false; if (!TextUtils.isEmpty(getFocus.getText())) { getFocus.setText(null); } else nullRequestFocus = true; //quick-fix convert 'switch' to 'if-else' if (getFocus.getId() == R.id.editTextPasscode1) { } else if (getFocus.getId() == R.id.editTextPasscode2) { ((EditText) findViewById(R.id.editTextPasscode1)).requestFocus(); if (nullRequestFocus) { ((EditText) findViewById(R.id.editTextPasscode1)).setText(null); } } else if (getFocus.getId() == R.id.editTextPasscode3) { ((EditText) findViewById(R.id.editTextPasscode2)).requestFocus(); if (nullRequestFocus) { ((EditText) findViewById(R.id.editTextPasscode2)).setText(null); } } else if (getFocus.getId() == R.id.editTextPasscode4) { ((EditText) findViewById(R.id.editTextPasscode3)).requestFocus(); if (nullRequestFocus) { ((EditText) findViewById(R.id.editTextPasscode3)).setText(null); } } else if (getFocus.getId() == R.id.editTextPasscode5) { ((EditText) findViewById(R.id.editTextPasscode4)).requestFocus(); if (nullRequestFocus) { ((EditText) findViewById(R.id.editTextPasscode4)).setText(null); } } } } }