From 8c8e80ba3fbac993cf7e99fb4c53f60caf27a51f Mon Sep 17 00:00:00 2001 From: Bnyro Date: Wed, 11 Oct 2023 09:18:19 +0200 Subject: [PATCH] feat: hide watched videos from featured in homepage when enabled --- .../com/github/libretube/ui/fragments/HomeFragment.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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 d84b51913..f77a65ce2 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 @@ -35,6 +35,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async import kotlinx.coroutines.awaitAll import kotlinx.coroutines.launch +import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withContext class HomeFragment : Fragment() { @@ -143,13 +144,17 @@ class HomeFragment : Fragment() { SubscriptionHelper.getFeed() } }.getOrNull()?.takeIf { it.isNotEmpty() } ?: return - }.filter { + } + var filteredFeed = feed.filter { when (PreferenceHelper.getInt(PreferenceKeys.SELECTED_FEED_FILTER, 0)) { 1 -> !it.isShort 2 -> it.isShort else -> true } - }.take(20) + } + if (PreferenceHelper.getBoolean(PreferenceKeys.HIDE_WATCHED_FROM_FEED, false)) { + filteredFeed = runBlocking { DatabaseHelper.filterUnwatched(filteredFeed) } + } val binding = _binding ?: return makeVisible(binding.featuredRV, binding.featuredTV) @@ -159,7 +164,7 @@ class HomeFragment : Fragment() { false ) binding.featuredRV.adapter = VideosAdapter( - feed.toMutableList(), + filteredFeed.take(20).toMutableList(), forceMode = VideosAdapter.Companion.ForceMode.HOME ) }