@Override public ArrayList<MediaItem> getMediaItem(int start, int count) { DataManager dataManager = mApplication.getDataManager(); Uri uri = mBaseUri.buildUpon().appendQueryParameter("limit", start + "," + count).build(); ArrayList<MediaItem> list = new ArrayList<MediaItem>(); GalleryUtils.assertNotInRenderThread(); Cursor cursor = mResolver.query( uri, mProjection, mWhereClause, new String[] {String.valueOf(mBucketId)}, mOrderClause); if (cursor == null) { Log.w(TAG, "query fail: " + uri); return list; } try { while (cursor.moveToNext()) { int id = cursor.getInt(0); // _id must be in the first column Path childPath = mItemPath.getChild(id); MediaItem item = loadOrUpdateItem(childPath, cursor, dataManager, mApplication, mIsImage); list.add(item); } } finally { cursor.close(); } return list; }
@Override public void delete() { GalleryUtils.assertNotInRenderThread(); mResolver.delete(mBaseUri, mWhereClause, new String[] {String.valueOf(mBucketId)}); }