From d6ff6de33901ae23f6db3f62552bf9f288e20651 Mon Sep 17 00:00:00 2001 From: Xaver Date: Thu, 16 Jan 2025 12:16:33 +0100 Subject: [PATCH] category structure --- .../AddCategoryViewModel.kt} | 0 .../{ => overview}/CategoryOverview.kt | 2 +- .../overview/OverviewCategoryViewModel.kt | 44 +++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) rename Ledger/app/src/main/java/at/xaxa/ledger/ui/category/{CategoryViewModel.kt => add/AddCategoryViewModel.kt} (100%) rename Ledger/app/src/main/java/at/xaxa/ledger/ui/category/{ => overview}/CategoryOverview.kt (95%) create mode 100644 Ledger/app/src/main/java/at/xaxa/ledger/ui/category/overview/OverviewCategoryViewModel.kt 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/add/AddCategoryViewModel.kt similarity index 100% rename from Ledger/app/src/main/java/at/xaxa/ledger/ui/category/CategoryViewModel.kt rename to Ledger/app/src/main/java/at/xaxa/ledger/ui/category/add/AddCategoryViewModel.kt diff --git a/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/CategoryOverview.kt b/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/overview/CategoryOverview.kt similarity index 95% rename from Ledger/app/src/main/java/at/xaxa/ledger/ui/category/CategoryOverview.kt rename to Ledger/app/src/main/java/at/xaxa/ledger/ui/category/overview/CategoryOverview.kt index eab8591..87435f2 100644 --- a/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/CategoryOverview.kt +++ b/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/overview/CategoryOverview.kt @@ -23,7 +23,7 @@ fun CategoryOverview( onButtonClick: () -> Unit, modifier: Modifier = Modifier, onCardClick: (Int) -> Unit, - categoryViewModel: CategoryViewModel = viewModel(factory = AppViewModelProvider.Factory) + categoryViewModel: OverviewCategoryViewModel = viewModel(factory = AppViewModelProvider.Factory) ){ val categories by categoryViewModel.categoryUiState.categories.collectAsState(initial = emptyList()) diff --git a/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/overview/OverviewCategoryViewModel.kt b/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/overview/OverviewCategoryViewModel.kt new file mode 100644 index 0000000..7070d4e --- /dev/null +++ b/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/overview/OverviewCategoryViewModel.kt @@ -0,0 +1,44 @@ +package at.xaxa.ledger.ui.category + +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import androidx.lifecycle.SavedStateHandle +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import at.xaxa.ledger.data.EntryRepository +import at.xaxa.ledger.data.db.Category.CategoryEntity +import at.xaxa.ledger.ui.category.add.CategoryListUIState +import at.xaxa.ledger.ui.category.add.CategoryUIState +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.flowOf +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext + +data class CategoryUIState(val category: CategoryEntity = CategoryEntity(0,"",0)) +data class CategoryListUIState(val categories: Flow> = flowOf(emptyList())) + + +class OverviewCategoryViewModel( + private val savedStateHandle: SavedStateHandle, + private val repository: EntryRepository +) : ViewModel() { + var categoryUiState by mutableStateOf(CategoryListUIState()) + var categoryUi by mutableStateOf(CategoryUIState()) + private set + + init { + getAllCategories() + } + + fun getAllCategories() { + viewModelScope.launch { + val categories = withContext(Dispatchers.IO) { + repository.getAllCategories() + } + categoryUiState = CategoryListUIState(categories) + + } + } +}