From 93dc11edcf3e4310fcf0c0dbdd295992d4ebd55d Mon Sep 17 00:00:00 2001 From: Adithya Abraham Philip Date: Tue, 23 Jun 2015 20:15:38 +0530 Subject: made EmailKeyHelper work with CryptoOperationHelper --- .../keychain/util/EmailKeyHelper.java | 53 ++++++++++++---------- 1 file changed, 29 insertions(+), 24 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/EmailKeyHelper.java') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/EmailKeyHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/EmailKeyHelper.java index bbc08a2aa..835a97dd8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/EmailKeyHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/EmailKeyHelper.java @@ -26,8 +26,13 @@ import org.sufficientlysecure.keychain.keyimport.HkpKeyserver; import org.sufficientlysecure.keychain.keyimport.ImportKeysListEntry; import org.sufficientlysecure.keychain.keyimport.Keyserver; import org.sufficientlysecure.keychain.keyimport.ParcelableKeyRing; +import org.sufficientlysecure.keychain.operations.results.ImportKeyResult; +import org.sufficientlysecure.keychain.service.ImportKeyringParcel; import org.sufficientlysecure.keychain.service.KeychainService; +import org.sufficientlysecure.keychain.ui.base.CryptoOperationFragment; +import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper; +import java.lang.reflect.Array; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -35,24 +40,35 @@ import java.util.Locale; import java.util.Set; public class EmailKeyHelper { + // to import keys, simply use CryptoOperationHelper with this callback + public abstract class ImportContactKeysCallback + implements CryptoOperationHelper.Callback { - public static void importContacts(Context context, Messenger messenger) { - importAll(context, messenger, ContactHelper.getContactMails(context)); - } + private ArrayList mKeyList; + private String mKeyserver; - public static void importAll(Context context, Messenger messenger, List mails) { - // Collect all candidates as ImportKeysListEntry (set for deduplication) - Set entries = new HashSet<>(); - for (String mail : mails) { - entries.addAll(getEmailKeys(context, mail)); + public ImportContactKeysCallback(Context context, String keyserver) { + this(context, ContactHelper.getContactMails(context), keyserver); } - // Put them in a list and import - ArrayList keys = new ArrayList<>(entries.size()); - for (ImportKeysListEntry entry : entries) { - keys.add(new ParcelableKeyRing(entry.getFingerprintHex(), entry.getKeyIdHex(), null)); + public ImportContactKeysCallback(Context context, List mails, String keyserver) { + Set entries = new HashSet<>(); + for (String mail : mails) { + entries.addAll(getEmailKeys(context, mail)); + } + + // Put them in a list and import + ArrayList keys = new ArrayList<>(entries.size()); + for (ImportKeysListEntry entry : entries) { + keys.add(new ParcelableKeyRing(entry.getFingerprintHex(), entry.getKeyIdHex(), null)); + } + mKeyList = keys; + mKeyserver = keyserver; + } + @Override + public ImportKeyringParcel createOperationInput() { + return new ImportKeyringParcel(mKeyList, mKeyserver); } - importKeys(context, messenger, keys); } public static Set getEmailKeys(Context context, String mail) { @@ -78,17 +94,6 @@ public class EmailKeyHelper { return keys; } - private static void importKeys(Context context, Messenger messenger, ArrayList keys) { - Intent importIntent = new Intent(context, KeychainService.class); - importIntent.setAction(KeychainService.ACTION_IMPORT_KEYRING); - Bundle importData = new Bundle(); - importData.putParcelableArrayList(KeychainService.IMPORT_KEY_LIST, keys); - importIntent.putExtra(KeychainService.EXTRA_DATA, importData); - importIntent.putExtra(KeychainService.EXTRA_MESSENGER, messenger); - - context.startService(importIntent); - } - public static List getEmailKeys(String mail, Keyserver keyServer) { Set keys = new HashSet<>(); try { -- cgit v1.2.3