OSDN Git Service

Updates to 3D gallery. Build 1203.
[android-x86/packages-apps-Gallery2.git] / src / com / cooliris / media / ConcatenatedDataSource.java
1 package com.cooliris.media;
2
3 import java.util.ArrayList;
4
5
6 import android.util.Log;
7
8 public final class ConcatenatedDataSource implements DataSource {
9     private static final String TAG = "ConcatenatedDataSource";
10     private final DataSource mFirst;
11     private final DataSource mSecond;
12
13     public ConcatenatedDataSource(DataSource first, DataSource second) {
14         mFirst = first;
15         mSecond = second;
16     }
17
18     public void loadMediaSets(final MediaFeed feed) {
19         mFirst.loadMediaSets(feed);
20         mSecond.loadMediaSets(feed);
21     }
22
23     public void loadItemsForSet(final MediaFeed feed, final MediaSet parentSet, int rangeStart, int rangeEnd) {
24         if (parentSet != null) {
25             DataSource dataSource = parentSet.mDataSource;
26             if (dataSource != null) {
27                 dataSource.loadItemsForSet(feed, parentSet, rangeStart, rangeEnd);
28             } else {
29                 Log.e(TAG, "MediaSet was not added to the feed");
30             }
31         }
32     }
33
34     public boolean performOperation(int operation, final ArrayList<MediaBucket> mediaBuckets, Object data) {
35         ArrayList<MediaBucket> singleBucket = new ArrayList<MediaBucket>(1);
36         singleBucket.add(null);
37         int numBuckets = mediaBuckets.size();
38         boolean retVal = true;
39         for (int i = 0; i < numBuckets; ++i) {  // CR: iterator for
40             MediaBucket bucket = mediaBuckets.get(i);
41             MediaSet set = bucket.mediaSet;
42             if (set != null) {
43                     DataSource dataSource = set.mDataSource;
44                     if (dataSource != null) {
45                         singleBucket.set(0, bucket);
46                         retVal &= dataSource.performOperation(operation, singleBucket, data);
47                     } else {
48                         Log.e(TAG, "MediaSet was not added to the feed");
49                     }
50             }
51         }
52         return retVal;
53     }
54
55     public DiskCache getThumbnailCache() {
56         throw new UnsupportedOperationException("ConcatenatedDataSource should not create MediaItems");
57     }
58     
59     public void shutdown() {
60         mFirst.shutdown();
61         mSecond.shutdown();
62     }
63 }