From 3f5d83b4d4c10563715b4103f31e85b6bf2f8e64 Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Sun, 2 Jan 2022 10:38:53 +0530 Subject: [PATCH] Fixed Gradient Player queue sheet --- .../player/gradient/GradientPlayerFragment.kt | 34 +++++++++++++++---- .../res/layout/fragment_gradient_player.xml | 4 ++- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/gradient/GradientPlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/gradient/GradientPlayerFragment.kt index f9ca2ce38..b30a654b3 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/gradient/GradientPlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/gradient/GradientPlayerFragment.kt @@ -28,7 +28,9 @@ import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.PopupMenu import androidx.appcompat.widget.Toolbar import androidx.constraintlayout.widget.ConstraintLayout -import androidx.core.view.* +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.updatePadding import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -63,7 +65,8 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext class GradientPlayerFragment : AbsPlayerFragment(R.layout.fragment_gradient_player), - MusicProgressViewUpdateHelper.Callback, PopupMenu.OnMenuItemClickListener { + MusicProgressViewUpdateHelper.Callback, + View.OnLayoutChangeListener, PopupMenu.OnMenuItemClickListener { private var lastColor: Int = 0 private var lastPlaybackControlsColor: Int = 0 private var lastDisabledPlaybackControlsColor: Int = 0 @@ -126,9 +129,9 @@ class GradientPlayerFragment : AbsPlayerFragment(R.layout.fragment_gradient_play } private fun setupPanel() { - binding.colorBackground.doOnLayout { - val panel = getQueuePanel() - panel.peekHeight = binding.container.height + if (!ViewCompat.isLaidOut(binding.colorBackground) || binding.colorBackground.isLayoutRequested) { + binding.colorBackground.addOnLayoutChangeListener(this) + return } } @@ -450,7 +453,7 @@ class GradientPlayerFragment : AbsPlayerFragment(R.layout.fragment_gradient_play private fun updateLabel() { (MusicPlayerRemote.playingQueue.size - 1).apply { if (this == (MusicPlayerRemote.position)) { - binding.nextSong.text = "Last song" + binding.nextSong.text = context?.resources?.getString(R.string.last_song) } else { val title = MusicPlayerRemote.playingQueue[MusicPlayerRemote.position + 1].title binding.nextSong.text = title @@ -458,6 +461,25 @@ class GradientPlayerFragment : AbsPlayerFragment(R.layout.fragment_gradient_play } } + override fun onLayoutChange( + v: View?, + left: Int, + top: Int, + right: Int, + bottom: Int, + oldLeft: Int, + oldTop: Int, + oldRight: Int, + oldBottom: Int + ) { + val panel = getQueuePanel() + if (panel.state == STATE_COLLAPSED) { + panel.peekHeight = binding.container.height + } else if (panel.state == STATE_EXPANDED) { + panel.peekHeight = binding.container.height + navBarHeight + } + } + private fun setupRecyclerView() { playingQueueAdapter = PlayingQueueAdapter( requireActivity() as AppCompatActivity, diff --git a/app/src/main/res/layout/fragment_gradient_player.xml b/app/src/main/res/layout/fragment_gradient_player.xml index 0f00d905d..3368ea1b8 100644 --- a/app/src/main/res/layout/fragment_gradient_player.xml +++ b/app/src/main/res/layout/fragment_gradient_player.xml @@ -4,7 +4,9 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="?attr/colorSurface"> + android:background="?attr/colorSurface" + android:clickable="true" + android:focusable="true">