LibraryGlideModule can not run independently.
- Dominant language
- Java
- Stars
- 35k
- Forks
- 6.2k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 8
Description
**4.12.0**:
**Glide, Interceptor, Compile (for annotationProcessor)**:
**Emulator**:
**Issue details / Repro steps / Use case background**:
I make a library use glide to show images on chat.
I should to use GlideModule to add header when request image.
So, I make a LibraryGlideModule and add OkhttpClient in registerComponents function.
But it not called.
After add AppGlideModule in other module or library module (I test two cases each)
It works and LibraryGlideModule's registerComponents function is called.
1. In glide module developer docs, We should to use LibraryGlideModule and **should not create AppGlideModule** in library.
2. **LibraryGlideModule won't work without AppGlideModule.**
In conclusion, We should guide to developers who use our library to add empty AppGlideModule implementation
It is very annoying if someone not use image viewer.
What is good practice in this case?
### Case 1. Only use LibraryGlideModule
```java
// library module
@GlideModule
public class ChannelPluginGlideModule extends LibraryGlideModule {
@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
// not called
}
}
```
### Case 2. Both AppGlideModule, LibraryGlideModule in same library module
```java
// library module
@GlideModule
public class MyGlideModule extends AppGlideModule {
}
@GlideModule
public class ChannelPluginGlideModule extends LibraryGlideModule {
@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
// called
}
}
```
### Case 3. AppGlideModule in app module, LibraryGlideModule in library module
```java
// app module
@GlideModule
public class MyGlideModule extends AppGlideModule {
}
// library module
@GlideModule
public class ChannelPluginGlideModule extends LibraryGlideModule {
@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
// called
}
}
```
I think the important thing is the existence of AppGlideModule
After add `AppGlideModule`, Both `Glide.with` and `Glideapp.with` works through LibraryGlideModule.
Contributor guide
Assessment
This issue has not been assessed yet.