Handle system back navigation

This commit is contained in:
androidlover5842
2026-01-28 18:36:58 +05:30
parent 65a41863e2
commit 1068e05c4a

View File

@@ -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,