OSDN Git Service

Temporary hack to make images show in gallery. Bug 2417823.
authorDave Sparks <davidsparks@android.com>
Thu, 18 Feb 2010 15:49:53 +0000 (07:49 -0800)
committerDave Sparks <davidsparks@android.com>
Thu, 18 Feb 2010 15:51:33 +0000 (07:51 -0800)
src/com/cooliris/cache/CacheService.java
src/com/cooliris/media/Gallery.java

index 6b8f9f0..0bd6afe 100644 (file)
@@ -1012,6 +1012,14 @@ public final class CacheService extends IntentService {
                 }
                 Log.i(TAG, "Refreshing dirty albums");
                 populateMediaItemsForSets(context, sets, acceleratedSets, true);
+                // Logic to refresh the UI for dirty sets
+                if (context instanceof Gallery) {
+                    int numSets = sets.size();
+                    for (int i = 0; i < numSets; ++i) {
+                        MediaSet set = sets.get(i);
+                        ((Gallery)context).refreshUIForSet(set);
+                    }
+                }
             }
         }
         sAlbumCache.delete(ALBUM_CACHE_DIRTY_BUCKET_INDEX);
index 0ea80dd..13d3320 100644 (file)
@@ -438,4 +438,21 @@ public final class Gallery extends Activity {
         setResult(RESULT_OK, result);
         finish();
     }
+
+    public void refreshUIForSet(MediaSet set) {
+        if (mGridLayer != null) {
+            final MediaFeed feed = mGridLayer.getFeed();
+            if (feed != null) {
+                final MediaSet currentSet = feed.getMediaSet(set.mId);
+                if (currentSet != null) {
+                    // We need to refresh the UI with this set if the number of items have changed
+                    if (currentSet.getNumItems() != set.getNumItems() || currentSet.mMaxAddedTimestamp != set.mMaxAddedTimestamp) {
+                        final MediaSet newSet = feed.replaceMediaSet(set.mId, currentSet.mDataSource);
+                        newSet.mName = currentSet.mName;
+                        newSet.generateTitle(true);
+                    }
+                }
+            }
+        }
+    }
 }