From 57f5a788fd1b80828ada00b25b26400c85758d4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 16 Jul 2014 10:04:48 +0200 Subject: Simple create key --- .../keychain/ui/CreateKeyActivity.java | 60 ++++++++++++++++++++-- 1 file changed, 57 insertions(+), 3 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java index 3094c0e19..14b1f3064 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java @@ -17,8 +17,12 @@ package org.sufficientlysecure.keychain.ui; +import android.app.ProgressDialog; import android.content.Context; +import android.content.Intent; import android.os.Bundle; +import android.os.Message; +import android.os.Messenger; import android.support.v7.app.ActionBarActivity; import android.text.Editable; import android.text.TextWatcher; @@ -29,8 +33,13 @@ import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.EditText; +import org.spongycastle.bcpg.sig.KeyFlags; +import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.helper.ContactHelper; +import org.sufficientlysecure.keychain.service.KeychainIntentService; +import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.SaveKeyringParcel; import java.util.regex.Matcher; @@ -97,20 +106,65 @@ public class CreateKeyActivity extends ActionBarActivity { createButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - createKey(); + createKeyCheck(); } }); } - private void createKey() { + private void createKeyCheck() { if (isEditTextNotEmpty(this, nameEdit) && isEditTextNotEmpty(this, emailEdit) && isEditTextNotEmpty(this, passphraseEdit)) { - + createKey(); } } + private void createKey() { + Intent intent = new Intent(this, KeychainIntentService.class); + intent.setAction(KeychainIntentService.ACTION_SAVE_KEYRING); + + // Message is received after importing is done in KeychainIntentService + KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler( + this, + getString(R.string.progress_importing), + ProgressDialog.STYLE_HORIZONTAL) { + public void handleMessage(Message message) { + // handle messages by standard KeychainIntentServiceHandler first + super.handleMessage(message); + + if (message.arg1 == KeychainIntentServiceHandler.MESSAGE_OKAY) { + CreateKeyActivity.this.finish(); + } + } + }; + + // fill values for this action + Bundle data = new Bundle(); + + SaveKeyringParcel parcel = new SaveKeyringParcel(); + parcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Constants.choice.algorithm.rsa, 4096, KeyFlags.CERTIFY_OTHER, null)); + parcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Constants.choice.algorithm.rsa, 4096, KeyFlags.SIGN_DATA, null)); + parcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Constants.choice.algorithm.rsa, 4096, KeyFlags.ENCRYPT_COMMS | KeyFlags.ENCRYPT_STORAGE, null)); + String userId = nameEdit.getText().toString() + " <" + emailEdit.getText().toString() + ">"; + parcel.mAddUserIds.add(userId); + parcel. + parcel.mNewPassphrase = passphraseEdit.getText().toString(); + + // get selected key entries + data.putParcelable(KeychainIntentService.SAVE_KEYRING_PARCEL, parcel); + + intent.putExtra(KeychainIntentService.EXTRA_DATA, data); + + // Create a new Messenger for the communication back + Messenger messenger = new Messenger(saveHandler); + intent.putExtra(KeychainIntentService.EXTRA_MESSENGER, messenger); + + saveHandler.showProgressDialog(this); + + startService(intent); + } + /** * Checks if text of given EditText is not empty. If it is empty an error is * set and the EditText gets the focus. -- cgit v1.2.3