package com.lemenzo.gallery.data;

import android.content.Context;
import com.lemenzo.gallery.model.MediaItem;
import java.util.List;

public final class MediaRepository {
    private final MediaStoreDataSource ds;
    public MediaRepository(Context c) { ds = new MediaStoreDataSource(c); }

    public List<MediaItem> all() { return ds.load(MediaQuery.ALL); }
    public List<MediaItem> page(int offset, int limit) { return ds.loadPage(MediaQuery.ALL, offset, limit); }
    public List<MediaItem> pageAfter(MediaItem anchor, int limit) { return ds.loadPageAfter(MediaQuery.ALL, anchor, limit); }

    public List<MediaItem> favorites() { return ds.load(MediaQuery.FAVORITES); }
    public List<MediaItem> favoritesPage(int offset, int limit) { return ds.loadPage(MediaQuery.FAVORITES, offset, limit); }
    public List<MediaItem> favoritesPageAfter(MediaItem anchor, int limit) { return ds.loadPageAfter(MediaQuery.FAVORITES, anchor, limit); }

    public List<MediaItem> trash() { return ds.load(MediaQuery.TRASH); }
    public List<MediaItem> trashPage(int offset, int limit) { return ds.loadPage(MediaQuery.TRASH, offset, limit); }
    public List<MediaItem> trashPageAfter(MediaItem anchor, int limit) { return ds.loadPageAfter(MediaQuery.TRASH, anchor, limit); }

    public List<MediaItem> album(long id) { return ds.loadAlbum(id); }
    public List<MediaItem> albumPage(long id, int offset, int limit) { return ds.loadAlbumPage(id, offset, limit); }
    public List<MediaItem> albumPageAfter(long id, MediaItem anchor, int limit) { return ds.loadAlbumPageAfter(id, anchor, limit); }

    public int findOffsetForUri(String uri) { return ds.findOffsetForUri(uri); }
}
