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.
This commit is contained in:
OxygenCobalt 2020-09-20 10:29:35 -06:00
parent 19a9ab4098
commit 6b56ce4ae8
5 changed files with 20 additions and 9 deletions

View file

@ -25,5 +25,4 @@ class MainActivity : AppCompatActivity() {
} }
// RecyclerView click listener // RecyclerView click listener
// Dont ask why its here
class ClickListener<T>(val onClick: (T) -> Unit) class ClickListener<T>(val onClick: (T) -> Unit)

View file

@ -10,6 +10,7 @@ import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs import androidx.navigation.fragment.navArgs
import org.oxycblt.auxio.ClickListener import org.oxycblt.auxio.ClickListener
import org.oxycblt.auxio.R
import org.oxycblt.auxio.databinding.FragmentAlbumDetailBinding import org.oxycblt.auxio.databinding.FragmentAlbumDetailBinding
import org.oxycblt.auxio.detail.adapters.DetailSongAdapter import org.oxycblt.auxio.detail.adapters.DetailSongAdapter
import org.oxycblt.auxio.music.MusicViewModel import org.oxycblt.auxio.music.MusicViewModel
@ -45,14 +46,23 @@ class AlbumDetailFragment : Fragment() {
binding.songRecycler.applyDivider() binding.songRecycler.applyDivider()
binding.songRecycler.setHasFixedSize(true) binding.songRecycler.setHasFixedSize(true)
detailModel.navToParentArtist.observe(viewLifecycleOwner) { // If the album was shown directly from LibraryFragment, then enable the ability
if (it) { // to navigate to the artist from the album. Don't do this if the album was shown
findNavController().navigate( // from ArtistDetailFragment, as you can just navigate up to see the parent artist.
AlbumDetailFragmentDirections.actionShowParentArtist(album.artist.id) 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.") Log.d(this::class.simpleName, "Fragment created.")

View file

@ -62,7 +62,7 @@ class ArtistDetailFragment : Fragment() {
detailModel.isAlreadyNavigating = true detailModel.isAlreadyNavigating = true
findNavController().navigate( findNavController().navigate(
ArtistDetailFragmentDirections.actionShowAlbum(album.id) ArtistDetailFragmentDirections.actionShowAlbum(album.id, false)
) )
} }
} }

View file

@ -73,7 +73,6 @@
<TextView <TextView
android:id="@+id/artist_name" android:id="@+id/artist_name"
android:background="@drawable/ripple"
android:clickable="true" android:clickable="true"
android:focusable="true" android:focusable="true"
android:layout_width="0dp" android:layout_width="0dp"

View file

@ -58,6 +58,9 @@
<argument <argument
android:name="albumId" android:name="albumId"
app:argType="long" /> app:argType="long" />
<argument
android:name="isFromLibrary"
app:argType="boolean" />
<action <action
android:id="@+id/action_show_parent_artist" android:id="@+id/action_show_parent_artist"
app:enterAnim="@anim/fragment_fade_enter" app:enterAnim="@anim/fragment_fade_enter"