Handle system back navigation
This commit is contained in:
@@ -3,6 +3,7 @@ package com.android.trisolarispms
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
|
import androidx.activity.compose.BackHandler
|
||||||
import androidx.activity.enableEdgeToEdge
|
import androidx.activity.enableEdgeToEdge
|
||||||
import androidx.compose.runtime.collectAsState
|
import androidx.compose.runtime.collectAsState
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
@@ -65,6 +66,35 @@ class MainActivity : ComponentActivity() {
|
|||||||
state.isSuperAdmin || (state.propertyRoles[propertyId]?.contains("ADMIN") == true)
|
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) {
|
when (currentRoute) {
|
||||||
AppRoute.Home -> HomeScreen(
|
AppRoute.Home -> HomeScreen(
|
||||||
userId = state.userId,
|
userId = state.userId,
|
||||||
|
|||||||
Reference in New Issue
Block a user