Skip to content

Commit ff87844

Browse files
authored
Merge pull request libre-tube#7269 from Bnyro/master
fix: download fragment buttons overlap miniplayer
2 parents 5b7788b + 763f90f commit ff87844

3 files changed

Lines changed: 20 additions & 0 deletions

File tree

app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,8 @@ class AudioPlayerFragment : Fragment(R.layout.fragment_audio_player), AudioPlaye
272272
}
273273

274274
private fun killFragment(stopPlayer: Boolean) {
275+
viewModel.isMiniPlayerVisible.value = false
276+
275277
if (stopPlayer) playerController?.sendCustomCommand(AbstractPlayerService.stopServiceCommand, Bundle.EMPTY)
276278
playerController?.release()
277279
playerController = null

app/src/main/java/com/github/libretube/ui/fragments/DownloadsFragment.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.github.libretube.ui.fragments
22

3+
import android.annotation.SuppressLint
34
import android.content.ComponentName
45
import android.content.Context
56
import android.content.Intent
@@ -8,11 +9,15 @@ import android.content.ServiceConnection
89
import android.os.Bundle
910
import android.os.IBinder
1011
import android.view.View
12+
import android.view.ViewGroup.MarginLayoutParams
1113
import androidx.core.content.ContextCompat
1214
import androidx.core.os.bundleOf
1315
import androidx.core.view.isGone
1416
import androidx.core.view.isVisible
17+
import androidx.core.view.marginBottom
18+
import androidx.core.view.updateLayoutParams
1519
import androidx.fragment.app.Fragment
20+
import androidx.fragment.app.activityViewModels
1621
import androidx.lifecycle.lifecycleScope
1722
import androidx.recyclerview.widget.GridLayoutManager
1823
import androidx.recyclerview.widget.RecyclerView
@@ -26,6 +31,7 @@ import com.github.libretube.db.DatabaseHolder.Database
2631
import com.github.libretube.db.obj.DownloadWithItems
2732
import com.github.libretube.db.obj.filterByTab
2833
import com.github.libretube.extensions.ceilHalf
34+
import com.github.libretube.extensions.dpToPx
2935
import com.github.libretube.extensions.formatAsFileSize
3036
import com.github.libretube.extensions.serializable
3137
import com.github.libretube.extensions.setOnDismissListener
@@ -40,6 +46,8 @@ import com.github.libretube.services.DownloadService
4046
import com.github.libretube.ui.adapters.DownloadsAdapter
4147
import com.github.libretube.ui.base.DynamicLayoutManagerFragment
4248
import com.github.libretube.ui.extensions.setupFragmentAnimation
49+
import com.github.libretube.ui.models.CommonPlayerViewModel
50+
import com.github.libretube.ui.models.PlayerViewModel
4351
import com.github.libretube.ui.sheets.BaseBottomSheet
4452
import com.github.libretube.ui.viewholders.DownloadsViewHolder
4553
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@@ -101,11 +109,14 @@ class DownloadsFragmentAdapter(fragment: Fragment) : FragmentStateAdapter(fragme
101109
}
102110
}
103111

112+
@SuppressLint("UnsafeOptInUsageError")
104113
class DownloadsFragmentPage : DynamicLayoutManagerFragment(R.layout.fragment_download_content) {
105114
private lateinit var adapter: DownloadsAdapter
106115
private var _binding: FragmentDownloadContentBinding? = null
107116
private val binding get() = _binding!!
108117

118+
private val playerViewModel: CommonPlayerViewModel by activityViewModels()
119+
109120
private var binder: DownloadService.LocalBinder? = null
110121
private val downloadReceiver = DownloadReceiver()
111122
private lateinit var downloadTab: DownloadTab
@@ -227,6 +238,12 @@ class DownloadsFragmentPage : DynamicLayoutManagerFragment(R.layout.fragment_dow
227238

228239
NavigationHelper.openAudioPlayerFragment(requireContext(), offlinePlayer = true)
229240
}
241+
242+
playerViewModel.isMiniPlayerVisible.observe(viewLifecycleOwner) { isMiniPlayerVisible ->
243+
binding.fabContainer.updateLayoutParams<MarginLayoutParams> {
244+
bottomMargin = (if (isMiniPlayerVisible) 64f else 16f).dpToPx()
245+
}
246+
}
230247
}
231248

232249
private fun submitDownloadList(items: List<DownloadWithItems>) {

app/src/main/res/layout/fragment_download_content.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
</LinearLayout>
6262

6363
<LinearLayout
64+
android:id="@+id/fab_container"
6465
android:layout_width="wrap_content"
6566
android:layout_height="wrap_content"
6667
app:layout_constraintBottom_toBottomOf="parent"

0 commit comments

Comments
 (0)