}
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);
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);
+ }
+ }
+ }
+ }
+ }
}