How to set OkHttpClient for glide
Based on the docs, this is the proper up-to-date way to do it:
@GlideModule
@Excludes(OkHttpLibraryGlideModule::class)
class MyGlideModule : AppGlideModule() {
override fun registerComponents(context: Context, glide: Glide, registry: Registry) {
registry.replace(
GlideUrl::class.java,
InputStream::class.java,
OkHttpUrlLoader.Factory(myOkHttpClient)
)
}
}
And you'll need all these dependencies:
implementation 'com.github.bumptech.glide:glide:4.12.0'
kapt 'com.github.bumptech.glide:compiler:4.12.0'
implementation 'com.github.bumptech.glide:okhttp3-integration:4.12.0'
To use OkHttpUrlLoader you need to add dependencies as the @darwin said but there is dependency issue https://github.com/bumptech/glide/issues/941. So you will be adding this in your dependencies
compile ('com.github.bumptech.glide:okhttp3-integration:1.4.0'){
exclude group: 'glide-parent'
}
You need to add okhttp3-integration dependency to your app gradile file
dependencies {
compile 'com.github.bumptech.glide:okhttp3-integration:1.4.0@aar'
//compile 'com.squareup.okhttp3:okhttp:3.2.0'}
Reffer the official link glide integration module
After that u can add GlideModule with okhttp...
since glide 4.0.0 it has changed a little bit.
first of all GlideModule
is deprecated and you need to use AppGlideModule
if you are developing an application and LibraryGlideModule
for library development. you need to use @GlideModule
above your custom AppGlideModule
class.
secondly there is no register()
method in Glide
object any more.
and finally okhttp3 will use a builder.
it'll be like below for apps:
@GlideModule
private class CustomGlideModule extends AppGlideModule {
@Override
public void registerComponents(Context context, Glide glide, Registry registry) {
OkHttpClient client = new OkHttpClient.Builder()
.readTimeout(15, TimeUnit.SECONDS)
.connectTimeout(15, TimeUnit.SECONDS)
.build();
OkHttpUrlLoader.Factory factory = new OkHttpUrlLoader.Factory(client);
glide.getRegistry().replace(GlideUrl.class, InputStream.class, factory);
}
}
you'll need to have all these dependency with the exact versions in your app gradle file:
compile "com.squareup.okhttp3:okhttp:3.8.1"
compile 'com.github.bumptech.glide:glide:4.0.0'
compile ('com.github.bumptech.glide:okhttp3-integration:4.0.0'){
exclude group: 'glide-parent'
}