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 79b33a29b..39821f268 100644
--- a/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt
+++ b/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt
@@ -14,7 +14,7 @@ import org.oxycblt.auxio.music.Artist
import org.oxycblt.auxio.music.BaseModel
import org.oxycblt.auxio.music.MusicStore
import org.oxycblt.auxio.playback.state.PlaybackMode
-import org.oxycblt.auxio.ui.setupAlbumActions
+import org.oxycblt.auxio.ui.setupArtistAlbumActions
/**
* The [DetailFragment] for an artist.
@@ -53,7 +53,7 @@ class ArtistDetailFragment : DetailFragment() {
}
},
doOnLongClick = { data, view ->
- PopupMenu(requireContext(), view).setupAlbumActions(
+ PopupMenu(requireContext(), view).setupArtistAlbumActions(
requireContext(), data, playbackModel
)
}
diff --git a/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt b/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt
index 9fee6824f..34dc73746 100644
--- a/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt
+++ b/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt
@@ -206,7 +206,7 @@ class LibraryFragment : Fragment(), SearchView.OnQueryTextListener {
when (data) {
is Song -> menu.setupSongActions(requireContext(), data, playbackModel, detailModel)
- is Album -> menu.setupAlbumActions(requireContext(), data, playbackModel)
+ is Album -> menu.setupAlbumActions(requireContext(), data, playbackModel, detailModel)
is Artist -> menu.setupArtistActions(data, playbackModel)
is Genre -> menu.setupGenreActions(data, playbackModel)
diff --git a/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt b/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt
index 641fe5985..d2357ec1a 100644
--- a/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt
+++ b/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt
@@ -188,21 +188,16 @@ fun PopupMenu.setupAlbumSongActions(
* @param context [Context] required
* @param album [Album] The menu should correspond to
* @param playbackModel The [PlaybackViewModel] the menu should dispatch actions to.
+ * @param detailModel The [DetailViewModel] the menu should dispatch actions to.
*/
fun PopupMenu.setupAlbumActions(
context: Context,
album: Album,
- playbackModel: PlaybackViewModel
+ playbackModel: PlaybackViewModel,
+ detailModel: DetailViewModel
) {
setOnMenuItemClickListener {
when (it.itemId) {
- R.id.action_queue_add -> {
- playbackModel.addToUserQueue(album)
- context.getString(R.string.label_queue_added).createToast(context)
-
- true
- }
-
R.id.action_play -> {
playbackModel.playAlbum(album, false)
true
@@ -213,12 +208,57 @@ fun PopupMenu.setupAlbumActions(
true
}
+ R.id.action_queue_add -> {
+ playbackModel.addToUserQueue(album)
+ context.getString(R.string.label_queue_added).createToast(context)
+
+ true
+ }
+
+ R.id.action_go_artist -> {
+ detailModel.navToItem(album.artist)
+
+ true
+ }
+
else -> false
}
}
inflateAndShow(R.menu.menu_album_actions)
}
+/**
+ * Show actions for an [Album] in the artist detail fragment
+ * @param context [Context] required
+ * @param album [Album] The menu should correspond to
+ * @param playbackModel The [PlaybackViewModel] the menu should dispatch actions to.
+ */
+fun PopupMenu.setupArtistAlbumActions(context: Context, album: Album, playbackModel: PlaybackViewModel) {
+ setOnMenuItemClickListener {
+ when (it.itemId) {
+ R.id.action_play -> {
+ playbackModel.playAlbum(album, false)
+ true
+ }
+
+ R.id.action_shuffle -> {
+ playbackModel.playAlbum(album, true)
+ true
+ }
+
+ R.id.action_queue_add -> {
+ playbackModel.addToUserQueue(album)
+ context.getString(R.string.label_queue_added).createToast(context)
+
+ true
+ }
+
+ else -> false
+ }
+ }
+ inflateAndShow(R.menu.menu_artist_album_actions)
+}
+
/**
* Show actions for an [Artist].
* @param artist The [Artist] The menu should correspond to
diff --git a/app/src/main/res/menu/menu_album_actions.xml b/app/src/main/res/menu/menu_album_actions.xml
index e2403d10e..bdbed3882 100644
--- a/app/src/main/res/menu/menu_album_actions.xml
+++ b/app/src/main/res/menu/menu_album_actions.xml
@@ -3,17 +3,14 @@
xmlns:app="http://schemas.android.com/apk/res-auto">