diff --git a/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt index 8a3064202..94d37f78b 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt @@ -272,6 +272,8 @@ class AudioPlayerFragment : Fragment(R.layout.fragment_audio_player), AudioPlaye } private fun killFragment(stopPlayer: Boolean) { + viewModel.isMiniPlayerVisible.value = false + if (stopPlayer) playerController?.sendCustomCommand(AbstractPlayerService.stopServiceCommand, Bundle.EMPTY) playerController?.release() playerController = null diff --git a/app/src/main/java/com/github/libretube/ui/fragments/DownloadsFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/DownloadsFragment.kt index eadfde5fc..c1aeb1a67 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/DownloadsFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/DownloadsFragment.kt @@ -1,5 +1,6 @@ package com.github.libretube.ui.fragments +import android.annotation.SuppressLint import android.content.ComponentName import android.content.Context import android.content.Intent @@ -8,11 +9,15 @@ import android.content.ServiceConnection import android.os.Bundle import android.os.IBinder import android.view.View +import android.view.ViewGroup.MarginLayoutParams import androidx.core.content.ContextCompat import androidx.core.os.bundleOf import androidx.core.view.isGone import androidx.core.view.isVisible +import androidx.core.view.marginBottom +import androidx.core.view.updateLayoutParams import androidx.fragment.app.Fragment +import androidx.fragment.app.activityViewModels import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -26,6 +31,7 @@ import com.github.libretube.db.DatabaseHolder.Database import com.github.libretube.db.obj.DownloadWithItems import com.github.libretube.db.obj.filterByTab import com.github.libretube.extensions.ceilHalf +import com.github.libretube.extensions.dpToPx import com.github.libretube.extensions.formatAsFileSize import com.github.libretube.extensions.serializable import com.github.libretube.extensions.setOnDismissListener @@ -40,6 +46,8 @@ import com.github.libretube.services.DownloadService import com.github.libretube.ui.adapters.DownloadsAdapter import com.github.libretube.ui.base.DynamicLayoutManagerFragment import com.github.libretube.ui.extensions.setupFragmentAnimation +import com.github.libretube.ui.models.CommonPlayerViewModel +import com.github.libretube.ui.models.PlayerViewModel import com.github.libretube.ui.sheets.BaseBottomSheet import com.github.libretube.ui.viewholders.DownloadsViewHolder import com.google.android.material.dialog.MaterialAlertDialogBuilder @@ -101,11 +109,14 @@ class DownloadsFragmentAdapter(fragment: Fragment) : FragmentStateAdapter(fragme } } +@SuppressLint("UnsafeOptInUsageError") class DownloadsFragmentPage : DynamicLayoutManagerFragment(R.layout.fragment_download_content) { private lateinit var adapter: DownloadsAdapter private var _binding: FragmentDownloadContentBinding? = null private val binding get() = _binding!! + private val playerViewModel: CommonPlayerViewModel by activityViewModels() + private var binder: DownloadService.LocalBinder? = null private val downloadReceiver = DownloadReceiver() private lateinit var downloadTab: DownloadTab @@ -227,6 +238,12 @@ class DownloadsFragmentPage : DynamicLayoutManagerFragment(R.layout.fragment_dow NavigationHelper.openAudioPlayerFragment(requireContext(), offlinePlayer = true) } + + playerViewModel.isMiniPlayerVisible.observe(viewLifecycleOwner) { isMiniPlayerVisible -> + binding.fabContainer.updateLayoutParams { + bottomMargin = (if (isMiniPlayerVisible) 64f else 16f).dpToPx() + } + } } private fun submitDownloadList(items: List) { diff --git a/app/src/main/res/layout/fragment_download_content.xml b/app/src/main/res/layout/fragment_download_content.xml index 183707b20..e80d0cb92 100644 --- a/app/src/main/res/layout/fragment_download_content.xml +++ b/app/src/main/res/layout/fragment_download_content.xml @@ -61,6 +61,7 @@