From 032a3cb9307d60698f2878b34a75ce243a374caa Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Thu, 26 Oct 2017 15:47:38 +0200 Subject: [PATCH] Move glide module Signed-off-by: Mario Danic --- .../talk/utils/glide/CachingGlideModule.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 app/src/main/java/com/nextcloud/talk/utils/glide/CachingGlideModule.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/glide/CachingGlideModule.java b/app/src/main/java/com/nextcloud/talk/utils/glide/CachingGlideModule.java new file mode 100644 index 000000000..ec5eed077 --- /dev/null +++ b/app/src/main/java/com/nextcloud/talk/utils/glide/CachingGlideModule.java @@ -0,0 +1,57 @@ +/* + * Nextcloud Talk application + * + * @author Mario Danic + * Copyright (C) 2017 Mario Danic + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.nextcloud.talk.utils.glide; + + +import android.content.Context; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.GlideBuilder; +import com.bumptech.glide.Registry; +import com.bumptech.glide.annotation.GlideModule; +import com.bumptech.glide.integration.okhttp3.OkHttpUrlLoader; +import com.bumptech.glide.load.engine.cache.InternalCacheDiskCacheFactory; +import com.bumptech.glide.load.model.GlideUrl; +import com.bumptech.glide.module.AppGlideModule; +import com.nextcloud.talk.application.NextcloudTalkApplication; +import com.nextcloud.talk.utils.HttpClientUtils; + +import java.io.InputStream; + +import autodagger.AutoInjector; + +@AutoInjector(NextcloudTalkApplication.class) +@GlideModule +public class CachingGlideModule extends AppGlideModule { + // 256 MB + private static final int IMAGE_CACHE_SIZE = 256 * 1024 * 1024; + + @Override + public void registerComponents(Context context, Glide glide, Registry registry) { + registry.replace(GlideUrl.class, InputStream.class, + new OkHttpUrlLoader.Factory(HttpClientUtils.getOkHttpClient())); + } + + @Override + public void applyOptions(Context context, GlideBuilder builder) { + builder.setDiskCache(new InternalCacheDiskCacheFactory(context, IMAGE_CACHE_SIZE)); + } +}