From c4f67f434cc5e66228f70a49ba724ec02cbe854a Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Mon, 12 Jun 2017 20:07:36 +0200 Subject: [PATCH] fix misbehavior in ImportKeyringParcel --- .../keychain/service/ImportKeyringParcel.java | 8 ++++++ .../ui/adapter/ImportKeysAdapter.java | 26 +++++++++++-------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ImportKeyringParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ImportKeyringParcel.java index 663013ac2..dd698bfc6 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ImportKeyringParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ImportKeyringParcel.java @@ -45,4 +45,12 @@ public abstract class ImportKeyringParcel implements Parcelable { ParcelableHkpKeyserver keyserver) { return new AutoValue_ImportKeyringParcel(keyList, keyserver, true); } + + public static ImportKeyringParcel createFromFileCacheWithSkipSave() { + return new AutoValue_ImportKeyringParcel(null, null, true); + } + + public static ImportKeyringParcel createFromFileCache() { + return new AutoValue_ImportKeyringParcel(null, null, false); + } } \ No newline at end of file diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java index 871763e60..170147744 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java @@ -218,9 +218,6 @@ public class ImportKeysAdapter extends RecyclerView.Adapter keysList = null; - ParcelableHkpKeyserver keyserver = null; - ParcelableKeyRing keyRing = entry.getParcelableKeyRing(); if (keyRing.getBytes() != null) { // instead of giving the entries by Intent extra, cache them into a @@ -236,16 +233,23 @@ public class ImportKeysAdapter extends RecyclerView.Adapter(); - keysList.add(keyRing); - keyserver = entry.getKeyserver(); - } - if (skipSave) { - return ImportKeyringParcel.createWithSkipSave(keysList, keyserver); + if (skipSave) { + return ImportKeyringParcel.createFromFileCacheWithSkipSave(); + } else { + return ImportKeyringParcel.createFromFileCache(); + } } else { - return ImportKeyringParcel.createImportKeyringParcel(keysList, keyserver); + ArrayList keysList = new ArrayList<>(); + keysList.add(keyRing); + + ParcelableHkpKeyserver keyserver = entry.getKeyserver(); + + if (skipSave) { + return ImportKeyringParcel.createWithSkipSave(keysList, keyserver); + } else { + return ImportKeyringParcel.createImportKeyringParcel(keysList, keyserver); + } } }