From d27e595ad076cf4bd97ef467609731416355db6c Mon Sep 17 00:00:00 2001 From: mxhsnd <2049295946@qq.com> Date: Mon, 24 Aug 2026 15:32:48 +0800 Subject: [PATCH] feat: wire infrared remote screen and settings navigation --- .../abox/manager/ui/ABoxManagerApp.kt | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/android/app/src/main/kotlin/com/flagship/abox/manager/ui/ABoxManagerApp.kt b/android/app/src/main/kotlin/com/flagship/abox/manager/ui/ABoxManagerApp.kt index 5fc8d4e..cc30914 100644 --- a/android/app/src/main/kotlin/com/flagship/abox/manager/ui/ABoxManagerApp.kt +++ b/android/app/src/main/kotlin/com/flagship/abox/manager/ui/ABoxManagerApp.kt @@ -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 }, ),