From 2fd88627bad5ca98bcb26d8ed1825d7668e5b1a8 Mon Sep 17 00:00:00 2001 From: str4d Date: Thu, 28 Aug 2014 03:15:50 +0000 Subject: [PATCH] Authenticate for identity creation --- TODO | 1 - .../android/config/EditIdentityFragment.java | 23 ++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/TODO b/TODO index f35591c..ccc7d8a 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,5 @@ Fixes: - Auto-comma the To: field when it loses focus -- Ask to login when opening "Create new identity" - Fix tick over selected emails - Refine view email page -- Delete/read/unread/move actions that don't break everything diff --git a/app/src/main/java/i2p/bote/android/config/EditIdentityFragment.java b/app/src/main/java/i2p/bote/android/config/EditIdentityFragment.java index fa18541..947901d 100644 --- a/app/src/main/java/i2p/bote/android/config/EditIdentityFragment.java +++ b/app/src/main/java/i2p/bote/android/config/EditIdentityFragment.java @@ -110,10 +110,31 @@ public class EditIdentityFragment extends EditPictureFragment { mDescField = (EditText) view.findViewById(R.id.description); mDefaultField = (CheckBox) view.findViewById(R.id.default_identity); mError = (TextView) view.findViewById(R.id.error); + mCryptoField = (Spinner) view.findViewById(R.id.crypto_impl); + if (I2PBote.getInstance().isPasswordRequired()) { + // Request a password from the user. + BoteHelper.requestPassword(getActivity(), new BoteHelper.RequestPasswordListener() { + @Override + public void onPasswordVerified() { + initializeIdentity(); + } + + @Override + public void onPasswordCanceled() { + getActivity().setResult(Activity.RESULT_CANCELED); + getActivity().finish(); + } + }); + } else { + // Password is cached, or not set. + initializeIdentity(); + } + } + + private void initializeIdentity() { if (mKey == null) { // Show the encryption choice field - mCryptoField = (Spinner) view.findViewById(R.id.crypto_impl); CryptoAdapter adapter = new CryptoAdapter(getActivity()); mCryptoField.setAdapter(adapter); mCryptoField.setSelection(mDefaultPos);