diff --git a/app/src/main/java/com/github/libretube/db/dao/PlaylistBookmarkDao.kt b/app/src/main/java/com/github/libretube/db/dao/PlaylistBookmarkDao.kt index 3b8891981a..a3ce5a5912 100644 --- a/app/src/main/java/com/github/libretube/db/dao/PlaylistBookmarkDao.kt +++ b/app/src/main/java/com/github/libretube/db/dao/PlaylistBookmarkDao.kt @@ -12,6 +12,9 @@ interface PlaylistBookmarkDao { @Query("SELECT * FROM playlistBookmark") suspend fun getAll(): List + @Query("SELECT * FROM playlistBookmark WHERE playlistId = :playlistId LIMIT 1") + suspend fun findById(playlistId: String): PlaylistBookmark? + @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun insert(bookmark: PlaylistBookmark) diff --git a/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt index 2668fccf56..426c10db8c 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt @@ -29,6 +29,7 @@ import com.github.libretube.extensions.ceilHalf import com.github.libretube.extensions.dpToPx import com.github.libretube.helpers.NavBarHelper import com.github.libretube.helpers.PreferenceHelper +import com.github.libretube.helpers.ProxyHelper import com.github.libretube.ui.adapters.PlaylistBookmarkAdapter import com.github.libretube.ui.adapters.PlaylistsAdapter import com.github.libretube.ui.base.DynamicLayoutManagerFragment @@ -140,7 +141,9 @@ class LibraryFragment : DynamicLayoutManagerFragment() { private fun initBookmarks() { lifecycleScope.launch { val bookmarks = withContext(Dispatchers.IO) { - DatabaseHolder.Database.playlistBookmarkDao().getAll() + DatabaseHolder.Database.playlistBookmarkDao().getAll().map { + it.copy(thumbnailUrl = ProxyHelper.rewriteUrl(it.thumbnailUrl)) + } } val binding = _binding ?: return@launch diff --git a/app/src/main/java/com/github/libretube/ui/fragments/PlaylistFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/PlaylistFragment.kt index 2672df7f8a..2a7f718075 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/PlaylistFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/PlaylistFragment.kt @@ -290,8 +290,8 @@ class PlaylistFragment : DynamicLayoutManagerFragment() { if (!isBookmarked) return withContext(Dispatchers.IO) { // update the playlist thumbnail and title if bookmarked - val playlistBookmark = DatabaseHolder.Database.playlistBookmarkDao().getAll() - .firstOrNull { it.playlistId == playlistId } ?: return@withContext + val playlistBookmark = DatabaseHolder.Database.playlistBookmarkDao().findById(playlistId) + ?: return@withContext if (playlistBookmark.thumbnailUrl != playlist.thumbnailUrl || playlistBookmark.playlistName != playlist.name || playlistBookmark.videos != playlist.videos