1cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Juddpackage com.bumptech.glide.load.model; 2cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd 3cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Juddimport android.os.ParcelFileDescriptor; 4cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Juddimport com.bumptech.glide.load.Encoder; 5cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd 6cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Juddimport java.io.InputStream; 7cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Juddimport java.io.OutputStream; 8cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd 9cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Juddpublic class ImageVideoWrapperEncoder implements Encoder<ImageVideoWrapper> { 10cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd private final Encoder<InputStream> streamEncoder; 11cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd private final Encoder<ParcelFileDescriptor> fileDescriptorEncoder; 12cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd private String id; 13cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd 14cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd public ImageVideoWrapperEncoder(Encoder<InputStream> streamEncoder, 15cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd Encoder<ParcelFileDescriptor> fileDescriptorEncoder) { 16cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd this.streamEncoder = streamEncoder; 17cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd this.fileDescriptorEncoder = fileDescriptorEncoder; 18cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd } 19cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd 20cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd @Override 21cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd public boolean encode(ImageVideoWrapper data, OutputStream os) { 22cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd if (data.getStream() != null) { 23cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd return streamEncoder.encode(data.getStream(), os); 24cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd } else { 25cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd return fileDescriptorEncoder.encode(data.getFileDescriptor(), os); 26cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd } 27cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd } 28cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd 29cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd @Override 30cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd public String getId() { 31cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd if (id == null) { 32cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd id = streamEncoder.getId() + fileDescriptorEncoder.getId(); 33cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd } 34cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd return id; 35cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd } 36cf1e05bf226ce4e7a510a5f7cac0661b9b2e90e9Sam Judd} 37