Add a blocking load to MediaSet

Change-Id: I367975fd33f884fb7e576b7064c495bdb7a3ce7b
diff --git a/src/com/android/gallery3d/data/ComboAlbumSet.java b/src/com/android/gallery3d/data/ComboAlbumSet.java
index 3f36745..a2a0412 100644
--- a/src/com/android/gallery3d/data/ComboAlbumSet.java
+++ b/src/com/android/gallery3d/data/ComboAlbumSet.java
@@ -85,6 +85,15 @@
     }
 
     @Override
+    public boolean loadIfDirty() {
+        boolean changed = false;
+        for (int i = 0; i < mSets.length; i++) {
+            changed |= mSets[i].loadIfDirty();
+        }
+        return changed;
+    }
+
+    @Override
     public void onContentDirty() {
         notifyContentChanged();
     }
diff --git a/src/com/android/gallery3d/data/MediaSet.java b/src/com/android/gallery3d/data/MediaSet.java
index 87b5f56..9bc148f 100644
--- a/src/com/android/gallery3d/data/MediaSet.java
+++ b/src/com/android/gallery3d/data/MediaSet.java
@@ -180,6 +180,12 @@
     // in the same thread as getMediaItem(int, int) and getSubMediaSet(int).
     public abstract long reload();
 
+    /**
+     * Synchronously load if the MediaSet is dirty
+     * @return True if new data was loaded, false otherwise
+     */
+    public boolean loadIfDirty() { throw new IllegalStateException("not implemented"); }
+
     @Override
     public MediaDetails getDetails() {
         MediaDetails details = super.getDetails();