From a104e42e0c3e48722f0ef9adebcca9b616f5b25b Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Thu, 20 Jan 2022 19:55:56 +0530 Subject: [PATCH] Added collapsing app bar in Playing queue --- .../fragments/queue/PlayingQueueFragment.kt | 11 +++++++---- .../monkey/retromusic/views/TopAppBarLayout.kt | 8 ++++++++ .../layout-sw600dp/fragment_playing_queue.xml | 17 +++-------------- .../main/res/layout/fragment_playing_queue.xml | 18 +++--------------- 4 files changed, 21 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/queue/PlayingQueueFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/queue/PlayingQueueFragment.kt index 0bc6846de..fba9d5c4a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/queue/PlayingQueueFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/queue/PlayingQueueFragment.kt @@ -130,7 +130,7 @@ class PlayingQueueFragment : AbsMusicServiceFragment(R.layout.fragment_playing_q } private fun updateCurrentSong() { - binding.toolbar.subtitle = getUpNextAndQueueTime() + binding.appBarLayout.toolbar.subtitle = getUpNextAndQueueTime() } override fun onPlayingMetaChanged() { @@ -140,7 +140,7 @@ class PlayingQueueFragment : AbsMusicServiceFragment(R.layout.fragment_playing_q private fun updateQueuePosition() { playingQueueAdapter?.setCurrent(MusicPlayerRemote.position) resetToCurrentPosition() - binding.toolbar.subtitle = getUpNextAndQueueTime() + binding.appBarLayout.toolbar.subtitle = getUpNextAndQueueTime() } private fun updateQueue() { @@ -179,7 +179,7 @@ class PlayingQueueFragment : AbsMusicServiceFragment(R.layout.fragment_playing_q } private fun setupToolbar() { - binding.toolbar.subtitle = getUpNextAndQueueTime() + binding.appBarLayout.toolbar.subtitle = getUpNextAndQueueTime() binding.clearQueue.backgroundTintList = ColorStateList.valueOf(accentColor()) ColorStateList.valueOf( MaterialValueHelper.getPrimaryTextColor( @@ -190,10 +190,13 @@ class PlayingQueueFragment : AbsMusicServiceFragment(R.layout.fragment_playing_q binding.clearQueue.setTextColor(this) binding.clearQueue.iconTint = this } - binding.toolbar.apply { + binding.appBarLayout.pinWhenScrolled() + binding.appBarLayout.toolbar.apply { setNavigationOnClickListener { findNavController().navigateUp() } + setTitle(R.string.now_playing_queue) + setTitleTextAppearance(context, R.style.ToolbarTextAppearanceNormal) setNavigationIcon(R.drawable.ic_keyboard_backspace_black) ToolbarContentTintHelper.colorBackButton(this) } diff --git a/app/src/main/java/code/name/monkey/retromusic/views/TopAppBarLayout.kt b/app/src/main/java/code/name/monkey/retromusic/views/TopAppBarLayout.kt index baa743088..7e336e74a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/views/TopAppBarLayout.kt +++ b/app/src/main/java/code/name/monkey/retromusic/views/TopAppBarLayout.kt @@ -5,10 +5,12 @@ import android.content.res.Configuration import android.util.AttributeSet import android.view.LayoutInflater import androidx.appcompat.widget.Toolbar +import androidx.core.view.updateLayoutParams import code.name.monkey.retromusic.databinding.CollapsingAppbarLayoutBinding import code.name.monkey.retromusic.databinding.SimpleAppbarLayoutBinding import code.name.monkey.retromusic.util.PreferenceUtil import com.google.android.material.appbar.AppBarLayout +import com.google.android.material.appbar.AppBarLayout.LayoutParams.SCROLL_FLAG_NO_SCROLL import com.google.android.material.shape.MaterialShapeDrawable import dev.chrisbanes.insetter.applyInsetter @@ -44,6 +46,12 @@ class TopAppBarLayout @JvmOverloads constructor( } } + fun pinWhenScrolled() { + simpleAppbarBinding?.root?.updateLayoutParams { + scrollFlags = SCROLL_FLAG_NO_SCROLL + } + } + val toolbar: Toolbar get() = if (mode == AppBarMode.COLLAPSING) { collapsingAppbarBinding?.toolbar!! diff --git a/app/src/main/res/layout-sw600dp/fragment_playing_queue.xml b/app/src/main/res/layout-sw600dp/fragment_playing_queue.xml index 7dae61e77..4192be524 100644 --- a/app/src/main/res/layout-sw600dp/fragment_playing_queue.xml +++ b/app/src/main/res/layout-sw600dp/fragment_playing_queue.xml @@ -19,23 +19,12 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - - - + android:fitsSystemWindows="true" /> - - - - - + android:fitsSystemWindows="true" />