diff --git a/app/src/main/java/com/github/libretube/ui/fragments/BookmarksFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/BookmarksFragment.kt
deleted file mode 100644
index abd456dee..000000000
--- a/app/src/main/java/com/github/libretube/ui/fragments/BookmarksFragment.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.github.libretube.ui.fragments
-
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.recyclerview.widget.LinearLayoutManager
-import com.github.libretube.databinding.FragmentBookmarksBinding
-import com.github.libretube.db.DatabaseHolder.Companion.Database
-import com.github.libretube.extensions.awaitQuery
-import com.github.libretube.ui.adapters.PlaylistBookmarkAdapter
-import com.github.libretube.ui.base.BaseFragment
-
-class BookmarksFragment : BaseFragment() {
- private lateinit var binding: FragmentBookmarksBinding
-
- override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View {
- binding = FragmentBookmarksBinding.inflate(layoutInflater)
- return binding.root
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
-
- val bookmarks = awaitQuery {
- Database.playlistBookmarkDao().getAll()
- }
-
- if (bookmarks.isEmpty()) return
-
- binding.bookmarksRV.layoutManager = LinearLayoutManager(context)
- binding.bookmarksRV.adapter = PlaylistBookmarkAdapter(bookmarks)
-
- binding.bookmarksRV.visibility = View.VISIBLE
- binding.emptyBookmarks.visibility = View.GONE
- }
-}
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 98df8c913..4dad21d5a 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
@@ -24,7 +24,6 @@ import com.github.libretube.ui.adapters.VideosAdapter
import com.github.libretube.ui.base.BaseFragment
import com.github.libretube.ui.extensions.withMaxSize
import com.github.libretube.util.LocaleHelper
-import com.github.libretube.util.PreferenceHelper
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
@@ -57,7 +56,7 @@ class HomeFragment : BaseFragment() {
}
binding.bookmarksTV.setOnClickListener {
- findNavController().navigate(R.id.bookmarksFragment)
+ findNavController().navigate(R.id.libraryFragment)
}
binding.refresh.setOnRefreshListener {
@@ -73,7 +72,6 @@ class HomeFragment : BaseFragment() {
}
private suspend fun fetchHome() {
- val token = PreferenceHelper.getToken()
runOrError {
val feed = SubscriptionHelper.getFeed().withMaxSize(20)
if (feed.isEmpty()) return@runOrError
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 62c78c4f9..1c26b5f85 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
@@ -15,8 +15,11 @@ import com.github.libretube.R
import com.github.libretube.api.PlaylistsHelper
import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.databinding.FragmentLibraryBinding
+import com.github.libretube.db.DatabaseHolder
import com.github.libretube.extensions.TAG
+import com.github.libretube.extensions.awaitQuery
import com.github.libretube.extensions.toPixel
+import com.github.libretube.ui.adapters.PlaylistBookmarkAdapter
import com.github.libretube.ui.adapters.PlaylistsAdapter
import com.github.libretube.ui.base.BaseFragment
import com.github.libretube.ui.dialogs.CreatePlaylistDialog
@@ -41,13 +44,15 @@ class LibraryFragment : BaseFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
+ // initialize the layout managers
+ binding.bookmarksRecView.layoutManager = LinearLayoutManager(context)
+ binding.playlistRecView.layoutManager = LinearLayoutManager(context)
+
// listen for the mini player state changing
playerViewModel.isMiniPlayerVisible.observe(viewLifecycleOwner) {
updateFABMargin(it)
}
- binding.playlistRecView.layoutManager = LinearLayoutManager(requireContext())
-
// hide watch history button of history disabled
val watchHistoryEnabled =
PreferenceHelper.getBoolean(PreferenceKeys.WATCH_HISTORY_TOGGLE, true)
@@ -59,10 +64,6 @@ class LibraryFragment : BaseFragment() {
}
}
- binding.bookmarks.setOnClickListener {
- findNavController().navigate(R.id.bookmarksFragment)
- }
-
binding.downloads.setOnClickListener {
findNavController().navigate(R.id.downloadsFragment)
}
@@ -73,10 +74,12 @@ class LibraryFragment : BaseFragment() {
}
fetchPlaylists()
+ initBookmarks()
binding.playlistRefresh.isEnabled = true
binding.playlistRefresh.setOnRefreshListener {
fetchPlaylists()
+ initBookmarks()
}
binding.createPlaylist.setOnClickListener {
CreatePlaylistDialog {
@@ -85,6 +88,17 @@ class LibraryFragment : BaseFragment() {
}
}
+ private fun initBookmarks() {
+ val bookmarks = awaitQuery {
+ DatabaseHolder.Database.playlistBookmarkDao().getAll()
+ }
+
+ binding.bookmarksCV.visibility = if (bookmarks.isEmpty()) View.GONE else View.VISIBLE
+ if (bookmarks.isEmpty()) return
+
+ binding.bookmarksRecView.adapter = PlaylistBookmarkAdapter(bookmarks)
+ }
+
private fun updateFABMargin(isMiniPlayerVisible: Boolean) {
// optimize CreatePlaylistFab bottom margin if miniPlayer active
val bottomMargin = if (isMiniPlayerVisible) 64 else 16
diff --git a/app/src/main/res/layout/fragment_bookmarks.xml b/app/src/main/res/layout/fragment_bookmarks.xml
deleted file mode 100644
index f874db5dd..000000000
--- a/app/src/main/res/layout/fragment_bookmarks.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_library.xml b/app/src/main/res/layout/fragment_library.xml
index 114bb3e0e..112e96d9b 100644
--- a/app/src/main/res/layout/fragment_library.xml
+++ b/app/src/main/res/layout/fragment_library.xml
@@ -12,128 +12,147 @@
android:layout_height="match_parent"
android:layout_margin="10dp">
-
+ android:orientation="vertical" >
-
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
-
+ android:layout_height="wrap_content">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:orientation="vertical">
-
+ android:background="?attr/selectableItemBackground"
+ android:drawablePadding="10dp"
+ android:paddingHorizontal="15dp"
+ android:paddingVertical="12dp"
+ android:text="@string/watch_history"
+ android:textSize="18sp"
+ android:textStyle="bold"
+ app:drawableStartCompat="@drawable/ic_time_outlined" />
-
+
+
+
+
+
+
+
+
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="10dp">
+
+
+
+
+
+
+
+
+
+ android:layout_height="wrap_content" />
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file