public class MediaStoreStreamLoader extends Object implements StreamModelLoader<Uri>
ModelLoader
that can use media store uris to open pre-generated thumbnails
from the media store using MediaStore.Images.Thumbnails
and
MediaStore.Video.Thumbnails
if the requested size is less than or equal to the media store
thumbnail size. If the given uri is not a media store uri or if the desired dimensions are too large,
it falls back to the wrapped ModelLoader
to load the
InputStream
data.Constructor and Description |
---|
MediaStoreStreamLoader(Context context,
ModelLoader<Uri,InputStream> uriLoader) |
Modifier and Type | Method and Description |
---|---|
DataFetcher<InputStream> |
getResourceFetcher(Uri model,
int width,
int height)
Obtains an
DataFetcher that can fetch the data required to decode the resource represented by this model. |
public MediaStoreStreamLoader(Context context, ModelLoader<Uri,InputStream> uriLoader)
public DataFetcher<InputStream> getResourceFetcher(Uri model, int width, int height)
ModelLoader
DataFetcher
that can fetch the data required to decode the resource represented by this model.
The DataFetcher
will not be used if the resource is already cached.
Note - If no valid data fetcher can be returned (for example if a model has a null URL), then it is acceptable to return a null data fetcher from this method. Doing so will be treated any other failure or exception during the load process.
getResourceFetcher
in interface ModelLoader<Uri,InputStream>
model
- The model representing the resource.width
- The width in pixels of the view or target the resource will be loaded into, or
Target.SIZE_ORIGINAL
to indicate that the resource should
be loaded at its original width.height
- The height in pixels of the view or target the resource will be loaded into, or
Target.SIZE_ORIGINAL
to indicate that the resource should
be loaded at its original height.DataFetcher
that can obtain the data the resource can be decoded from if the resource is not
cached, or null if no valid DataFetcher
could be constructed.