From 2057d4cef688735ab47eee89cb1c43deb477df58 Mon Sep 17 00:00:00 2001 From: RafaRamos Date: Fri, 5 Jan 2024 19:05:14 +0100 Subject: [PATCH 1/2] Tweak home layout --- app/src/main/res/layout/fragment_home.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index be3d61dcd..005294f13 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -35,7 +35,8 @@ android:id="@+id/featuredRV" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginHorizontal="10dp" + android:paddingHorizontal="10dp" + android:clipToPadding="false" android:nestedScrollingEnabled="false" android:visibility="gone" /> @@ -48,7 +49,8 @@ android:id="@+id/watchingRV" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginHorizontal="10dp" + android:paddingHorizontal="10dp" + android:clipToPadding="false" android:nestedScrollingEnabled="false" android:visibility="gone" /> From 0e927b4b18a567ceb32e325fa835d12bf067515d Mon Sep 17 00:00:00 2001 From: RafaRamos Date: Fri, 5 Jan 2024 19:05:35 +0100 Subject: [PATCH 2/2] Fix issue where no caching was being done by default. --- .../github/libretube/helpers/ImageHelper.kt | 36 +++++++++++-------- .../libretube/ui/fragments/HomeFragment.kt | 1 + 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/github/libretube/helpers/ImageHelper.kt b/app/src/main/java/com/github/libretube/helpers/ImageHelper.kt index 74200f259..504134747 100644 --- a/app/src/main/java/com/github/libretube/helpers/ImageHelper.kt +++ b/app/src/main/java/com/github/libretube/helpers/ImageHelper.kt @@ -19,44 +19,52 @@ import com.github.libretube.util.DataSaverMode import java.nio.file.Path import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext +import java.io.File object ImageHelper { lateinit var imageLoader: ImageLoader + private val Context.coilFile get() = cacheDir.resolve("coil") + /** * Initialize the image loader */ fun initializeImageLoader(context: Context) { - val maxImageCacheSize = PreferenceHelper.getString( - PreferenceKeys.MAX_IMAGE_CACHE, - "" - ) + val maxCacheSize = PreferenceHelper.getString(PreferenceKeys.MAX_IMAGE_CACHE, "128") imageLoader = ImageLoader.Builder(context) .callFactory(CronetHelper.callFactory) + .crossfade(true) .apply { - when (maxImageCacheSize) { - "" -> { - diskCachePolicy(CachePolicy.DISABLED) - } + if (maxCacheSize.isEmpty()) { + diskCachePolicy(CachePolicy.DISABLED) + } else { + diskCachePolicy(CachePolicy.ENABLED) + memoryCachePolicy(CachePolicy.ENABLED) - else -> diskCache( - DiskCache.Builder() - .directory(context.cacheDir.resolve("coil")) - .maxSizeBytes(maxImageCacheSize.toInt() * 1024 * 1024L) - .build() + val diskCache = generateDiskCache( + directory = context.coilFile, + size = maxCacheSize.toInt() ) + diskCache(diskCache) } } .build() } + private fun generateDiskCache(directory: File, size: Int): DiskCache { + return DiskCache.Builder() + .directory(directory) + .maxSizeBytes(size * 1024 * 1024L) + .build() + } + /** * load an image from a url into an imageView */ fun loadImage(url: String?, target: ImageView) { // only load the image if the data saver mode is disabled - if (DataSaverMode.isEnabled(target.context) || url == null) return + if (DataSaverMode.isEnabled(target.context) || url.isNullOrEmpty()) return val urlToLoad = ProxyHelper.unwrapImageUrl(url) target.load(urlToLoad, imageLoader) } diff --git a/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt index b4af3c516..400b0ce1e 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt @@ -167,6 +167,7 @@ class HomeFragment : Fragment() { filteredFeed.take(20).toMutableList(), forceMode = VideosAdapter.Companion.LayoutMode.RELATED_COLUMN ) + binding.featuredRV.setHasFixedSize(true) } private suspend fun loadBookmarks() {