@Override
 public long reload() {
   if (mClusterAlbumSet.reload() > mDataVersion) {
     mDataVersion = nextVersionNumber();
   }
   return mDataVersion;
 }
 @Override
 public long reload() {
   if (mBaseSet.reload() > mDataVersion) {
     updateData();
     mDataVersion = nextVersionNumber();
   }
   return mDataVersion;
 }
Esempio n. 3
0
 @Override
 public void verifyResult() {
   MediaSet sub = mAlbumSet.getSubMediaSet(0);
   LocalMediaItem item = (LocalMediaItem) sub.getMediaItem(0, 1).get(0);
   assertEquals(1, sub.getMediaItemCount());
   assertTrue((sub.getSupportedOperations() & MediaSet.SUPPORT_DELETE) != 0);
   sub.delete();
   sub.reload();
   assertEquals(0, sub.getMediaItemCount());
 }
  private void updateData() {
    // Albums
    mAlbums.clear();
    String basePath = "/filter/mediatype/" + mMediaType;

    for (int i = 0, n = mBaseSet.getSubMediaSetCount(); i < n; i++) {
      MediaSet set = mBaseSet.getSubMediaSet(i);
      String filteredPath = basePath + "/{" + set.getPath().toString() + "}";
      MediaSet filteredSet = mDataManager.getMediaSet(filteredPath);
      filteredSet.reload();
      if (filteredSet.getMediaItemCount() > 0 || filteredSet.getSubMediaSetCount() > 0) {
        mAlbums.add(filteredSet);
      }
    }

    // Items
    mPaths.clear();
    final int total = mBaseSet.getMediaItemCount();
    final Path[] buf = new Path[total];

    mBaseSet.enumerateMediaItems(
        new MediaSet.ItemConsumer() {
          public void consume(int index, MediaItem item) {
            if (item.getMediaType() == mMediaType) {
              if (index < 0 || index >= total) return;
              Path path = item.getPath();
              buf[index] = path;
            }
          }
        });

    for (int i = 0; i < total; i++) {
      if (buf[i] != null) {
        mPaths.add(buf[i]);
      }
    }
  }