aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2014-06-22 13:32:07 +0200
committerVincent Breitmoser <valodim@mugenguild.com>2014-06-22 13:32:07 +0200
commit857b15cbd5e84dc94350b4b2b1317c5ac411af38 (patch)
tree448ad792002202628ec482d71fc46eaf16122ff5
parenta1525bffe23fd0f86e77250f894eacbc481aed77 (diff)
downloadopen-keychain-857b15cbd5e84dc94350b4b2b1317c5ac411af38.tar.gz
open-keychain-857b15cbd5e84dc94350b4b2b1317c5ac411af38.tar.bz2
open-keychain-857b15cbd5e84dc94350b4b2b1317c5ac411af38.zip
use hashcode instead of keyid in import list (keyids may not be unique!)
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysListEntry.java10
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java2
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListLoader.java2
3 files changed, 12 insertions, 2 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysListEntry.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysListEntry.java
index 47265c3aa..0a49cb629 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysListEntry.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysListEntry.java
@@ -46,6 +46,7 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
private String mExtraData;
private String mQuery;
private String mOrigin;
+ private Integer mHashCode = null;
private boolean mSelected;
@@ -98,6 +99,13 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
}
};
+ public int hashCode() {
+ if (mHashCode != null) {
+ return mHashCode;
+ }
+ return super.hashCode();
+ }
+
public String getKeyIdHex() {
return mKeyIdHex;
}
@@ -240,6 +248,8 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
mSecretKey = ring.isSecret();
UncachedPublicKey key = ring.getPublicKey();
+ mHashCode = key.hashCode();
+
mPrimaryUserId = key.getPrimaryUserId();
mUserIds = key.getUnorderedUserIds();
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java
index d77e3a452..84fd513a0 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java
@@ -79,7 +79,7 @@ public class ImportKeysListFragment extends ListFragment implements
public ArrayList<ParcelableKeyRing> getSelectedData() {
ArrayList<ParcelableKeyRing> result = new ArrayList<ParcelableKeyRing>();
for (ImportKeysListEntry entry : getSelectedEntries()) {
- result.add(mCachedKeyData.get(entry.getKeyId()));
+ result.add(mCachedKeyData.get(entry.hashCode()));
}
return result;
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListLoader.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListLoader.java
index c2712e89e..99f959035 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListLoader.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListLoader.java
@@ -138,7 +138,7 @@ public class ImportKeysListLoader
for(UncachedKeyRing key : rings) {
ImportKeysListEntry item = new ImportKeysListEntry(getContext(), key);
mData.add(item);
- mParcelableRings.put(key.getMasterKeyId(), new ParcelableKeyRing(key.getEncoded()));
+ mParcelableRings.put(item.hashCode(), new ParcelableKeyRing(key.getEncoded()));
isEmpty = false;
}
}