@Override
 public void delete() {
   ItemConsumer consumer =
       new ItemConsumer() {
         public void consume(int index, MediaItem item) {
           if ((item.getSupportedOperations() & SUPPORT_DELETE) != 0) {
             item.delete();
           }
         }
       };
   mDataManager.mapMediaItems(mPaths, consumer, 0);
 }
 public static ArrayList<MediaItem> getMediaItemFromPath(
     ArrayList<Path> paths, int start, int count, DataManager dataManager) {
   if (start >= paths.size()) {
     return new ArrayList<MediaItem>();
   }
   int end = Math.min(start + count, paths.size());
   ArrayList<Path> subset = new ArrayList<Path>(paths.subList(start, end));
   final MediaItem[] buf = new MediaItem[end - start];
   ItemConsumer consumer =
       new ItemConsumer() {
         @Override
         public void consume(int index, MediaItem item) {
           buf[index] = item;
         }
       };
   dataManager.mapMediaItems(subset, consumer, 0);
   ArrayList<MediaItem> result = new ArrayList<MediaItem>(end - start);
   for (int i = 0; i < buf.length; i++) {
     result.add(buf[i]);
   }
   return result;
 }
 @Override
 protected int enumerateMediaItems(ItemConsumer consumer, int startIndex) {
   mDataManager.mapMediaItems(mPaths, consumer, startIndex);
   return mPaths.size();
 }