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