13c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen/* 23c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen * Copyright (C) 2009 The Android Open Source Project 33c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen * 43c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen * Licensed under the Apache License, Version 2.0 (the "License"); 53c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen * you may not use this file except in compliance with the License. 63c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen * You may obtain a copy of the License at 73c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen * 83c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen * http://www.apache.org/licenses/LICENSE-2.0 93c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen * 103c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen * Unless required by applicable law or agreed to in writing, software 113c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen * distributed under the License is distributed on an "AS IS" BASIS, 123c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen * See the License for the specific language governing permissions and 143c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen * limitations under the License. 153c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen */ 163c02f2877dc2f8f0b5c01d03fa2b487c040e4000Wei-Ta Chen 17f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparkspackage com.cooliris.media; 18f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparks 19f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparksimport java.util.ArrayList; 20f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparks 21f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparkspublic interface DataSource { 22f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparks // Load the sets to be displayed. 23f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparks void loadMediaSets(final MediaFeed feed); 24f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparks 255e0474e8e1942c41234eb251f948c2fbb7445b02Venkat Krishnaraj // rangeStart->rangeEnd is inclusive 26f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparks // Pass in Shared.INFINITY for the rangeEnd to load all items. 27f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparks void loadItemsForSet(final MediaFeed feed, final MediaSet parentSet, int rangeStart, int rangeEnd); 281bb0c42b2a62f580eea4764d6a4434ffecfbf353Dave Sparks 29f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparks // Called when the data source will no longer be used. 30f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparks void shutdown(); 311bb0c42b2a62f580eea4764d6a4434ffecfbf353Dave Sparks 32f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparks boolean performOperation(int operation, ArrayList<MediaBucket> mediaBuckets, Object data); 33f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparks 34f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparks DiskCache getThumbnailCache(); 35897ad622181117e8acbdeae2ff0afece68f1332cVenkat Krishnaraj 36897ad622181117e8acbdeae2ff0afece68f1332cVenkat Krishnaraj // This method is called so that we can setup listeners for any databases that the datasource uses 37897ad622181117e8acbdeae2ff0afece68f1332cVenkat Krishnaraj String[] getDatabaseUris(); 385e0474e8e1942c41234eb251f948c2fbb7445b02Venkat Krishnaraj 39897ad622181117e8acbdeae2ff0afece68f1332cVenkat Krishnaraj // Called when the user explicitly requests a refresh, or when the application is brought to the foreground. 40897ad622181117e8acbdeae2ff0afece68f1332cVenkat Krishnaraj // Alternatively, when one or more of the database's data changes, this method will be called. 41897ad622181117e8acbdeae2ff0afece68f1332cVenkat Krishnaraj void refresh(final MediaFeed feed, final String[] databaseUris); 42897ad622181117e8acbdeae2ff0afece68f1332cVenkat Krishnaraj 43f99dfe8549fb6c2c06c8cb7ca7d5eb33002c809eDave Sparks} 44