fix(scene): promote scene editor and execution screens to full-screen secondary destinations
This commit is contained in:
@@ -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.navigateToSocket
|
||||||
import com.flagship.abox.manager.ui.navigation.navigateToTemperatureHumidity
|
import com.flagship.abox.manager.ui.navigation.navigateToTemperatureHumidity
|
||||||
import com.flagship.abox.manager.ui.provider.ProviderSelectionRoute
|
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.AppSessionUiState
|
||||||
import com.flagship.abox.manager.ui.session.AppSessionViewModel
|
import com.flagship.abox.manager.ui.session.AppSessionViewModel
|
||||||
import com.flagship.abox.manager.ui.session.SessionActionsViewModel
|
import com.flagship.abox.manager.ui.session.SessionActionsViewModel
|
||||||
@@ -126,13 +129,24 @@ private fun AuthenticatedNavHost(
|
|||||||
)
|
)
|
||||||
},
|
},
|
||||||
scenesSlot = {
|
scenesSlot = {
|
||||||
SceneNavHost()
|
SceneListScreen(
|
||||||
|
onAddScene = { navController.navigate(SceneRoutes.EDITOR) },
|
||||||
|
onEditScene = { sceneId -> navController.navigate(SceneRoutes.editorFor(sceneId)) },
|
||||||
|
onExecuteScene = { sceneId -> navController.navigate(SceneRoutes.executionFor(sceneId)) },
|
||||||
|
)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
deviceDetailGraph(
|
deviceDetailGraph(
|
||||||
onBackClick = navController::popBackStack,
|
onBackClick = navController::popBackStack,
|
||||||
)
|
)
|
||||||
|
sceneEditorDestination(
|
||||||
|
onBack = { navController.popBackStack() },
|
||||||
|
onSaved = { navController.popBackStack() },
|
||||||
|
)
|
||||||
|
sceneExecutionDestination(
|
||||||
|
onBack = { navController.popBackStack() },
|
||||||
|
)
|
||||||
composable(
|
composable(
|
||||||
route = "infrared_hub/{profileId}",
|
route = "infrared_hub/{profileId}",
|
||||||
arguments = listOf(
|
arguments = listOf(
|
||||||
|
|||||||
@@ -58,11 +58,6 @@ fun SceneListScreen(
|
|||||||
val pendingDelete by viewModel.pendingDelete.collectAsStateWithLifecycle()
|
val pendingDelete by viewModel.pendingDelete.collectAsStateWithLifecycle()
|
||||||
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
topBar = {
|
|
||||||
TopAppBar(
|
|
||||||
title = { Text(stringResource(R.string.scene_list_title)) },
|
|
||||||
)
|
|
||||||
},
|
|
||||||
floatingActionButton = {
|
floatingActionButton = {
|
||||||
ExtendedFloatingActionButton(
|
ExtendedFloatingActionButton(
|
||||||
onClick = onAddScene,
|
onClick = onAddScene,
|
||||||
@@ -76,7 +71,7 @@ fun SceneListScreen(
|
|||||||
contentPadding = PaddingValues(
|
contentPadding = PaddingValues(
|
||||||
start = 16.dp,
|
start = 16.dp,
|
||||||
end = 16.dp,
|
end = 16.dp,
|
||||||
top = innerPadding.calculateTopPadding(),
|
top = 16.dp,
|
||||||
bottom = innerPadding.calculateBottomPadding() + 80.dp,
|
bottom = innerPadding.calculateBottomPadding() + 80.dp,
|
||||||
),
|
),
|
||||||
verticalArrangement = Arrangement.spacedBy(12.dp),
|
verticalArrangement = Arrangement.spacedBy(12.dp),
|
||||||
|
|||||||
Reference in New Issue
Block a user