Refactor: clean up sharedTransition from more places (#1963)

This commit is contained in:
James Rich 2025-05-28 09:47:28 -05:00 committed by GitHub
parent 950dacddea
commit 808992e3b3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 7 additions and 27 deletions

View file

@ -254,8 +254,6 @@ fun NavGraph(
model = uIViewModel,
navigateToMessages = { navController.navigate(Route.Messages(it)) },
navigateToNodeDetails = { navController.navigate(Route.NodeDetail(it)) },
sharedTransitionScope = this@SharedTransitionLayout,
this@composable,
)
}
composable<Route.Map> {
@ -303,14 +301,16 @@ fun NavGraph(
navigateToMessages = { navController.navigate(Route.Messages(it)) },
navigateToNodeDetails = { navController.navigate(Route.NodeDetail(it)) },
onNavigateBack = navController::navigateUp,
sharedTransitionScope = this@SharedTransitionLayout,
animatedContentScope = this@composable,
)
}
composable<Route.QuickChat> {
QuickChatScreen()
}
nodeDetailGraph(navController, uIViewModel, sharedTransitionScope = this@SharedTransitionLayout)
nodeDetailGraph(
navController,
uIViewModel,
sharedTransitionScope = this@SharedTransitionLayout
)
radioConfigGraph(navController, uIViewModel)
composable<Route.Share>(
deepLinks = listOf(

View file

@ -17,10 +17,7 @@
package com.geeksville.mesh.ui
import androidx.compose.animation.AnimatedContentScope
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.ExperimentalSharedTransitionApi
import androidx.compose.animation.SharedTransitionScope
import androidx.compose.animation.animateContentSize
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.foundation.ExperimentalFoundationApi
@ -51,15 +48,13 @@ import com.geeksville.mesh.ui.components.NodeFilterTextField
import com.geeksville.mesh.ui.components.NodeMenuAction
import com.geeksville.mesh.ui.components.rememberTimeTickWithLifecycle
@OptIn(ExperimentalFoundationApi::class, ExperimentalSharedTransitionApi::class)
@OptIn(ExperimentalFoundationApi::class)
@Suppress("LongMethod", "CyclomaticComplexMethod")
@Composable
fun NodeScreen(
model: UIViewModel = hiltViewModel(),
navigateToMessages: (String) -> Unit,
navigateToNodeDetails: (Int) -> Unit,
sharedTransitionScope: SharedTransitionScope,
animatedContentScope: AnimatedContentScope,
) {
val state by model.nodesUiState.collectAsStateWithLifecycle()
@ -139,8 +134,6 @@ fun NodeScreen(
expanded = state.showDetails,
currentTimeMillis = currentTimeMillis,
isConnected = connectionState.isConnected(),
sharedTransitionScope = sharedTransitionScope,
animatedContentScope = animatedContentScope
)
}
}

View file

@ -18,9 +18,6 @@
package com.geeksville.mesh.ui.message
import android.content.ClipData
import androidx.compose.animation.AnimatedContentScope
import androidx.compose.animation.ExperimentalSharedTransitionApi
import androidx.compose.animation.SharedTransitionScope
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
@ -89,7 +86,6 @@ import kotlinx.coroutines.launch
private const val MESSAGE_CHARACTER_LIMIT = 200
@OptIn(ExperimentalSharedTransitionApi::class)
@Suppress("LongMethod", "CyclomaticComplexMethod")
@Composable
internal fun MessageScreen(
@ -99,8 +95,6 @@ internal fun MessageScreen(
navigateToMessages: (String) -> Unit,
navigateToNodeDetails: (Int) -> Unit,
onNavigateBack: () -> Unit,
sharedTransitionScope: SharedTransitionScope,
animatedContentScope: AnimatedContentScope,
) {
val coroutineScope = rememberCoroutineScope()
val clipboardManager = LocalClipboard.current
@ -236,13 +230,12 @@ internal fun MessageScreen(
if (hasPKC) DataPacket.PKC_CHANNEL_INDEX else action.node.channel
navigateToMessages("$channel${action.node.user.id}")
}
is NodeMenuAction.MoreDetails -> navigateToNodeDetails(action.node.num)
is NodeMenuAction.Share -> sharedContact = action.node
else -> viewModel.handleNodeMenuAction(action)
}
},
sharedTransitionScope = sharedTransitionScope,
animatedContentScope = animatedContentScope,
)
}
}

View file

@ -18,9 +18,7 @@
package com.geeksville.mesh.ui.message.components
import androidx.annotation.StringRes
import androidx.compose.animation.AnimatedContentScope
import androidx.compose.animation.ExperimentalSharedTransitionApi
import androidx.compose.animation.SharedTransitionScope
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
@ -120,8 +118,6 @@ internal fun MessageList(
onNodeMenuAction: (NodeMenuAction) -> Unit,
viewModel: UIViewModel,
contactKey: String,
sharedTransitionScope: SharedTransitionScope,
animatedContentScope: AnimatedContentScope,
) {
val haptics = LocalHapticFeedback.current
val inSelectionMode by remember { derivedStateOf { selectedIds.value.isNotEmpty() } }
@ -194,8 +190,6 @@ internal fun MessageList(
onAction = onNodeMenuAction,
onStatusClick = { showStatusDialog = msg },
onSendReaction = { onSendReaction(it, msg.packetId) },
sharedTransitionScope = sharedTransitionScope,
animatedContentScope = animatedContentScope,
isConnected = isConnected
)
}