diff --git a/app/src/main/java/com/homebox/lens/navigation/NavGraph.kt b/app/src/main/java/com/homebox/lens/navigation/NavGraph.kt index 33f18dd..8d05b1d 100644 --- a/app/src/main/java/com/homebox/lens/navigation/NavGraph.kt +++ b/app/src/main/java/com/homebox/lens/navigation/NavGraph.kt @@ -25,11 +25,14 @@ import com.homebox.lens.ui.screen.locationedit.LocationEditScreen import com.homebox.lens.ui.screen.locationslist.LocationsListScreen import com.homebox.lens.ui.screen.search.SearchScreen import com.homebox.lens.ui.screen.setup.SetupScreen +import com.homebox.lens.ui.screen.settings.SettingsScreen +import com.homebox.lens.ui.screen.splash.SplashScreen // [END_IMPORTS] // [ENTITY: Function('NavGraph')] // [RELATION: Function('NavGraph')] -> [DEPENDS_ON] -> [Framework('NavHostController')] // [RELATION: Function('NavGraph')] -> [CREATES_INSTANCE_OF] -> [Class('NavigationActions')] +// [RELATION: Function('NavGraph')] -> [USES] -> [Screen('SplashScreen')] /** * @summary Определяет граф навигации для всего приложения с использованием Jetpack Compose Navigation. * @param navController Контроллер навигации. @@ -47,11 +50,13 @@ fun NavGraph( val navigationActions = remember(navController) { NavigationActions(navController) } - NavHost( navController = navController, - startDestination = Screen.Setup.route + startDestination = Screen.Splash.route ) { + composable(route = Screen.Splash.route) { + SplashScreen(navController = navController) + } composable(route = Screen.Setup.route) { SetupScreen(onSetupComplete = { navController.navigate(Screen.Dashboard.route) { @@ -137,6 +142,12 @@ fun NavGraph( navigationActions = navigationActions ) } + composable(route = Screen.Settings.route) { + SettingsScreen( + currentRoute = currentRoute, + navigationActions = navigationActions + ) + } } } // [END_ENTITY: Function('NavGraph')] diff --git a/app/src/main/java/com/homebox/lens/navigation/Screen.kt b/app/src/main/java/com/homebox/lens/navigation/Screen.kt index f866b6b..eb34239 100644 --- a/app/src/main/java/com/homebox/lens/navigation/Screen.kt +++ b/app/src/main/java/com/homebox/lens/navigation/Screen.kt @@ -10,6 +10,10 @@ package com.homebox.lens.navigation * @param route Строковый идентификатор маршрута. */ sealed class Screen(val route: String) { + // [ENTITY: Object('Splash')] + data object Splash : Screen("splash_screen") + // [END_ENTITY: Object('Splash')] + // [ENTITY: Object('Setup')] data object Setup : Screen("setup_screen") // [END_ENTITY: Object('Setup')] @@ -118,6 +122,10 @@ sealed class Screen(val route: String) { // [ENTITY: Object('Search')] data object Search : Screen("search_screen") // [END_ENTITY: Object('Search')] + + // [ENTITY: Object('Settings')] + data object Settings : Screen("settings_screen") + // [END_ENTITY: Object('Settings')] } // [END_ENTITY: SealedClass('Screen')] // [END_FILE_Screen.kt] diff --git a/app/src/main/java/com/homebox/lens/ui/screen/dashboard/DashboardScreen.kt b/app/src/main/java/com/homebox/lens/ui/screen/dashboard/DashboardScreen.kt index 34e3d56..e2775c8 100644 --- a/app/src/main/java/com/homebox/lens/ui/screen/dashboard/DashboardScreen.kt +++ b/app/src/main/java/com/homebox/lens/ui/screen/dashboard/DashboardScreen.kt @@ -310,10 +310,10 @@ fun DashboardContentSuccessPreview() { LocationOutCount(id="5",name="Basement", color = "#00FFFF", isArchived = false, itemCount = 3, createdAt = "", updatedAt = "") ), labels = listOf( - LabelOut(id="1", name="electronics", color = "#FF0000", isArchived = false, createdAt = "", updatedAt = ""), - LabelOut(id="2", name="important", color = "#00FF00", isArchived = false, createdAt = "", updatedAt = ""), - LabelOut(id="3", name="seasonal", color = "#0000FF", isArchived = false, createdAt = "", updatedAt = ""), - LabelOut(id="4", name="hobby", color = "#FFFF00", isArchived = false, createdAt = "", updatedAt = "") + LabelOut(id="1", name="electronics", description = null, color = "#FF0000", isArchived = false, createdAt = "", updatedAt = ""), + LabelOut(id="2", name="important", description = null, color = "#00FF00", isArchived = false, createdAt = "", updatedAt = ""), + LabelOut(id="3", name="seasonal", description = null, color = "#0000FF", isArchived = false, createdAt = "", updatedAt = ""), + LabelOut(id="4", name="hobby", description = null, color = "#FFFF00", isArchived = false, createdAt = "", updatedAt = "") ), recentlyAddedItems = emptyList() ) diff --git a/app/src/main/java/com/homebox/lens/ui/screen/itemedit/ItemEditViewModel.kt b/app/src/main/java/com/homebox/lens/ui/screen/itemedit/ItemEditViewModel.kt index e49a213..3652b65 100644 --- a/app/src/main/java/com/homebox/lens/ui/screen/itemedit/ItemEditViewModel.kt +++ b/app/src/main/java/com/homebox/lens/ui/screen/itemedit/ItemEditViewModel.kt @@ -7,8 +7,14 @@ package com.homebox.lens.ui.screen.itemedit // [IMPORTS] import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.homebox.lens.domain.model.* +import com.homebox.lens.domain.model.Item +import com.homebox.lens.domain.model.ItemCreate +import com.homebox.lens.domain.model.ItemUpdate +import com.homebox.lens.domain.model.Location +import com.homebox.lens.domain.model.Label import com.homebox.lens.domain.usecase.CreateItemUseCase +import com.homebox.lens.domain.usecase.GetAllLabelsUseCase +import com.homebox.lens.domain.usecase.GetAllLocationsUseCase import com.homebox.lens.domain.usecase.GetItemDetailsUseCase import com.homebox.lens.domain.usecase.UpdateItemUseCase import com.homebox.lens.ui.mapper.ItemMapper @@ -30,11 +36,15 @@ import javax.inject.Inject * @param item The item being edited, or null if creating a new item. * @param isLoading Whether data is currently being loaded or saved. * @param error An error message if an operation failed. + * @param allLocations A list of all available locations. + * @param allLabels A list of all available labels. */ data class ItemEditUiState( val item: Item? = null, val isLoading: Boolean = false, - val error: String? = null + val error: String? = null, + val allLocations: List = emptyList(), + val allLabels: List