diff --git a/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/add/AddCategoryUI.kt b/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/add/AddCategoryUI.kt index 25b1273..b7a2ce2 100644 --- a/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/add/AddCategoryUI.kt +++ b/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/add/AddCategoryUI.kt @@ -123,7 +123,7 @@ fun AddCategory( modifier = Modifier, "Add Category", onClick = { - if (name.isNotBlank()) { + if (name.isNotBlank() && selectedIconIndex != -1) { val newCategory = CategoryEntity( _id = 0, categoryName = name, diff --git a/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/edit/EditCategory.kt b/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/edit/EditCategory.kt index 1e4eba9..6143c27 100644 --- a/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/edit/EditCategory.kt +++ b/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/edit/EditCategory.kt @@ -21,6 +21,7 @@ import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf @@ -47,8 +48,8 @@ fun EditCategory( ) { val category = editCategoryViewModel.categoryUi.category var showError by remember { mutableStateOf(editCategoryViewModel.deletePossible) } - var redirect by remember { mutableStateOf(editCategoryViewModel.redirect) } - var deleteStarted by remember { mutableStateOf(false) } + val redirect by editCategoryViewModel.redirect.collectAsState() + var deleteStarted by remember { mutableStateOf(editCategoryViewModel.deleteStarted) } var expanded by remember { mutableStateOf(false) } var selectedIconIndex by remember { mutableIntStateOf(category.icon) } @@ -60,8 +61,11 @@ fun EditCategory( if (deleteStarted) { editCategoryViewModel.findEntryByCategoryId() showError = editCategoryViewModel.deletePossible - } + } + + LaunchedEffect(redirect) { + Log.w("lolo", "EditCategory: "+ redirect.toString(), ) if (redirect) { onButtonClick() } diff --git a/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/edit/EditCategoryViewModel.kt b/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/edit/EditCategoryViewModel.kt index ae12c84..a33ef5a 100644 --- a/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/edit/EditCategoryViewModel.kt +++ b/Ledger/app/src/main/java/at/xaxa/ledger/ui/category/edit/EditCategoryViewModel.kt @@ -10,6 +10,8 @@ import androidx.lifecycle.viewModelScope import at.xaxa.ledger.data.EntryRepository import at.xaxa.ledger.data.db.Category.CategoryEntity import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -23,7 +25,10 @@ class EditCategoryViewModel(private val savedStateHandle: SavedStateHandle, priv var categoryUi by mutableStateOf(CategoryUIState()) private set var deletePossible by mutableStateOf(false) - var redirect by mutableStateOf(false) + var deleteStarted by mutableStateOf(false) + + private var _redirect = MutableStateFlow(false) + val redirect: StateFlow get() = _redirect init { viewModelScope.launch { @@ -32,7 +37,7 @@ class EditCategoryViewModel(private val savedStateHandle: SavedStateHandle, priv } categoryUi = CategoryUIState(category) - redirect = false; + _redirect.value = false; } } @@ -40,7 +45,7 @@ class EditCategoryViewModel(private val savedStateHandle: SavedStateHandle, priv categoryUi = categoryUi.copy(category = category) } - fun deleteCategory() { + fun deleteCategory(){ viewModelScope.launch { entryRepository.deleteCategory(categoryUi.category) } @@ -61,8 +66,9 @@ class EditCategoryViewModel(private val savedStateHandle: SavedStateHandle, priv if(fetchedEntries>0){ deletePossible = true }else{ + Log.w("lolo", "findEntryByCategoryId: "+fetchedEntries, ) deleteCategory() - redirect= true; + _redirect.value= true; } } }