@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; }
@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]); } } }