From 6b56ce4ae8fe51d1056d3de7a6687f03b493aa49 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Sun, 20 Sep 2020 10:29:35 -0600 Subject: [PATCH] Change parent artist navigation Change the parent artist navigation so that its only enabled when an album is selected from LibraryFragment, otherwise dont enable it, as the user can just navigate up to see the parent artist. --- .../java/org/oxycblt/auxio/MainActivity.kt | 1 - .../auxio/detail/AlbumDetailFragment.kt | 22 ++++++++++++++----- .../auxio/detail/ArtistDetailFragment.kt | 2 +- .../main/res/layout/fragment_album_detail.xml | 1 - app/src/main/res/navigation/nav_main.xml | 3 +++ 5 files changed, 20 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt index cf4908371..690b8ff8d 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt @@ -25,5 +25,4 @@ class MainActivity : AppCompatActivity() { } // RecyclerView click listener -// Dont ask why its here class ClickListener(val onClick: (T) -> Unit) diff --git a/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt index 43c97debf..68428ca0b 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt @@ -10,6 +10,7 @@ import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs import org.oxycblt.auxio.ClickListener +import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentAlbumDetailBinding import org.oxycblt.auxio.detail.adapters.DetailSongAdapter import org.oxycblt.auxio.music.MusicViewModel @@ -45,14 +46,23 @@ class AlbumDetailFragment : Fragment() { binding.songRecycler.applyDivider() binding.songRecycler.setHasFixedSize(true) - detailModel.navToParentArtist.observe(viewLifecycleOwner) { - if (it) { - findNavController().navigate( - AlbumDetailFragmentDirections.actionShowParentArtist(album.artist.id) - ) + // If the album was shown directly from LibraryFragment, then enable the ability + // to navigate to the artist from the album. Don't do this if the album was shown + // from ArtistDetailFragment, as you can just navigate up to see the parent artist. + if (args.isFromLibrary) { + detailModel.doneWithNavToParent() - detailModel.doneWithNavToParent() + detailModel.navToParentArtist.observe(viewLifecycleOwner) { + if (it) { + findNavController().navigate( + AlbumDetailFragmentDirections.actionShowParentArtist(album.artist.id) + ) + + detailModel.doneWithNavToParent() + } } + + binding.artistName.setBackgroundResource(R.drawable.ripple) } Log.d(this::class.simpleName, "Fragment created.") diff --git a/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt index d4e062203..b224a2ffa 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt @@ -62,7 +62,7 @@ class ArtistDetailFragment : Fragment() { detailModel.isAlreadyNavigating = true findNavController().navigate( - ArtistDetailFragmentDirections.actionShowAlbum(album.id) + ArtistDetailFragmentDirections.actionShowAlbum(album.id, false) ) } } diff --git a/app/src/main/res/layout/fragment_album_detail.xml b/app/src/main/res/layout/fragment_album_detail.xml index 88386d076..814d3857c 100644 --- a/app/src/main/res/layout/fragment_album_detail.xml +++ b/app/src/main/res/layout/fragment_album_detail.xml @@ -73,7 +73,6 @@ +