aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2015-03-20 11:32:15 +0100
committerVincent Breitmoser <valodim@mugenguild.com>2015-03-20 14:01:07 +0100
commitabce05d529bcc948654d7fcca425dfd544ef30be (patch)
treeaf2ea797cbb35894ed74a8949128bb91df0c5366 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java
parent3b04636f5daf3d171449296a5d9a67440abfbf75 (diff)
parent10510288f13a89b0f69994b9d2962c4d26b5f017 (diff)
downloadopen-keychain-abce05d529bcc948654d7fcca425dfd544ef30be.tar.gz
open-keychain-abce05d529bcc948654d7fcca425dfd544ef30be.tar.bz2
open-keychain-abce05d529bcc948654d7fcca425dfd544ef30be.zip
Merge remote-tracking branch 'origin/development' into development
Conflicts: OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/CertifyOperation.java OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/EditKeyOperation.java OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/PgpSignEncryptResult.java OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedSecretKey.java OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptInputParcel.java OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/SignEncryptParcel.java OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java
index 02cb502d0..03439228b 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysList.java
@@ -70,6 +70,8 @@ public class ImportKeysList extends ArrayList<ImportKeysListEntry> {
modified = true;
}
+ // keep track if this key result is from a HKP keyserver
+ boolean incomingFromHkpServer = true;
// we’re going to want to try to fetch the key from everywhere we found it, so remember
// all the origins
for (String origin : incoming.getOrigins()) {
@@ -78,13 +80,24 @@ public class ImportKeysList extends ArrayList<ImportKeysListEntry> {
// to work properly, Keybase-sourced entries need to pass along the extra
if (KeybaseKeyserver.ORIGIN.equals(origin)) {
existing.setExtraData(incoming.getExtraData());
+ // one of the origins is not a HKP keyserver
+ incomingFromHkpServer = false;
}
}
+
ArrayList<String> incomingIDs = incoming.getUserIds();
ArrayList<String> existingIDs = existing.getUserIds();
for (String incomingID : incomingIDs) {
if (!existingIDs.contains(incomingID)) {
- existingIDs.add(incomingID);
+ // prepend HKP server results to the start of the list,
+ // so that the UI (for cloud key search, which is picking the first list item)
+ // shows the right main email address, as mail addresses returned by HKP servers
+ // are preferred over keybase.io IDs
+ if (incomingFromHkpServer) {
+ existingIDs.add(0, incomingID);
+ } else {
+ existingIDs.add(incomingID);
+ }
modified = true;
}
}