summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/gallery3d/data/FilterDeleteSet.java5
-rw-r--r--src/com/android/gallery3d/data/LocalMergeAlbum.java13
2 files changed, 13 insertions, 5 deletions
diff --git a/src/com/android/gallery3d/data/FilterDeleteSet.java b/src/com/android/gallery3d/data/FilterDeleteSet.java
index fc44d48c4..c76412ff8 100644
--- a/src/com/android/gallery3d/data/FilterDeleteSet.java
+++ b/src/com/android/gallery3d/data/FilterDeleteSet.java
@@ -63,13 +63,11 @@ public class FilterDeleteSet extends MediaSet implements ContentListener {
// Deletions currently in effect, ordered by index
private ArrayList<Deletion> mCurrent = new ArrayList<Deletion>();
- private int mMediaItemCount;
public FilterDeleteSet(Path path, MediaSet baseSet) {
super(path, INVALID_DATA_VERSION);
mBaseSet = baseSet;
mBaseSet.addContentListener(this);
- mMediaItemCount = mBaseSet.getMediaItemCount() - mCurrent.size();
}
@Override
@@ -84,7 +82,7 @@ public class FilterDeleteSet extends MediaSet implements ContentListener {
@Override
public int getMediaItemCount() {
- return mMediaItemCount;
+ return mBaseSet.getMediaItemCount() - mCurrent.size();
}
// Gets the MediaItems whose (post-deletion) index are in the range [start,
@@ -221,7 +219,6 @@ public class FilterDeleteSet extends MediaSet implements ContentListener {
mCurrent = result;
}
- mMediaItemCount = mBaseSet.getMediaItemCount() - mCurrent.size();
mDataVersion = nextVersionNumber();
return mDataVersion;
}
diff --git a/src/com/android/gallery3d/data/LocalMergeAlbum.java b/src/com/android/gallery3d/data/LocalMergeAlbum.java
index cbb7492cc..14c1c6e6b 100644
--- a/src/com/android/gallery3d/data/LocalMergeAlbum.java
+++ b/src/com/android/gallery3d/data/LocalMergeAlbum.java
@@ -24,6 +24,7 @@ import com.android.gallery3d.common.ApiHelper;
import java.lang.ref.SoftReference;
import java.util.ArrayList;
import java.util.Comparator;
+import java.util.NoSuchElementException;
import java.util.SortedMap;
import java.util.TreeMap;
@@ -122,7 +123,17 @@ public class LocalMergeAlbum extends MediaSet implements ContentListener {
// First find the nearest mark position <= start.
SortedMap<Integer, int[]> head = mIndex.headMap(start + 1);
- int markPos = head.lastKey();
+ int markPos;
+ try {
+ markPos = head.lastKey();
+ } catch (NoSuchElementException e) {
+ Log.e(TAG, "getMediaItem("+start+","+count+") failed");
+ Log.e(TAG, "mSources: ");
+ for (MediaSet set : mSources) {
+ Log.e(TAG, "\t"+set.getPath());
+ }
+ throw e;
+ }
int[] subPos = head.get(markPos).clone();
MediaItem[] slot = new MediaItem[mSources.length];