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:
+34
-25
@@ -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()
|
||||||
},
|
}
|
||||||
)
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user