diff --git a/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/CategoryUI.kt b/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/CategoryUI.kt new file mode 100644 index 0000000..e1eff0e --- /dev/null +++ b/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/CategoryUI.kt @@ -0,0 +1,2 @@ +package at.xaxa.ledger.ui.category + diff --git a/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/CategoryViewModel.kt b/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/CategoryViewModel.kt new file mode 100644 index 0000000..e1eff0e --- /dev/null +++ b/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/CategoryViewModel.kt @@ -0,0 +1,2 @@ +package at.xaxa.ledger.ui.category + diff --git a/Ledger/app/src/main/java/at/xaxa/ledger/ui/edit/EditUI.kt b/Ledger/app/src/main/java/at/xaxa/ledger/ui/edit/EditUI.kt index ac40274..747f313 100644 --- a/Ledger/app/src/main/java/at/xaxa/ledger/ui/edit/EditUI.kt +++ b/Ledger/app/src/main/java/at/xaxa/ledger/ui/edit/EditUI.kt @@ -14,6 +14,7 @@ import androidx.compose.material3.ExposedDropdownMenuDefaults import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -31,7 +32,8 @@ import at.xaxa.ledger.ui.home.HomeViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable -fun Edit(modifier: Modifier = Modifier, onCardClick: (Int) -> Unit, HomeViewModel : HomeViewModel = viewModel(factory = AppViewModelProvider.Factory)) { +fun Edit(modifier: Modifier = Modifier, onCardClick: (Int) -> Unit, EditViewModel : EditViewModel = viewModel(factory = AppViewModelProvider.Factory)) { + var name by remember { mutableStateOf("") } var spending by remember { mutableStateOf("") } @@ -111,12 +113,12 @@ fun Edit(modifier: Modifier = Modifier, onCardClick: (Int) -> Unit, HomeViewMode modifier = Modifier .fillMaxWidth() .padding(bottom = 8.dp), - text = "Delete Transaction", + text = "Delete", onClick = { print("test") } ) ButtonSuccess( modifier = Modifier.fillMaxWidth(), // Add spacing between buttons - text = "Add Transaction", + text = "Done", onClick = { print("test") } ) } diff --git a/Ledger/app/src/main/java/at/xaxa/ledger/ui/edit/EditViewModel.kt b/Ledger/app/src/main/java/at/xaxa/ledger/ui/edit/EditViewModel.kt index a028e10..76b715e 100644 --- a/Ledger/app/src/main/java/at/xaxa/ledger/ui/edit/EditViewModel.kt +++ b/Ledger/app/src/main/java/at/xaxa/ledger/ui/edit/EditViewModel.kt @@ -8,13 +8,19 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import at.xaxa.ledger.data.Entry import at.xaxa.ledger.data.EntryRepository +import at.xaxa.ledger.data.db.Category.CategoryEntity +import at.xaxa.ledger.ui.add.CategoryListUIState import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.SharingStarted +import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch import kotlinx.coroutines.withContext +data class CategoryListUIState(val categories: Flow> = flowOf(emptyList())) + data class EditUI( val entry: Entry = Entry(0, "", 0.0f, 0, 0) @@ -26,7 +32,7 @@ class EditViewModel(private val savedStateHandle: SavedStateHandle, private val entryId: Int = checkNotNull(savedStateHandle["entryId"]) var editUiState by mutableStateOf(EditUI()) - private set + var categoryUiState by mutableStateOf(CategoryListUIState()) init { viewModelScope.launch { @@ -50,5 +56,15 @@ class EditViewModel(private val savedStateHandle: SavedStateHandle, entryRepository.updateEntry(editUiState.entry) } } + fun getAllCategories() { + viewModelScope.launch { + val categories = withContext(Dispatchers.IO) { + entryRepository.getAllCategories() + } + categoryUiState = CategoryListUIState(categories) + + } + + } } \ No newline at end of file