From 6f1e1612e11e0c4bfd1bc1232f878d04585d9d77 Mon Sep 17 00:00:00 2001 From: austinried <4966622+austinried@users.noreply.github.com> Date: Wed, 21 Oct 2026 00:30:41 +0000 Subject: [PATCH] ui: open the artist chooser immediately from the menu --- .../subtracks/ui/components/ItemContextMenu.kt | 17 +++++++---------- .../ui/components/ItemContextMenuArtistTest.kt | 4 ++-- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/app/src/main/kotlin/com/subtracks/ui/components/ItemContextMenu.kt b/app/src/main/kotlin/com/subtracks/ui/components/ItemContextMenu.kt index 925227ff..797bc545 100644 --- a/app/src/main/kotlin/com/subtracks/ui/components/ItemContextMenu.kt +++ b/app/src/main/kotlin/com/subtracks/ui/components/ItemContextMenu.kt @@ -213,12 +213,9 @@ fun ItemContextMenu( } } - fun dismissThen(after: () -> Unit) { - scope.launch { - sheetState.hide() - onDismiss() - after() - } + fun replaceWith(after: () -> Unit) { + onDismiss() + after() } val queueRef = target.queueRef() @@ -267,7 +264,7 @@ fun ItemContextMenu( } } } - ArtistItems(target.song.artistRefs, actions, onChooseArtists, ::dismiss, ::dismissThen) + ArtistItems(target.song.artistRefs, actions, onChooseArtists, ::dismiss, ::replaceWith) onInfo?.let { info -> MenuItem(Icons.Rounded.Info, stringResource(R.string.info)) { dismiss { info(target) } } } @@ -281,7 +278,7 @@ fun ItemContextMenu( onSet = { starring -> actions.setStar(StarType.Album, target.album.id, starring) }, onDismiss = { dismiss() }, ) - ArtistItems(target.album.artistRefs, actions, onChooseArtists, ::dismiss, ::dismissThen) + ArtistItems(target.album.artistRefs, actions, onChooseArtists, ::dismiss, ::replaceWith) onInfo?.let { info -> MenuItem(Icons.Rounded.Info, stringResource(R.string.info)) { dismiss { info(target) } } } @@ -347,7 +344,7 @@ private fun ArtistItems( actions: ItemActions, onChooseArtists: ((List) -> Unit)?, dismiss: (() -> Unit) -> Unit, - dismissThen: (() -> Unit) -> Unit, + replaceWith: (() -> Unit) -> Unit, ) { val view = actions.viewArtist ?: return val distinct = artists.distinctBy { it.id } @@ -383,7 +380,7 @@ private fun ArtistItems( distinct.joinToString(" \u00B7 ") { it.name.ifBlank { fallback } }, trailing = { Icon(Icons.AutoMirrored.Rounded.KeyboardArrowRight, contentDescription = null) }, ) { - dismissThen { onChooseArtists(distinct) } + replaceWith { onChooseArtists(distinct) } } } } diff --git a/app/src/test/kotlin/com/subtracks/ui/components/ItemContextMenuArtistTest.kt b/app/src/test/kotlin/com/subtracks/ui/components/ItemContextMenuArtistTest.kt index 700ff256..44598494 100644 --- a/app/src/test/kotlin/com/subtracks/ui/components/ItemContextMenuArtistTest.kt +++ b/app/src/test/kotlin/com/subtracks/ui/components/ItemContextMenuArtistTest.kt @@ -82,9 +82,9 @@ class ItemContextMenuArtistTest { composeRule.mainClock.autoAdvance = false entry.performClick() - composeRule.mainClock.advanceTimeBy(1_000) assertEquals(listOf("ar1", "ar2"), opened?.map { it.id }) + composeRule.mainClock.advanceTimeBy(1_000) } @Test @@ -132,8 +132,8 @@ class ItemContextMenuArtistTest { composeRule.mainClock.autoAdvance = false entry.performClick() - composeRule.mainClock.advanceTimeBy(1_000) assertEquals(20, opened?.size) + composeRule.mainClock.advanceTimeBy(1_000) } }