package com.marverenic.music.lastfm.data.store; import android.content.Context; import com.google.gson.Gson; import com.marverenic.music.lastfm.model.LfmArtist; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import rx.Observable; public class DemoLastFmStore implements LastFmStore { private Context mContext; public DemoLastFmStore(Context context) { mContext = context; } @Override public Observable<LfmArtist> getArtistInfo(String artistName) { return Observable.fromCallable(() -> { InputStream stream = null; InputStreamReader reader = null; try { File json = new File(mContext.getExternalCacheDir(), "lastfm/" + artistName); stream = new FileInputStream(json); reader = new InputStreamReader(stream); return new Gson().fromJson(reader, LfmArtist.class); } finally { if (stream != null) stream.close(); if (reader != null) reader.close(); } }); } }