FileDescriptorFileLoader.java revision 4626911b917568f6c1bd9d93f91ae1c70cb43554
1fcd787c911d5fbca2a34ff0963d4665543a03275Sam Juddpackage com.bumptech.glide.loader.bitmap.model.file_descriptor;
2fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd
3fcd787c911d5fbca2a34ff0963d4665543a03275Sam Juddimport android.content.Context;
4fcd787c911d5fbca2a34ff0963d4665543a03275Sam Juddimport android.net.Uri;
5fcd787c911d5fbca2a34ff0963d4665543a03275Sam Juddimport android.os.ParcelFileDescriptor;
64626911b917568f6c1bd9d93f91ae1c70cb43554Sam Juddimport com.bumptech.glide.Glide;
7fcd787c911d5fbca2a34ff0963d4665543a03275Sam Juddimport com.bumptech.glide.loader.bitmap.model.FileLoader;
8fcd787c911d5fbca2a34ff0963d4665543a03275Sam Juddimport com.bumptech.glide.loader.bitmap.model.GenericLoaderFactory;
9fcd787c911d5fbca2a34ff0963d4665543a03275Sam Juddimport com.bumptech.glide.loader.bitmap.model.ModelLoader;
10fcd787c911d5fbca2a34ff0963d4665543a03275Sam Juddimport com.bumptech.glide.loader.bitmap.model.ModelLoaderFactory;
11fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd
12fcd787c911d5fbca2a34ff0963d4665543a03275Sam Juddimport java.io.File;
13fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd
14fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd/**
15fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd * A {@link ModelLoader} For translating {@link File} models into {@link ParcelFileDescriptor} resources.
16fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd */
17fcd787c911d5fbca2a34ff0963d4665543a03275Sam Juddpublic class FileDescriptorFileLoader extends FileLoader<ParcelFileDescriptor> implements FileDescriptorModelLoader<File> {
18fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd
19fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd    public static class Factory implements ModelLoaderFactory<File, ParcelFileDescriptor> {
20fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd        @Override
21fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd        public ModelLoader<File, ParcelFileDescriptor> build(Context context, GenericLoaderFactory factories) {
22fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd            return new FileDescriptorFileLoader(factories.buildModelLoader(Uri.class, ParcelFileDescriptor.class,
23fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd                    context));
24fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd        }
25fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd
26fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd        @Override
27fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd        public Class<? extends ModelLoader<File, ParcelFileDescriptor>> loaderClass() {
28fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd            return FileDescriptorFileLoader.class;
29fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd        }
30fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd
31fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd        @Override
32fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd        public void teardown() {
33fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd        }
34fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd    }
35b2bcf70a40da4ebb1f914ab5ccedf3de593b6951Sam Judd
364626911b917568f6c1bd9d93f91ae1c70cb43554Sam Judd    public FileDescriptorFileLoader(Context context) {
374626911b917568f6c1bd9d93f91ae1c70cb43554Sam Judd        this(Glide.buildFileDescriptorModelLoader(Uri.class, context));
384626911b917568f6c1bd9d93f91ae1c70cb43554Sam Judd    }
394626911b917568f6c1bd9d93f91ae1c70cb43554Sam Judd
40fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd    public FileDescriptorFileLoader(ModelLoader<Uri, ParcelFileDescriptor> uriLoader) {
41fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd        super(uriLoader);
42fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd    }
43fcd787c911d5fbca2a34ff0963d4665543a03275Sam Judd}
44