Handle system back navigation
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user