package com.simplecity.amp_library.glide.fetcher;
import android.support.annotation.CallSuper;
import com.bumptech.glide.Priority;
import com.bumptech.glide.load.data.DataFetcher;
import com.simplecity.amp_library.model.ArtworkProvider;
import java.io.IOException;
import java.io.InputStream;
abstract class BaseFetcher implements DataFetcher<InputStream> {
protected ArtworkProvider artworkProvider;
protected InputStream stream;
BaseFetcher(ArtworkProvider artworkProvider) {
this.artworkProvider = artworkProvider;
}
protected abstract String getTag();
protected abstract InputStream getStream() throws IOException;
@Override
public InputStream loadData(Priority priority) throws Exception {
stream = getStream();
return stream;
}
@Override
@CallSuper
public void cleanup() {
try {
if (stream != null) {
stream.close();
}
} catch (IOException e) {
// Ignored
}
}
@Override
public void cancel() {
}
@Override
public String getId() {
return artworkProvider.getArtworkKey() + "_" + getTag();
}
}