feat: convert Messages mark-as-read menu to M3 dialog

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
davotoula
2026-03-20 17:02:46 +01:00
parent 19ff300f65
commit 29f0b78fdd
@@ -28,8 +28,9 @@ import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.PagerState import androidx.compose.foundation.pager.PagerState
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.MoreVert import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.material3.DropdownMenu import androidx.compose.material.icons.outlined.DoneAll
import androidx.compose.material3.DropdownMenuItem import androidx.compose.material.icons.outlined.Groups
import androidx.compose.material.icons.outlined.MoveToInbox
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
@@ -48,6 +49,9 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.R
import com.vitorpamplona.amethyst.commons.ui.feeds.FeedContentState 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.components.zonedDrawerSwipe
import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.navs.INav
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
@@ -103,12 +107,13 @@ fun MessagesTabHeader(
contentDescription = stringRes(id = R.string.more_options), contentDescription = stringRes(id = R.string.more_options),
tint = MaterialTheme.colorScheme.placeholderText, tint = MaterialTheme.colorScheme.placeholderText,
) )
}
MessagesTabMenu( if (moreActionsExpanded) {
moreActionsExpanded, MessagesMarkAsReadDialog(
{ moreActionsExpanded = false }, onDismiss = { moreActionsExpanded = false },
onMarkKnownAsRead, onMarkKnownAsRead = onMarkKnownAsRead,
onMarkNewAsRead, onMarkNewAsRead = onMarkNewAsRead,
) )
} }
} }
@@ -142,34 +147,38 @@ fun MessagesPager(
} }
@Composable @Composable
fun MessagesTabMenu( fun MessagesMarkAsReadDialog(
expanded: Boolean,
onDismiss: () -> Unit, onDismiss: () -> Unit,
onMarkKnownAsRead: () -> Unit, onMarkKnownAsRead: () -> Unit,
onMarkNewAsRead: () -> Unit, onMarkNewAsRead: () -> Unit,
) { ) {
DropdownMenu(expanded = expanded, onDismissRequest = onDismiss) { M3ActionDialog(
DropdownMenuItem( title = stringRes(R.string.mark_as_read_dialog_title),
text = { Text(stringRes(R.string.mark_all_known_as_read)) }, onDismiss = onDismiss,
onClick = { ) {
M3ActionSection {
M3ActionRow(
icon = Icons.Outlined.Groups,
text = stringRes(R.string.mark_all_known_as_read),
) {
onMarkKnownAsRead() onMarkKnownAsRead()
onDismiss() onDismiss()
}, }
) M3ActionRow(
DropdownMenuItem( icon = Icons.Outlined.MoveToInbox,
text = { Text(stringRes(R.string.mark_all_new_as_read)) }, text = stringRes(R.string.mark_all_new_as_read),
onClick = { ) {
onMarkNewAsRead() onMarkNewAsRead()
onDismiss() onDismiss()
}, }
) M3ActionRow(
DropdownMenuItem( icon = Icons.Outlined.DoneAll,
text = { Text(stringRes(R.string.mark_all_as_read)) }, text = stringRes(R.string.mark_all_as_read),
onClick = { ) {
onMarkKnownAsRead() onMarkKnownAsRead()
onMarkNewAsRead() onMarkNewAsRead()
onDismiss() onDismiss()
}, }
) }
} }
} }