diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-04-10 15:58:37 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-04-10 15:58:37 +0200 |
commit | 7074b443472b620dbfd452d1682b30407b1851b8 (patch) | |
tree | fb1853b3d69336a627aafe0ce9161382f5bc9204 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util | |
parent | 5ea01a15d33f0bef970aa650abd5b3ffb03c4caf (diff) | |
download | open-keychain-7074b443472b620dbfd452d1682b30407b1851b8.tar.gz open-keychain-7074b443472b620dbfd452d1682b30407b1851b8.tar.bz2 open-keychain-7074b443472b620dbfd452d1682b30407b1851b8.zip |
Cache CryptoInputParcel in OpenPgpService
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableCache.java | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableCache.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableCache.java index 4d723cb30..54c984190 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableCache.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableCache.java @@ -17,6 +17,8 @@ package org.sufficientlysecure.keychain.util; +import android.content.Intent; +import android.os.Bundle; import android.os.Parcel; import java.util.UUID; @@ -75,6 +77,17 @@ public class ParcelableCache<E extends Object> { } } + public E readFromIntentAndGetFromCache(Intent data, String key1, String key2) { + if (!data.getExtras().containsKey(key1) || !data.getExtras().containsKey(key2)) { + return null; + } + long mostSig = data.getLongExtra(key1, 0); + long leastSig = data.getLongExtra(key2, 0); + UUID mTicket = new UUID(mostSig, leastSig); + // fetch the dehydrated log out of storage (this removes it from the dehydration pool) + return rehydrateParcelable(mTicket); + } + public E readFromParcelAndGetFromCache(Parcel source) { long mostSig = source.readLong(); long leastSig = source.readLong(); @@ -83,7 +96,6 @@ public class ParcelableCache<E extends Object> { return rehydrateParcelable(mTicket); } - public void cacheAndWriteToParcel(E parcelable, Parcel dest) { // Get a ticket for our log. UUID mTicket = dehydrateParcelable(parcelable); @@ -92,4 +104,12 @@ public class ParcelableCache<E extends Object> { dest.writeLong(mTicket.getLeastSignificantBits()); } + public void cacheAndWriteToIntent(E parcelable, Intent data, String key1, String key2) { + // Get a ticket for our log. + UUID mTicket = dehydrateParcelable(parcelable); + // And write out the UUID most and least significant bits. + data.putExtra(key1, mTicket.getMostSignificantBits()); + data.putExtra(key2, mTicket.getLeastSignificantBits()); + } + } |