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