Loading src/com/android/gallery3d/app/AlbumSetDataAdapter.java +2 −19 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import com.android.gallery3d.data.MediaSet; import com.android.gallery3d.ui.AlbumSetView; import com.android.gallery3d.ui.SynchronizedHandler; import java.util.ArrayList; import java.util.Arrays; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; Loading Loading @@ -215,21 +214,6 @@ public class AlbumSetDataAdapter implements AlbumSetView.Model { mLoadingListener = listener; } private static void getRepresentativeItems(MediaSet set, int wanted, ArrayList<MediaItem> result) { if (set.getMediaItemCount() > 0) { result.addAll(set.getMediaItem(0, wanted)); } int n = set.getSubMediaSetCount(); for (int i = 0; i < n && wanted > result.size(); i++) { MediaSet subset = set.getSubMediaSet(i); double perSet = (double) (wanted - result.size()) / (n - i); int m = (int) Math.ceil(perSet); getRepresentativeItems(subset, m, result); } } private static class UpdateInfo { public long version; public int index; Loading Loading @@ -369,9 +353,8 @@ public class AlbumSetDataAdapter implements AlbumSetView.Model { if (info.index != INDEX_NONE) { info.item = mSource.getSubMediaSet(info.index); if (info.item == null) continue; ArrayList<MediaItem> covers = new ArrayList<MediaItem>(); getRepresentativeItems(info.item, MAX_COVER_COUNT, covers); info.covers = covers.toArray(new MediaItem[covers.size()]); MediaItem cover = info.item.getCoverMediaItem(); info.covers = cover == null ? new MediaItem[0] : new MediaItem[] {cover}; } } executeAndWait(new UpdateContent(info)); Loading src/com/android/gallery3d/data/MediaSet.java +10 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,16 @@ public abstract class MediaSet extends MediaObject { return new ArrayList<MediaItem>(); } public MediaItem getCoverMediaItem() { ArrayList<MediaItem> items = getMediaItem(0, 1); if (items.size() > 0) return items.get(0); for (int i = 0, n = getSubMediaSetCount(); i < n; i++) { MediaItem cover = getSubMediaSet(i).getCoverMediaItem(); if (cover != null) return cover; } return null; } public int getSubMediaSetCount() { return 0; } Loading Loading
src/com/android/gallery3d/app/AlbumSetDataAdapter.java +2 −19 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import com.android.gallery3d.data.MediaSet; import com.android.gallery3d.ui.AlbumSetView; import com.android.gallery3d.ui.SynchronizedHandler; import java.util.ArrayList; import java.util.Arrays; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; Loading Loading @@ -215,21 +214,6 @@ public class AlbumSetDataAdapter implements AlbumSetView.Model { mLoadingListener = listener; } private static void getRepresentativeItems(MediaSet set, int wanted, ArrayList<MediaItem> result) { if (set.getMediaItemCount() > 0) { result.addAll(set.getMediaItem(0, wanted)); } int n = set.getSubMediaSetCount(); for (int i = 0; i < n && wanted > result.size(); i++) { MediaSet subset = set.getSubMediaSet(i); double perSet = (double) (wanted - result.size()) / (n - i); int m = (int) Math.ceil(perSet); getRepresentativeItems(subset, m, result); } } private static class UpdateInfo { public long version; public int index; Loading Loading @@ -369,9 +353,8 @@ public class AlbumSetDataAdapter implements AlbumSetView.Model { if (info.index != INDEX_NONE) { info.item = mSource.getSubMediaSet(info.index); if (info.item == null) continue; ArrayList<MediaItem> covers = new ArrayList<MediaItem>(); getRepresentativeItems(info.item, MAX_COVER_COUNT, covers); info.covers = covers.toArray(new MediaItem[covers.size()]); MediaItem cover = info.item.getCoverMediaItem(); info.covers = cover == null ? new MediaItem[0] : new MediaItem[] {cover}; } } executeAndWait(new UpdateContent(info)); Loading
src/com/android/gallery3d/data/MediaSet.java +10 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,16 @@ public abstract class MediaSet extends MediaObject { return new ArrayList<MediaItem>(); } public MediaItem getCoverMediaItem() { ArrayList<MediaItem> items = getMediaItem(0, 1); if (items.size() > 0) return items.get(0); for (int i = 0, n = getSubMediaSetCount(); i < n; i++) { MediaItem cover = getSubMediaSet(i).getCoverMediaItem(); if (cover != null) return cover; } return null; } public int getSubMediaSetCount() { return 0; } Loading