feat: wire infrared remote screen and settings navigation

This commit is contained in:
2026-08-24 15:32:48 +08:00
parent b022ff0b0a
commit d27e595ad0
@@ -39,11 +39,13 @@ import com.flagship.abox.manager.R
import com.flagship.abox.manager.designsystem.ABoxButton
import com.flagship.abox.manager.designsystem.ABoxSurface
import com.flagship.abox.manager.designsystem.ABoxTheme
import com.flagship.abox.manager.infrared.remote.ui.InfraredRemoteRoute
import com.flagship.abox.manager.infrared.ui.InfraredControlRoute
private const val FOUNDATION_ROUTE = "foundation"
private const val PLACEHOLDER_ROUTE = "placeholder"
private const val INFRARED_ROUTE = "infrared/{profileId}"
private const val INFRARED_REMOTE_ROUTE = "infrared_remote/{profileId}"
private const val INFRARED_SETTINGS_ROUTE = "infrared_settings/{profileId}"
private const val TEMPORARY_ABOX_PROFILE_ID = "abox"
@Composable
@@ -63,7 +65,7 @@ fun ABoxManagerApp() {
onContinue = { navController.navigate(PLACEHOLDER_ROUTE) },
onOpenInfrared = {
sessionMessage = null
navController.navigate("infrared/$TEMPORARY_ABOX_PROFILE_ID")
navController.navigate("infrared_remote/$TEMPORARY_ABOX_PROFILE_ID")
},
)
}
@@ -74,7 +76,25 @@ fun ABoxManagerApp() {
)
}
composable(
route = INFRARED_ROUTE,
route = INFRARED_REMOTE_ROUTE,
arguments = listOf(
navArgument("profileId") { type = NavType.StringType },
),
) {
val sessionInvalidText = stringResource(R.string.infrared_session_invalid_message)
InfraredRemoteRoute(
onBack = { navController.popBackStack() },
onOpenSettings = {
navController.navigate("infrared_settings/$TEMPORARY_ABOX_PROFILE_ID")
},
onSessionInvalid = {
sessionMessage = sessionInvalidText
navController.popBackStack(FOUNDATION_ROUTE, inclusive = false)
},
)
}
composable(
route = INFRARED_SETTINGS_ROUTE,
arguments = listOf(
navArgument("profileId") { type = NavType.StringType },
),