That fuck shit the fascists are using
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}