diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2016-01-13 14:45:54 +0100 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2016-01-13 14:46:03 +0100 |
commit | f404c7f58745d166634f5680a3024297e8f92413 (patch) | |
tree | e75bb39b02edd8c9153d3dd5770dfb5fd661cf50 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain | |
parent | 8cd28036ef6b833b1dc58b54a9797403957e5394 (diff) | |
download | open-keychain-f404c7f58745d166634f5680a3024297e8f92413.tar.gz open-keychain-f404c7f58745d166634f5680a3024297e8f92413.tar.bz2 open-keychain-f404c7f58745d166634f5680a3024297e8f92413.zip |
add debug option to use dummy backup code (fixes #1675)
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupCodeFragment.java | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupCodeFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupCodeFragment.java index 3300bd25b..2d2e43e3b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupCodeFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupCodeFragment.java @@ -28,6 +28,7 @@ import java.util.Random; import android.animation.ArgbEvaluator; import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; +import android.annotation.SuppressLint; import android.content.Intent; import android.net.Uri; import android.os.Build; @@ -39,8 +40,12 @@ import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager.OnBackStackChangedListener; import android.text.Editable; +import android.text.TextUtils; import android.text.TextWatcher; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; @@ -85,6 +90,7 @@ public class BackupCodeFragment extends CryptoOperationFragment<BackupKeyringPar private Uri mCachedBackupUri; private boolean mShareNotSave; + private boolean mDebugModeAcceptAnyCode; public static BackupCodeFragment newInstance(long[] masterKeyIds, boolean exportSecret) { BackupCodeFragment frag = new BackupCodeFragment(); @@ -104,6 +110,41 @@ public class BackupCodeFragment extends CryptoOperationFragment<BackupKeyringPar BackupCodeState mCurrentState = BackupCodeState.STATE_UNINITIALIZED; + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (Constants.DEBUG) { + setHasOptionsMenu(true); + } + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + super.onCreateOptionsMenu(menu, inflater); + if (Constants.DEBUG) { + inflater.inflate(R.menu.backup_fragment_debug_menu, menu); + } + } + + @SuppressLint("SetTextI18n") + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (Constants.DEBUG && item.getItemId() == R.id.debug_accept_any_log) { + boolean newCheckedState = !item.isChecked(); + item.setChecked(newCheckedState); + if (newCheckedState && TextUtils.isEmpty(mCodeEditText[0].getText())) { + mCodeEditText[0].setText("ABCDEF"); + mCodeEditText[1].setText("GHIJKL"); + mCodeEditText[2].setText("MNOPQR"); + mCodeEditText[3].setText("STUVW"); + Notify.create(getActivity(), "Actual backup code is all 'A's", Style.WARN).show(); + } + mDebugModeAcceptAnyCode = newCheckedState; + return true; + } + return super.onOptionsItemSelected(item); + } + void switchState(BackupCodeState state, boolean animate) { switch (state) { @@ -325,6 +366,11 @@ public class BackupCodeFragment extends CryptoOperationFragment<BackupKeyringPar private void checkIfCodeIsCorrect() { + if (Constants.DEBUG && mDebugModeAcceptAnyCode) { + switchState(BackupCodeState.STATE_OK, true); + return; + } + StringBuilder backupCodeInput = new StringBuilder(26); for (EditText editText : mCodeEditText) { if (editText.getText().length() < 6) { @@ -509,7 +555,11 @@ public class BackupCodeFragment extends CryptoOperationFragment<BackupKeyringPar @Nullable @Override public BackupKeyringParcel createOperationInput() { - return new BackupKeyringParcel(new Passphrase(mBackupCode), mMasterKeyIds, mExportSecret, mCachedBackupUri); + Passphrase passphrase = new Passphrase(mBackupCode); + if (Constants.DEBUG && mDebugModeAcceptAnyCode) { + passphrase = new Passphrase("AAAAAA-AAAAAA-AAAAAA-AAAAAA"); + } + return new BackupKeyringParcel(passphrase, mMasterKeyIds, mExportSecret, mCachedBackupUri); } @Override |