3.x Glide nous pourrions ajouter enregistrer un modèle de chaîne chargeur comme suit:Comment ajouter en-tête d'autorisation à toute demande 4.x Glide
public class GlideService /* implements GlideModule*/ {
@Override
public void registerComponents(Context context, Glide glide) {
glide.register(String.class, InputStream.class, new HeaderedLoader.Factory());
}
private static class HeaderedLoader extends BaseGlideUrlLoader<String> {
public HeaderedLoader(Context context) {
super(context);
}
@Override
protected String getUrl(String model, int width, int height) {
return model;
}
@Override
protected Headers getHeaders(String model, int width, int height) {
LazyHeaders.Builder headersBuilder = new LazyHeaders.Builder();
if (BuildConfig.FLAVOR.equals("staging")) {
String auth = "username:password";
String base64 = Base64.encodeToString(auth.getBytes(), Base64.NO_WRAP);
headersBuilder.addHeader("Authorization", "Basic " + base64);
}
return headersBuilder.build();
}
public static class Factory implements ModelLoaderFactory<String, InputStream> {
@Override
public StreamModelLoader<String> build(Context context, GenericLoaderFactory factories) {
return new HeaderedLoader(context);
}
@Override
public void teardown() { }
}
}
}
Mais ce n'est pas clairement des documents que nous pouvons y parvenir pour la dernière version.
Des conseils? Merci!
en utilisant prepend(). prepend() s'assurera que votre ModelLoader ou ResourceDecoder est appelé avant tous les autres composants précédemment enregistrés et peut être exécuté en premier. – chad