package com.bumptech.glide.module;
import android.content.Context;
import com.bumptech.glide.GlideBuilder;
/**
* Defines a set of dependencies and options to use when initializing Glide within an application.
*
* <p>There can be at most one {@link AppGlideModule} in an application. Only Applications
* can include a {@link AppGlideModule}. Libraries must use {@link LibraryGlideModule}.
*
* <p>Classes that extend {@link AppGlideModule} must be annotated with
* {@link com.bumptech.glide.annotation.GlideModule} to be processed correctly.
*
* <p>Classes that extend {@link AppGlideModule} can optionally be annotated with
* {@link com.bumptech.glide.annotation.Excludes} to optionally exclude one or more
* {@link LibraryGlideModule} and/or {@link GlideModule} classes.
*
* <p>Once an application has migrated itself and all libraries it depends on to use Glide's
* annotation processor, {@link AppGlideModule} implementations should override
* {@link #isManifestParsingEnabled()} and return {@code false}.
*/
public abstract class AppGlideModule extends LibraryGlideModule implements AppliesOptions {
/**
* Returns {@code true} if Glide should check the AndroidManifest for {@link GlideModule}s.
*
* <p>Implementations should return {@code false} after they and their dependencies have migrated
* to Glide's annotation processor.
*
* <p>Returns {@code true} by default.
*/
public boolean isManifestParsingEnabled() {
return true;
}
@Override
public void applyOptions(Context context, GlideBuilder builder) {
// Default empty impl.
}
}