Как войти в каждый URL-адрес запроса от Glide? - PullRequest
0 голосов
/ 27 марта 2019

Я использую Glide для загрузки изображений в течение достаточно долгого времени, поэтому код, подобный этому, везде где:

      GlideApp.with(getContext())
            .load(imgUrl)
            .into(imgView);

И вдруг мне нужно записать URL каждого изображения для дальнейшего анализа.Вместо того, чтобы искать каждое использование Glade и изменять код следующим образом:

      GlideApp.with(getContext())
            .load(imgUrl)
            .listener(requestListener) // log urls through listener
            .into(imgAd);

есть ли способ, которым я мог бы добавить requestListener глобально, как в параметрах по умолчанию Glide, так что мне не нужно искатьи изменять каждое использование Glide во всем приложении?

Я использую Glide v4 и проверил post , в котором URL-адреса регистрируются непосредственно в logcat, но не в моем локальном хранилище для дальнейшего анализа.

1 Ответ

3 голосов
/ 27 марта 2019

Glide 4.9.0 может установить по умолчанию requestListener.

ссылка https://github.com/bumptech/glide/releases/tag/v4.9.0 https://github.com/bumptech/glide/commit/37127f0f817d4a11dfdcc447946397b5288de593

В пользовательском AppGlideModule

@GlideModule
public class MyAppGlideModule extends AppGlideModule {

    @Override
    public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
        builder.addGlobalRequestListener(new RequestListener<Object>() {
            @Override
            public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Object> target, boolean isFirstResource) {
                return false;
            }

            @Override
            public boolean onResourceReady(Object resource, Object model, Target<Object> target, DataSource dataSource, boolean isFirstResource) {
                return false;
            }
        });
    }
}

В пользовательском фрагменте действия

GlideApp.with(object).addDefaultRequestListener()

Glide.with(object).addDefaultRequestListener()

...