package moe.kurumi.moegallery.data; import android.content.Context; import android.net.Uri; import java.io.File; import java.util.List; import moe.kurumi.moegallery.model.GithubRelease; import moe.kurumi.moegallery.model.Image; import moe.kurumi.moegallery.model.Tag; import rx.Observable; public interface ImageDataSource { Observable<List<? extends Image>> loadList(String tags); Observable<List<? extends Tag>> listTag(String tag); Image get(int position); int size(); int getCount(); void clear(); void cacheDetail(String key, Image image); Image getCachedDetail(String key); void cacheImageUri(String key, Uri uri); Uri getImageUri(String key); Observable<List<? extends Image>> loadListFromHistory(); Observable<List<? extends Image>> loadListFromFavorite(); Observable<GithubRelease.Asset> checkUpdate(String versionString); Observable<Uri> downloadUpdate(File dir, String name, String url); interface OnListUpdateListener { void OnListUpdate(); void OnError(Context context, String message); } }