FileDescriptorUriLoader.java revision b5419dc08eb0a0f82821d774435720e5a31bc936
1package com.bumptech.glide.load.model.file_descriptor; 2 3import android.content.Context; 4import android.net.Uri; 5import android.os.ParcelFileDescriptor; 6import com.bumptech.glide.Glide; 7import com.bumptech.glide.load.model.GenericLoaderFactory; 8import com.bumptech.glide.load.model.GlideUrl; 9import com.bumptech.glide.load.model.ModelLoader; 10import com.bumptech.glide.load.model.ModelLoaderFactory; 11import com.bumptech.glide.load.model.UriLoader; 12import com.bumptech.glide.load.data.DataFetcher; 13import com.bumptech.glide.load.data.FileDescriptorLocalUriFetcher; 14 15/** 16 * A {@link ModelLoader} For translating {@link Uri} models for local uris into {@link ParcelFileDescriptor} data. 17 */ 18public class FileDescriptorUriLoader extends UriLoader<ParcelFileDescriptor> implements FileDescriptorModelLoader<Uri> { 19 20 /** 21 * The default factory for {@link com.bumptech.glide.load.model.file_descriptor.FileDescriptorUriLoader}s. 22 */ 23 public static class Factory implements ModelLoaderFactory<Uri, ParcelFileDescriptor> { 24 @Override 25 public ModelLoader<Uri, ParcelFileDescriptor> build(Context context, GenericLoaderFactory factories) { 26 return new FileDescriptorUriLoader(context, factories.buildModelLoader(GlideUrl.class, 27 ParcelFileDescriptor.class, context)); 28 } 29 30 @Override 31 public void teardown() { } 32 } 33 34 public FileDescriptorUriLoader(Context context) { 35 this(context, Glide.buildFileDescriptorModelLoader(GlideUrl.class, context)); 36 } 37 38 public FileDescriptorUriLoader(Context context, ModelLoader<GlideUrl, ParcelFileDescriptor> urlLoader) { 39 super(context, urlLoader); 40 } 41 42 @Override 43 protected DataFetcher<ParcelFileDescriptor> getLocalUriFetcher(Context context, Uri uri) { 44 return new FileDescriptorLocalUriFetcher(context, uri); 45 } 46} 47