feat: Scaffold UI screens and update project specification
- Create stub files for all UI screens defined in the tech spec (InventoryList, ItemDetails, ItemEdit, LabelsList, LocationsList, Search). - Add corresponding ViewModels for each new screen. - Update `tech_spec/project_structure.txt` to include the new files and mark them as 'stub'. - Update `tech_spec/tech_spec.txt` to reflect the current implementation status, changing feature statuses to 'in_progress'. - Add the undocumented `SearchScreen` to the project specification. - Add `*.hprof` files to `.gitignore` to exclude memory dumps from version control.
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
// [PACKAGE] com.homebox.lens.ui.screen.inventorylist
|
||||
// [FILE] InventoryListScreen.kt
|
||||
|
||||
package com.homebox.lens.ui.screen.inventorylist
|
||||
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
|
||||
// [ENTRYPOINT]
|
||||
@Composable
|
||||
fun InventoryListScreen() {
|
||||
// [ACTION]
|
||||
Text(text = "Inventory List Screen")
|
||||
}
|
||||
|
||||
@Preview(showBackground = true)
|
||||
@Composable
|
||||
fun InventoryListScreenPreview() {
|
||||
InventoryListScreen()
|
||||
}
|
||||
// [END_FILE_InventoryListScreen.kt]
|
||||
@@ -0,0 +1,16 @@
|
||||
// [PACKAGE] com.homebox.lens.ui.screen.inventorylist
|
||||
// [FILE] InventoryListViewModel.kt
|
||||
|
||||
package com.homebox.lens.ui.screen.inventorylist
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
|
||||
// [VIEWMODEL]
|
||||
@HiltViewModel
|
||||
class InventoryListViewModel @Inject constructor() : ViewModel() {
|
||||
// [STATE]
|
||||
// TODO: Implement UI state
|
||||
}
|
||||
// [END_FILE_InventoryListViewModel.kt]
|
||||
@@ -0,0 +1,22 @@
|
||||
// [PACKAGE] com.homebox.lens.ui.screen.itemdetails
|
||||
// [FILE] ItemDetailsScreen.kt
|
||||
|
||||
package com.homebox.lens.ui.screen.itemdetails
|
||||
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
|
||||
// [ENTRYPOINT]
|
||||
@Composable
|
||||
fun ItemDetailsScreen() {
|
||||
// [ACTION]
|
||||
Text(text = "Item Details Screen")
|
||||
}
|
||||
|
||||
@Preview(showBackground = true)
|
||||
@Composable
|
||||
fun ItemDetailsScreenPreview() {
|
||||
ItemDetailsScreen()
|
||||
}
|
||||
// [END_FILE_ItemDetailsScreen.kt]
|
||||
@@ -0,0 +1,16 @@
|
||||
// [PACKAGE] com.homebox.lens.ui.screen.itemdetails
|
||||
// [FILE] ItemDetailsViewModel.kt
|
||||
|
||||
package com.homebox.lens.ui.screen.itemdetails
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
|
||||
// [VIEWMODEL]
|
||||
@HiltViewModel
|
||||
class ItemDetailsViewModel @Inject constructor() : ViewModel() {
|
||||
// [STATE]
|
||||
// TODO: Implement UI state
|
||||
}
|
||||
// [END_FILE_ItemDetailsViewModel.kt]
|
||||
@@ -0,0 +1,22 @@
|
||||
// [PACKAGE] com.homebox.lens.ui.screen.itemedit
|
||||
// [FILE] ItemEditScreen.kt
|
||||
|
||||
package com.homebox.lens.ui.screen.itemedit
|
||||
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
|
||||
// [ENTRYPOINT]
|
||||
@Composable
|
||||
fun ItemEditScreen() {
|
||||
// [ACTION]
|
||||
Text(text = "Item Edit Screen")
|
||||
}
|
||||
|
||||
@Preview(showBackground = true)
|
||||
@Composable
|
||||
fun ItemEditScreenPreview() {
|
||||
ItemEditScreen()
|
||||
}
|
||||
// [END_FILE_ItemEditScreen.kt]
|
||||
@@ -0,0 +1,16 @@
|
||||
// [PACKAGE] com.homebox.lens.ui.screen.itemedit
|
||||
// [FILE] ItemEditViewModel.kt
|
||||
|
||||
package com.homebox.lens.ui.screen.itemedit
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
|
||||
// [VIEWMODEL]
|
||||
@HiltViewModel
|
||||
class ItemEditViewModel @Inject constructor() : ViewModel() {
|
||||
// [STATE]
|
||||
// TODO: Implement UI state
|
||||
}
|
||||
// [END_FILE_ItemEditViewModel.kt]
|
||||
@@ -0,0 +1,22 @@
|
||||
// [PACKAGE] com.homebox.lens.ui.screen.labelslist
|
||||
// [FILE] LabelsListScreen.kt
|
||||
|
||||
package com.homebox.lens.ui.screen.labelslist
|
||||
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
|
||||
// [ENTRYPOINT]
|
||||
@Composable
|
||||
fun LabelsListScreen() {
|
||||
// [ACTION]
|
||||
Text(text = "Labels List Screen")
|
||||
}
|
||||
|
||||
@Preview(showBackground = true)
|
||||
@Composable
|
||||
fun LabelsListScreenPreview() {
|
||||
LabelsListScreen()
|
||||
}
|
||||
// [END_FILE_LabelsListScreen.kt]
|
||||
@@ -0,0 +1,16 @@
|
||||
// [PACKAGE] com.homebox.lens.ui.screen.labelslist
|
||||
// [FILE] LabelsListViewModel.kt
|
||||
|
||||
package com.homebox.lens.ui.screen.labelslist
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
|
||||
// [VIEWMODEL]
|
||||
@HiltViewModel
|
||||
class LabelsListViewModel @Inject constructor() : ViewModel() {
|
||||
// [STATE]
|
||||
// TODO: Implement UI state
|
||||
}
|
||||
// [END_FILE_LabelsListViewModel.kt]
|
||||
@@ -0,0 +1,22 @@
|
||||
// [PACKAGE] com.homebox.lens.ui.screen.locationslist
|
||||
// [FILE] LocationsListScreen.kt
|
||||
|
||||
package com.homebox.lens.ui.screen.locationslist
|
||||
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
|
||||
// [ENTRYPOINT]
|
||||
@Composable
|
||||
fun LocationsListScreen() {
|
||||
// [ACTION]
|
||||
Text(text = "Locations List Screen")
|
||||
}
|
||||
|
||||
@Preview(showBackground = true)
|
||||
@Composable
|
||||
fun LocationsListScreenPreview() {
|
||||
LocationsListScreen()
|
||||
}
|
||||
// [END_FILE_LocationsListScreen.kt]
|
||||
@@ -0,0 +1,16 @@
|
||||
// [PACKAGE] com.homebox.lens.ui.screen.locationslist
|
||||
// [FILE] LocationsListViewModel.kt
|
||||
|
||||
package com.homebox.lens.ui.screen.locationslist
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
|
||||
// [VIEWMODEL]
|
||||
@HiltViewModel
|
||||
class LocationsListViewModel @Inject constructor() : ViewModel() {
|
||||
// [STATE]
|
||||
// TODO: Implement UI state
|
||||
}
|
||||
// [END_FILE_LocationsListViewModel.kt]
|
||||
@@ -0,0 +1,22 @@
|
||||
// [PACKAGE] com.homebox.lens.ui.screen.search
|
||||
// [FILE] SearchScreen.kt
|
||||
|
||||
package com.homebox.lens.ui.screen.search
|
||||
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
|
||||
// [ENTRYPOINT]
|
||||
@Composable
|
||||
fun SearchScreen() {
|
||||
// [ACTION]
|
||||
Text(text = "Search Screen")
|
||||
}
|
||||
|
||||
@Preview(showBackground = true)
|
||||
@Composable
|
||||
fun SearchScreenPreview() {
|
||||
SearchScreen()
|
||||
}
|
||||
// [END_FILE_SearchScreen.kt]
|
||||
@@ -0,0 +1,16 @@
|
||||
// [PACKAGE] com.homebox.lens.ui.screen.search
|
||||
// [FILE] SearchViewModel.kt
|
||||
|
||||
package com.homebox.lens.ui.screen.search
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
|
||||
// [VIEWMODEL]
|
||||
@HiltViewModel
|
||||
class SearchViewModel @Inject constructor() : ViewModel() {
|
||||
// [STATE]
|
||||
// TODO: Implement UI state
|
||||
}
|
||||
// [END_FILE_SearchViewModel.kt]
|
||||
Reference in New Issue
Block a user