That fuck shit the fascists are using
at master 62 lines 2.1 kB view raw
1package org.tm.archive.glide; 2 3import androidx.annotation.NonNull; 4import androidx.annotation.Nullable; 5 6import com.bumptech.glide.load.Options; 7import com.bumptech.glide.load.model.ModelLoader; 8import com.bumptech.glide.load.model.ModelLoaderFactory; 9import com.bumptech.glide.load.model.MultiModelLoaderFactory; 10 11import org.tm.archive.giph.model.ChunkedImageUrl; 12import org.tm.archive.net.ContentProxySafetyInterceptor; 13import org.tm.archive.net.ContentProxySelector; 14import org.tm.archive.net.StandardUserAgentInterceptor; 15import org.tm.archive.push.SignalServiceNetworkAccess; 16 17import java.io.InputStream; 18 19import okhttp3.OkHttpClient; 20 21public class ChunkedImageUrlLoader implements ModelLoader<ChunkedImageUrl, InputStream> { 22 23 private final OkHttpClient client; 24 25 private ChunkedImageUrlLoader(OkHttpClient client) { 26 this.client = client; 27 } 28 29 @Override 30 public @Nullable LoadData<InputStream> buildLoadData(@NonNull ChunkedImageUrl url, int width, int height, @NonNull Options options) { 31 return new LoadData<>(url, new ChunkedImageUrlFetcher(client, url)); 32 } 33 34 @Override 35 public boolean handles(@NonNull ChunkedImageUrl url) { 36 return true; 37 } 38 39 public static class Factory implements ModelLoaderFactory<ChunkedImageUrl, InputStream> { 40 41 private final OkHttpClient client; 42 43 public Factory() { 44 this.client = new OkHttpClient.Builder() 45 .proxySelector(new ContentProxySelector()) 46 .cache(null) 47 .addInterceptor(new StandardUserAgentInterceptor()) 48 .addNetworkInterceptor(new ContentProxySafetyInterceptor()) 49 .addNetworkInterceptor(new PaddedHeadersInterceptor()) 50 .dns(SignalServiceNetworkAccess.DNS) 51 .build(); 52 } 53 54 @Override 55 public @NonNull ModelLoader<ChunkedImageUrl, InputStream> build(@NonNull MultiModelLoaderFactory multiFactory) { 56 return new ChunkedImageUrlLoader(client); 57 } 58 59 @Override 60 public void teardown() {} 61 } 62}