package com.cooliris.media;
import java.util.ArrayList;
import android.util.Log;
public final class ConcatenatedDataSource implements DataSource {
private static final String TAG = "ConcatenatedDataSource";
private final DataSource mFirst;
private final DataSource mSecond;
public ConcatenatedDataSource(DataSource first, DataSource second) {
mFirst = first;
mSecond = second;
}
public void loadMediaSets(final MediaFeed feed) {
mFirst.loadMediaSets(feed);
mSecond.loadMediaSets(feed);
}
public void loadItemsForSet(final MediaFeed feed, final MediaSet parentSet, int rangeStart, int rangeEnd) {
if (parentSet != null) {
DataSource dataSource = parentSet.mDataSource;
if (dataSource != null) {
dataSource.loadItemsForSet(feed, parentSet, rangeStart, rangeEnd);
} else {
Log.e(TAG, "MediaSet was not added to the feed");
}
}
}
public boolean performOperation(int operation, final ArrayList<MediaBucket> mediaBuckets, Object data) {
ArrayList<MediaBucket> singleBucket = new ArrayList<MediaBucket>(1);
singleBucket.add(null);
int numBuckets = mediaBuckets.size();
boolean retVal = true;
for (int i = 0; i < numBuckets; ++i) { // CR: iterator for
MediaBucket bucket = mediaBuckets.get(i);
MediaSet set = bucket.mediaSet;
if (set != null) {
DataSource dataSource = set.mDataSource;
if (dataSource != null) {
singleBucket.set(0, bucket);
retVal &= dataSource.performOperation(operation, singleBucket, data);
} else {
Log.e(TAG, "MediaSet was not added to the feed");
}
}
}
return retVal;
}
public DiskCache getThumbnailCache() {
throw new UnsupportedOperationException("ConcatenatedDataSource should not create MediaItems");
}
public void shutdown() {
mFirst.shutdown();
mSecond.shutdown();
}
}