From a91468565ff600e082c29aec6433c51a19f26b07 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Fri, 3 Oct 2014 03:29:08 +0200 Subject: use iterator interface exclusively in ParcelableFileCache --- .../keychain/util/ParcelableFileCache.java | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java index 111bf0124..3b4facbd0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java @@ -48,17 +48,18 @@ public class ParcelableFileCache { private Context mContext; private final String mFilename; + private int mNumEntries; public ParcelableFileCache(Context context, String filename) { mContext = context; mFilename = filename; } - public void writeCache(ArrayList selectedEntries) throws IOException { - writeCache(selectedEntries.iterator()); + public int getNumEntries() { + return mNumEntries; } - public void writeCache(Iterator it) throws IOException { + public void writeCache(int numEntries, Iterator it) throws IOException { File cacheDir = mContext.getCacheDir(); if (cacheDir == null) { @@ -70,6 +71,8 @@ public class ParcelableFileCache { DataOutputStream oos = new DataOutputStream(new FileOutputStream(tempFile)); + oos.writeInt(numEntries); + while (it.hasNext()) { Parcel p = Parcel.obtain(); // creating empty parcel object p.writeParcelable(it.next(), 0); // saving bundle as parcel @@ -83,15 +86,6 @@ public class ParcelableFileCache { } - public List readCacheIntoList() throws IOException { - ArrayList result = new ArrayList(); - Iterator it = readCache(); - while (it.hasNext()) { - result.add(it.next()); - } - return result; - } - public Iterator readCache() throws IOException { return readCache(true); } @@ -113,6 +107,9 @@ public class ParcelableFileCache { throw new IOException(e); } + // yes this is slightly sloppy data flow. WE WOULDN'T NEED THIS WITH TUPLE RETURN TYPES + mNumEntries = ois.readInt(); + return new Iterator() { E mRing = null; -- cgit v1.2.3