diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-07-16 10:04:48 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-07-16 10:04:48 +0200 |
commit | 57f5a788fd1b80828ada00b25b26400c85758d4d (patch) | |
tree | 82038e7d18691e2fc2440ff48b879c785331d070 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java | |
parent | c1c831e52b11fc976b06b0d850f62e7934f581f6 (diff) | |
download | open-keychain-57f5a788fd1b80828ada00b25b26400c85758d4d.tar.gz open-keychain-57f5a788fd1b80828ada00b25b26400c85758d4d.tar.bz2 open-keychain-57f5a788fd1b80828ada00b25b26400c85758d4d.zip |
Simple create key
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java | 60 |
1 files changed, 57 insertions, 3 deletions
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. |