From 1068e05c4a8dc03496cb832cf6136f4872b36cb1 Mon Sep 17 00:00:00 2001 From: androidlover5842 Date: Wed, 28 Jan 2026 18:36:58 +0530 Subject: [PATCH] Handle system back navigation --- .../com/android/trisolarispms/MainActivity.kt | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/app/src/main/java/com/android/trisolarispms/MainActivity.kt b/app/src/main/java/com/android/trisolarispms/MainActivity.kt index c907401..2494724 100644 --- a/app/src/main/java/com/android/trisolarispms/MainActivity.kt +++ b/app/src/main/java/com/android/trisolarispms/MainActivity.kt @@ -3,6 +3,7 @@ package com.android.trisolarispms import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent +import androidx.activity.compose.BackHandler import androidx.activity.enableEdgeToEdge import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue @@ -65,6 +66,35 @@ class MainActivity : ComponentActivity() { state.isSuperAdmin || (state.propertyRoles[propertyId]?.contains("ADMIN") == true) } + BackHandler(enabled = currentRoute != AppRoute.Home) { + when (currentRoute) { + AppRoute.Home -> Unit + AppRoute.AddProperty -> route.value = AppRoute.Home + is AppRoute.ActiveRoomStays -> route.value = AppRoute.Home + is AppRoute.Rooms -> route.value = AppRoute.ActiveRoomStays( + currentRoute.propertyId, + selectedPropertyName.value ?: "Property" + ) + is AppRoute.AddRoom -> route.value = AppRoute.Rooms(currentRoute.propertyId) + is AppRoute.EditRoom -> route.value = AppRoute.Rooms(currentRoute.propertyId) + is AppRoute.RoomTypes -> route.value = AppRoute.Rooms(currentRoute.propertyId) + is AppRoute.AddRoomType -> route.value = AppRoute.RoomTypes(currentRoute.propertyId) + is AppRoute.EditRoomType -> route.value = AppRoute.RoomTypes(currentRoute.propertyId) + AppRoute.Amenities -> route.value = amenitiesReturnRoute.value + AppRoute.AddAmenity -> route.value = AppRoute.Amenities + is AppRoute.EditAmenity -> route.value = AppRoute.Amenities + AppRoute.ImageTags -> route.value = AppRoute.Home + AppRoute.AddImageTag -> route.value = AppRoute.ImageTags + is AppRoute.EditImageTag -> route.value = AppRoute.ImageTags + is AppRoute.RoomImages -> route.value = AppRoute.EditRoom( + currentRoute.propertyId, + currentRoute.roomId + ) + is AppRoute.IssueTemporaryCard -> route.value = AppRoute.Rooms(currentRoute.propertyId) + is AppRoute.CardInfo -> route.value = AppRoute.Rooms(currentRoute.propertyId) + } + } + when (currentRoute) { AppRoute.Home -> HomeScreen( userId = state.userId,