From 29f0b78fddee87900d38858e51430ecbfc6b4f77 Mon Sep 17 00:00:00 2001 From: davotoula Date: Fri, 20 Mar 2026 17:02:46 +0100 Subject: [PATCH] feat: convert Messages mark-as-read menu to M3 dialog Co-Authored-By: Claude Sonnet 4.6 --- .../chats/rooms/feed/ChatroomListTabs.kt | 59 +++++++++++-------- 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/feed/ChatroomListTabs.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/feed/ChatroomListTabs.kt index 5bf51f508..8b5961be5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/feed/ChatroomListTabs.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/feed/ChatroomListTabs.kt @@ -28,8 +28,9 @@ import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.PagerState import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.MoreVert -import androidx.compose.material3.DropdownMenu -import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material.icons.outlined.DoneAll +import androidx.compose.material.icons.outlined.Groups +import androidx.compose.material.icons.outlined.MoveToInbox import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -48,6 +49,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.ui.feeds.FeedContentState +import com.vitorpamplona.amethyst.ui.components.M3ActionDialog +import com.vitorpamplona.amethyst.ui.components.M3ActionRow +import com.vitorpamplona.amethyst.ui.components.M3ActionSection import com.vitorpamplona.amethyst.ui.components.zonedDrawerSwipe import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -103,12 +107,13 @@ fun MessagesTabHeader( contentDescription = stringRes(id = R.string.more_options), tint = MaterialTheme.colorScheme.placeholderText, ) + } - MessagesTabMenu( - moreActionsExpanded, - { moreActionsExpanded = false }, - onMarkKnownAsRead, - onMarkNewAsRead, + if (moreActionsExpanded) { + MessagesMarkAsReadDialog( + onDismiss = { moreActionsExpanded = false }, + onMarkKnownAsRead = onMarkKnownAsRead, + onMarkNewAsRead = onMarkNewAsRead, ) } } @@ -142,34 +147,38 @@ fun MessagesPager( } @Composable -fun MessagesTabMenu( - expanded: Boolean, +fun MessagesMarkAsReadDialog( onDismiss: () -> Unit, onMarkKnownAsRead: () -> Unit, onMarkNewAsRead: () -> Unit, ) { - DropdownMenu(expanded = expanded, onDismissRequest = onDismiss) { - DropdownMenuItem( - text = { Text(stringRes(R.string.mark_all_known_as_read)) }, - onClick = { + M3ActionDialog( + title = stringRes(R.string.mark_as_read_dialog_title), + onDismiss = onDismiss, + ) { + M3ActionSection { + M3ActionRow( + icon = Icons.Outlined.Groups, + text = stringRes(R.string.mark_all_known_as_read), + ) { onMarkKnownAsRead() onDismiss() - }, - ) - DropdownMenuItem( - text = { Text(stringRes(R.string.mark_all_new_as_read)) }, - onClick = { + } + M3ActionRow( + icon = Icons.Outlined.MoveToInbox, + text = stringRes(R.string.mark_all_new_as_read), + ) { onMarkNewAsRead() onDismiss() - }, - ) - DropdownMenuItem( - text = { Text(stringRes(R.string.mark_all_as_read)) }, - onClick = { + } + M3ActionRow( + icon = Icons.Outlined.DoneAll, + text = stringRes(R.string.mark_all_as_read), + ) { onMarkKnownAsRead() onMarkNewAsRead() onDismiss() - }, - ) + } + } } }