feat(message): add overflow menu to message screen (#2540)

Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
This commit is contained in:
James Rich 2025-07-27 17:09:41 -05:00 committed by GitHub
parent bbaac9e143
commit 26530cbe18
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 282 additions and 262 deletions

View file

@ -31,42 +31,30 @@ import com.geeksville.mesh.ui.sharing.ShareScreen
import kotlinx.serialization.Serializable
sealed class ContactsRoutes {
@Serializable
data object Contacts : Route
@Serializable data object Contacts : Route
@Serializable
data class Messages(val contactKey: String, val message: String = "") : Route
@Serializable data class Messages(val contactKey: String, val message: String = "") : Route
@Serializable
data class Share(val message: String) : Route
@Serializable data class Share(val message: String) : Route
@Serializable
data object QuickChat : Route
@Serializable data object QuickChat : Route
@Serializable
data object ContactsGraph : Graph
@Serializable data object ContactsGraph : Graph
}
fun NavGraphBuilder.contactsGraph(
navController: NavHostController,
uiViewModel: UIViewModel,
) {
navigation<ContactsRoutes.ContactsGraph>(
startDestination = ContactsRoutes.Contacts,
) {
fun NavGraphBuilder.contactsGraph(navController: NavHostController, uiViewModel: UIViewModel) {
navigation<ContactsRoutes.ContactsGraph>(startDestination = ContactsRoutes.Contacts) {
composable<ContactsRoutes.Contacts> {
ContactsScreen(
uiViewModel,
onNavigateToMessages = { navController.navigate(ContactsRoutes.Messages(it)) }
)
ContactsScreen(uiViewModel, onNavigateToMessages = { navController.navigate(ContactsRoutes.Messages(it)) })
}
composable<ContactsRoutes.Messages>(
deepLinks = listOf(
deepLinks =
listOf(
navDeepLink {
uriPattern = "$DEEP_LINK_BASE_URI/messages/{contactKey}?message={message}"
action = "android.intent.action.VIEW"
},
)
),
) { backStackEntry ->
val args = backStackEntry.toRoute<ContactsRoutes.Messages>()
MessageScreen(
@ -75,17 +63,19 @@ fun NavGraphBuilder.contactsGraph(
viewModel = uiViewModel,
navigateToMessages = { navController.navigate(ContactsRoutes.Messages(it)) },
navigateToNodeDetails = { navController.navigate(NodesRoutes.NodeDetailGraph(it)) },
navigateToQuickChatOptions = { navController.navigate(ContactsRoutes.QuickChat) },
onNavigateBack = navController::navigateUp,
)
}
}
composable<ContactsRoutes.Share>(
deepLinks = listOf(
deepLinks =
listOf(
navDeepLink {
uriPattern = "$DEEP_LINK_BASE_URI/share?message={message}"
action = "android.intent.action.VIEW"
}
)
},
),
) { backStackEntry ->
val message = backStackEntry.toRoute<ContactsRoutes.Share>().message
ShareScreen(uiViewModel) {
@ -94,7 +84,5 @@ fun NavGraphBuilder.contactsGraph(
}
}
}
composable<ContactsRoutes.QuickChat> {
QuickChatScreen()
}
composable<ContactsRoutes.QuickChat> { QuickChatScreen() }
}