fix(scene): promote scene editor and execution screens to full-screen secondary destinations

This commit is contained in:
2026-08-25 15:54:22 +08:00
parent a896b8eecf
commit f70f034119
2 changed files with 17 additions and 8 deletions
@@ -32,7 +32,10 @@ import com.flagship.abox.manager.ui.navigation.deviceDetailGraph
import com.flagship.abox.manager.ui.navigation.navigateToSocket
import com.flagship.abox.manager.ui.navigation.navigateToTemperatureHumidity
import com.flagship.abox.manager.ui.provider.ProviderSelectionRoute
import com.flagship.abox.manager.ui.scene.SceneNavHost
import com.flagship.abox.manager.ui.scene.SceneListScreen
import com.flagship.abox.manager.ui.scene.SceneRoutes
import com.flagship.abox.manager.ui.scene.sceneEditorDestination
import com.flagship.abox.manager.ui.scene.sceneExecutionDestination
import com.flagship.abox.manager.ui.session.AppSessionUiState
import com.flagship.abox.manager.ui.session.AppSessionViewModel
import com.flagship.abox.manager.ui.session.SessionActionsViewModel
@@ -126,13 +129,24 @@ private fun AuthenticatedNavHost(
)
},
scenesSlot = {
SceneNavHost()
SceneListScreen(
onAddScene = { navController.navigate(SceneRoutes.EDITOR) },
onEditScene = { sceneId -> navController.navigate(SceneRoutes.editorFor(sceneId)) },
onExecuteScene = { sceneId -> navController.navigate(SceneRoutes.executionFor(sceneId)) },
)
},
)
}
deviceDetailGraph(
onBackClick = navController::popBackStack,
)
sceneEditorDestination(
onBack = { navController.popBackStack() },
onSaved = { navController.popBackStack() },
)
sceneExecutionDestination(
onBack = { navController.popBackStack() },
)
composable(
route = "infrared_hub/{profileId}",
arguments = listOf(
@@ -58,11 +58,6 @@ fun SceneListScreen(
val pendingDelete by viewModel.pendingDelete.collectAsStateWithLifecycle()
Scaffold(
topBar = {
TopAppBar(
title = { Text(stringResource(R.string.scene_list_title)) },
)
},
floatingActionButton = {
ExtendedFloatingActionButton(
onClick = onAddScene,
@@ -76,7 +71,7 @@ fun SceneListScreen(
contentPadding = PaddingValues(
start = 16.dp,
end = 16.dp,
top = innerPadding.calculateTopPadding(),
top = 16.dp,
bottom = innerPadding.calculateBottomPadding() + 80.dp,
),
verticalArrangement = Arrangement.spacedBy(12.dp),