diff --git a/Ledger/app/src/main/java/at/xaxa/ledger/data/Entry.kt b/Ledger/app/src/main/java/at/xaxa/ledger/data/Entry.kt index a61d02b..0d7e11b 100644 --- a/Ledger/app/src/main/java/at/xaxa/ledger/data/Entry.kt +++ b/Ledger/app/src/main/java/at/xaxa/ledger/data/Entry.kt @@ -1,5 +1,7 @@ package at.xaxa.ledger.data +import kotlinx.coroutines.flow.Flow + class Entry ( val id: Int, val name: String, diff --git a/Ledger/app/src/main/java/at/xaxa/ledger/data/EntryRepository.kt b/Ledger/app/src/main/java/at/xaxa/ledger/data/EntryRepository.kt index bbb5cfe..7604946 100644 --- a/Ledger/app/src/main/java/at/xaxa/ledger/data/EntryRepository.kt +++ b/Ledger/app/src/main/java/at/xaxa/ledger/data/EntryRepository.kt @@ -5,7 +5,6 @@ import at.xaxa.ledger.data.db.Entry.EntryEntity import at.xaxa.ledger.data.db.LedgerDao import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map -import java.util.Locale.Category class EntryRepository(private val ledgerDao: LedgerDao){ @@ -44,6 +43,7 @@ class EntryRepository(private val ledgerDao: LedgerDao){ suspend fun updateEntry(entry: Entry) { ledgerDao.updateEntry(EntryEntity(entry.id, entry.name, entry.amount, entry.date, entry.categoryID)) } + suspend fun deleteEntry(entry: Entry) { ledgerDao.deleteEntry(EntryEntity(_id = entry.id, entry.name, entry.amount, entry.date, entry.categoryID)) } diff --git a/Ledger/app/src/main/java/at/xaxa/ledger/ui/add/AddUI.kt b/Ledger/app/src/main/java/at/xaxa/ledger/ui/add/AddUI.kt index bfe037f..28b3092 100644 --- a/Ledger/app/src/main/java/at/xaxa/ledger/ui/add/AddUI.kt +++ b/Ledger/app/src/main/java/at/xaxa/ledger/ui/add/AddUI.kt @@ -1,12 +1,10 @@ package at.xaxa.ledger.ui.add -import android.util.Log import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Button import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExposedDropdownMenuBox @@ -17,6 +15,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.mutableLongStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue @@ -28,7 +27,6 @@ import at.xaxa.ledger.data.Entry import at.xaxa.ledger.ui.AppViewModelProvider import at.xaxa.ledger.ui.ButtonSuccess import at.xaxa.ledger.ui.DatePickerDocked -import at.xaxa.ledger.ui.home.HomeViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -42,20 +40,11 @@ fun Add( val categories by addViewModel.categoryUiState.categories.collectAsState(initial = emptyList()) var spending by remember { mutableStateOf("") } - - var selectedDate by remember { mutableStateOf(0) } + var selectedDate by remember { mutableLongStateOf(0) } var expanded by remember { mutableStateOf(false) } var selectedItem by remember { mutableStateOf("") } var selectedCategory by remember { mutableIntStateOf(-1) } - var entryName by remember { mutableStateOf("") } - var entryAmount by remember { mutableStateOf(0.0f) } - var entryDate by remember { mutableStateOf(0L) } - var category by remember { mutableStateOf(0) } - - - - Column( modifier = modifier .fillMaxSize() 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..2a38ff8 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 @@ -1,9 +1,6 @@ package at.xaxa.ledger.ui.edit -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding @@ -14,31 +11,34 @@ 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.mutableFloatStateOf +import androidx.compose.runtime.mutableLongStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment -import androidx.compose.ui.BiasAlignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel +import at.xaxa.ledger.data.Entry import at.xaxa.ledger.ui.AppViewModelProvider import at.xaxa.ledger.ui.ButtonDanger import at.xaxa.ledger.ui.ButtonSuccess import at.xaxa.ledger.ui.DatePickerDocked -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)) { - var name by remember { mutableStateOf("") } - var spending by remember { mutableStateOf("") } +fun Edit(modifier: Modifier = Modifier, onCardClick: () -> Unit, editViewModel : EditViewModel = viewModel(factory = AppViewModelProvider.Factory)) { + val libraryEntity = editViewModel.editUiState.entry - var selectedDate by remember { mutableStateOf(null) } + var name by remember { mutableStateOf(libraryEntity.name) } + var spending by remember { mutableStateOf(libraryEntity.amount.toString()) } + var selectedDate by remember { mutableLongStateOf(libraryEntity.date) } var expanded by remember { mutableStateOf(false) } var selectedItem by remember { mutableStateOf("") } - val categories = listOf("Option 1", "Option 2", "Option 3") + val categories by editViewModel.categoryUiState.categories.collectAsState(initial = emptyList()) Column( modifier = modifier.fillMaxSize() @@ -56,9 +56,9 @@ fun Edit(modifier: Modifier = Modifier, onCardClick: (Int) -> Unit, HomeViewMode .fillMaxWidth() ) OutlinedTextField( - value = spending, + value = name, onValueChange = { spending = it }, - label = { Text("Spending") }, + label = { Text("Name") }, modifier = Modifier .fillMaxWidth() ) @@ -111,13 +111,13 @@ fun Edit(modifier: Modifier = Modifier, onCardClick: (Int) -> Unit, HomeViewMode modifier = Modifier .fillMaxWidth() .padding(bottom = 8.dp), - text = "Delete Transaction", - onClick = { print("test") } + text = "Delete", + onClick = { onCardClick() } ) ButtonSuccess( modifier = Modifier.fillMaxWidth(), // Add spacing between buttons - text = "Add Transaction", - onClick = { print("test") } + text = "Done", + onClick = { onCardClick() } ) } } 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..c5cf28f 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 @@ -9,9 +9,6 @@ import androidx.lifecycle.viewModelScope import at.xaxa.ledger.data.Entry import at.xaxa.ledger.data.EntryRepository import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.flow.SharingStarted -import kotlinx.coroutines.flow.map -import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch import kotlinx.coroutines.withContext