blob: c31e3a4a5a0182b961eec0f3cd0b84bc78372e21 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
package com.bumptech.glide.load.resource.file;
import com.bumptech.glide.load.engine.Resource;
import com.bumptech.glide.provider.DataLoadProvider;
import com.bumptech.glide.load.Encoder;
import com.bumptech.glide.load.ResourceDecoder;
import com.bumptech.glide.load.ResourceEncoder;
import com.bumptech.glide.load.model.StreamEncoder;
import com.bumptech.glide.load.resource.NullResourceEncoder;
import java.io.File;
import java.io.InputStream;
/**
* An {@link com.bumptech.glide.provider.DataLoadProvider} that provides encoders and decoders for for obtaining a
* cache file from {@link java.io.InputStream} data.
*/
public class StreamFileDataLoadProvider implements DataLoadProvider<InputStream, File> {
private static final ErrorSourceDecoder ERROR_DECODER = new ErrorSourceDecoder();
private final ResourceDecoder<File, File> cacheDecoder;
private final Encoder<InputStream> encoder;
public StreamFileDataLoadProvider() {
cacheDecoder = new FileDecoder();
encoder = new StreamEncoder();
}
@Override
public ResourceDecoder<File, File> getCacheDecoder() {
return cacheDecoder;
}
@Override
public ResourceDecoder<InputStream, File> getSourceDecoder() {
return ERROR_DECODER;
}
@Override
public Encoder<InputStream> getSourceEncoder() {
return encoder;
}
@Override
public ResourceEncoder<File> getEncoder() {
return NullResourceEncoder.get();
}
private static class ErrorSourceDecoder implements ResourceDecoder<InputStream, File> {
@Override
public Resource<File> decode(InputStream source, int width, int height) {
throw new Error("You cannot decode a File from an InputStream by default,"
+ " try either #diskCacheStratey(DiskCacheStrategy.SOURCE) to avoid this call or"
+ " #decoder(ResourceDecoder) to replace this Decoder");
}
@Override
public String getId() {
return "";
}
}
}
|