Added Collapsing appbar to library tabs with an option to switch back to simple appbar

This commit is contained in:
Prathamesh More 2022-01-15 15:07:11 +05:30
parent ffd251ab62
commit b2e1ab2128
12 changed files with 159 additions and 46 deletions

View file

@ -32,12 +32,10 @@ import code.name.monkey.retromusic.dialogs.CreatePlaylistDialog
import code.name.monkey.retromusic.dialogs.ImportPlaylistDialog
import code.name.monkey.retromusic.extensions.accentColor
import code.name.monkey.retromusic.extensions.dip
import code.name.monkey.retromusic.extensions.drawNextToNavbar
import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.interfaces.IScrollHelper
import code.name.monkey.retromusic.util.PreferenceUtil
import code.name.monkey.retromusic.util.ThemedFastScroller.create
import com.google.android.material.shape.MaterialShapeDrawable
import com.google.android.material.transition.MaterialFadeThrough
import me.zhanghai.android.fastscroll.FastScroller
import me.zhanghai.android.fastscroll.FastScrollerBuilder
@ -59,7 +57,7 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
view.doOnPreDraw { startPostponedEnterTransition() }
enterTransition = MaterialFadeThrough().addTarget(binding.recyclerView)
reenterTransition = MaterialFadeThrough().addTarget(binding.recyclerView)
mainActivity.setSupportActionBar(binding.toolbar)
mainActivity.setSupportActionBar(toolbar)
mainActivity.supportActionBar?.title = null
initLayoutManager()
initAdapter()
@ -98,12 +96,10 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
open fun onShuffleClicked() {
}
fun toolbar(): Toolbar {
return binding.toolbar
}
val toolbar: Toolbar get() = binding.appBarLayout.toolbar
private fun setupToolbar() {
binding.toolbar.setNavigationOnClickListener {
toolbar.setNavigationOnClickListener {
findNavController().navigate(
R.id.action_search,
null,
@ -111,10 +107,8 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
)
}
val appName = resources.getString(titleRes)
binding.appNameText.text = appName
binding.toolbarContainer.drawNextToNavbar()
binding.appBarLayout.statusBarForeground =
MaterialShapeDrawable.createWithElevationOverlay(requireContext())
binding.appBarLayout.title = appName
//toolbarContainer.drawNextToNavbar()
}
abstract val titleRes: Int
@ -208,7 +202,7 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
override fun onPrepareOptionsMenu(menu: Menu) {
super.onPrepareOptionsMenu(menu)
ToolbarContentTintHelper.handleOnPrepareOptionsMenu(requireActivity(), binding.toolbar)
ToolbarContentTintHelper.handleOnPrepareOptionsMenu(requireActivity(), toolbar)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
@ -216,9 +210,9 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
inflater.inflate(R.menu.menu_main, menu)
ToolbarContentTintHelper.handleOnCreateOptionsMenu(
requireContext(),
binding.toolbar,
toolbar,
menu,
ATHToolbarActivity.getToolbarBackgroundColor(binding.toolbar)
ATHToolbarActivity.getToolbarBackgroundColor(toolbar)
)
}

View file

@ -51,7 +51,7 @@ class PlayingQueueRVFragment : AbsRecyclerViewFragment<PlayingQueueAdapter, Line
}
private fun setupToolbar() {
toolbar().apply {
toolbar.apply {
setNavigationOnClickListener {
findNavController().navigateUp()
}