From 214b60cd0049c90ea120401646c9d9ae707dc4ad Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Thu, 23 Oct 2014 23:29:40 +0200 Subject: integrate download from keyserver into key import operation --- .../keychain/keyimport/ParcelableKeyRing.java | 45 ++++++++++++++-------- 1 file changed, 30 insertions(+), 15 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ParcelableKeyRing.java') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ParcelableKeyRing.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ParcelableKeyRing.java index 55e6be9b9..6f6c816ea 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ParcelableKeyRing.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ParcelableKeyRing.java @@ -21,33 +21,55 @@ package org.sufficientlysecure.keychain.keyimport; import android.os.Parcel; import android.os.Parcelable; -/** This is a trivial wrapper around keyring bytes which implements Parcelable. It exists - * for the sole purpose of keeping spongycastle and android imports in separate packages. +/** This class is a parcelable representation of either a keyring as raw data, + * or a (unique) reference to one as a fingerprint, keyid, or keybase name. */ public class ParcelableKeyRing implements Parcelable { - final byte[] mBytes; - final String mExpectedFingerprint; + public final byte[] mBytes; + + // dual role! + public final String mExpectedFingerprint; + public final String mKeyIdHex; + public final String mKeybaseName; public ParcelableKeyRing(byte[] bytes) { mBytes = bytes; mExpectedFingerprint = null; + mKeyIdHex = null; + mKeybaseName = null; } - public ParcelableKeyRing(byte[] bytes, String expectedFingerprint) { + public ParcelableKeyRing(String expectedFingerprint, byte[] bytes) { mBytes = bytes; mExpectedFingerprint = expectedFingerprint; + mKeyIdHex = null; + mKeybaseName = null; + } + public ParcelableKeyRing(String expectedFingerprint, String keyIdHex, String keybaseName) { + mBytes = null; + mExpectedFingerprint = expectedFingerprint; + mKeyIdHex = keyIdHex; + mKeybaseName = keybaseName; + } + + private ParcelableKeyRing(Parcel source) { + mBytes = source.createByteArray(); + + mExpectedFingerprint = source.readString(); + mKeyIdHex = source.readString(); + mKeybaseName = source.readString(); } public void writeToParcel(Parcel dest, int flags) { dest.writeByteArray(mBytes); dest.writeString(mExpectedFingerprint); + dest.writeString(mKeyIdHex); + dest.writeString(mKeybaseName); } public static final Creator CREATOR = new Creator() { public ParcelableKeyRing createFromParcel(final Parcel source) { - byte[] bytes = source.createByteArray(); - String expectedFingerprint = source.readString(); - return new ParcelableKeyRing(bytes, expectedFingerprint); + return new ParcelableKeyRing(source); } public ParcelableKeyRing[] newArray(final int size) { @@ -59,11 +81,4 @@ public class ParcelableKeyRing implements Parcelable { return 0; } - public byte[] getBytes() { - return mBytes; - } - - public String getExpectedFingerprint() { - return mExpectedFingerprint; - } } -- cgit v1.2.3