Enforce proxy settings on Glide

https://gitlab.com/AuroraOSS/AuroraStore/issues/173
This commit is contained in:
Rahul Kumar Patel
2019-09-20 20:31:55 +05:30
parent 5efd29e163
commit edba66bba5
2 changed files with 24 additions and 0 deletions

View File

@@ -96,7 +96,9 @@ dependencies {
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
//Glide
implementation 'com.github.bumptech.glide:glide:4.9.0'
implementation "com.github.bumptech.glide:okhttp3-integration:4.9.0"
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
//Fetch - Downloader
implementation 'androidx.tonyodev.fetch2:xfetch2:3.1.4'
implementation 'androidx.tonyodev.fetch2okhttp:xfetch2okhttp:3.1.4'

View File

@@ -26,14 +26,22 @@ import android.graphics.Bitmap;
import androidx.annotation.NonNull;
import com.aurora.store.utility.Util;
import com.bumptech.glide.Glide;
import com.bumptech.glide.GlideBuilder;
import com.bumptech.glide.Registry;
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.integration.okhttp3.OkHttpUrlLoader;
import com.bumptech.glide.load.engine.cache.InternalCacheDiskCacheFactory;
import com.bumptech.glide.load.engine.cache.LruResourceCache;
import com.bumptech.glide.load.model.GlideUrl;
import com.bumptech.glide.module.AppGlideModule;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.signature.ObjectKey;
import java.io.InputStream;
import okhttp3.OkHttpClient;
import static com.bumptech.glide.load.DecodeFormat.PREFER_ARGB_8888;
@GlideModule
@@ -50,6 +58,13 @@ public class AuroraGlide extends AppGlideModule {
.skipMemoryCache(false);
}
private static OkHttpClient getOkHttpClient(Context context) {
final OkHttpClient.Builder builder = new OkHttpClient.Builder();
if (Util.isNetworkProxyEnabled(context))
builder.proxy(Util.getNetworkProxy(context));
return builder.build();
}
@Override
public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
int memoryCacheSizeBytes = 1024 * 1024 * 50;
@@ -57,4 +72,11 @@ public class AuroraGlide extends AppGlideModule {
builder.setDiskCache(new InternalCacheDiskCacheFactory(context, memoryCacheSizeBytes));
builder.setDefaultRequestOptions(requestOptions(context));
}
@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
final OkHttpClient okHttpClient = getOkHttpClient(context);
final OkHttpUrlLoader.Factory okHttpUrlLoader = new OkHttpUrlLoader.Factory(okHttpClient);
registry.replace(GlideUrl.class, InputStream.class, okHttpUrlLoader);
}
}