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 @@ +