diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml index fdf8d994a6599dd8b64a341af14c598069a10022..fe63bb677dc7c018519fa0fb0fecb445e5256c67 100644 --- a/.idea/kotlinc.xml +++ b/.idea/kotlinc.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="KotlinJpsPluginSettings"> - <option name="version" value="1.9.0" /> + <option name="version" value="1.9.23" /> </component> </project> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 0ad17cbd33a2f389d524bc4bfef9c52e1f7ab490..8978d23db569daa721cb26dde7923f4c673d1fc9 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ -<?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK"> diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 33277ad0d3f61afe7bc371bec3ca0fc467a40cd9..303188db52402fdc2f088dfc5aeaaa1a834dfea4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,6 +1,7 @@ plugins { alias(libs.plugins.androidApplication) alias(libs.plugins.jetbrainsKotlinAndroid) + alias(libs.plugins.jetbrainsKotlinKapt) } android { @@ -45,12 +46,15 @@ dependencies { implementation(libs.androidx.lifecycle.viewmodel.ktx) implementation(libs.androidx.navigation.fragment.ktx) implementation(libs.androidx.navigation.ui.ktx) - implementation(libs.room.runtime) - implementation(libs.room.compiler) - implementation(libs.room.ktx) - implementation(libs.room.common) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) + // Room + implementation(libs.room.runtime) + implementation(libs.room.compiler) + implementation(libs.room.ktx) + implementation(libs.room.common) + annotationProcessor(libs.room.compiler) + kapt(libs.room.compiler) } \ No newline at end of file diff --git a/app/src/main/java/com/onionsquad/bondoman/repository/TransactionRepository.kt b/app/src/main/java/com/onionsquad/bondoman/repository/TransactionRepository.kt new file mode 100644 index 0000000000000000000000000000000000000000..6d31c4ab7d591d2cb2a82a8c5af4fcd690fbeee8 --- /dev/null +++ b/app/src/main/java/com/onionsquad/bondoman/repository/TransactionRepository.kt @@ -0,0 +1,20 @@ +package com.onionsquad.bondoman.repository + +import com.onionsquad.bondoman.room.* +import androidx.lifecycle.LiveData + +class TransactionRepository(private val transactionDao: TransactionDao) { + val listTransactions: LiveData<List<TransactionEntity>> = transactionDao.getAllTransactions() + + suspend fun insertTransaction(transaction: TransactionEntity) { + transactionDao.insertTransaction(transaction) + } + + suspend fun updateTransaction(transaction: TransactionEntity) { + transactionDao.updateTransaction(transaction) + } + + suspend fun deleteTransaction(transaction: TransactionEntity) { + transactionDao.deleteTransaction(transaction) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionViewModel.kt b/app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionViewModel.kt index bb883eaad8241e46f1cb31cf707403419df2b22b..a4e10ab1aec043dd0fcbbe484520f06cc3bd08fe 100644 --- a/app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionViewModel.kt +++ b/app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionViewModel.kt @@ -1,13 +1,24 @@ package com.onionsquad.bondoman.ui.transaction import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import kotlinx.coroutines.launch +import com.onionsquad.bondoman.room.* +import com.onionsquad.bondoman.repository.TransactionRepository -class TransactionViewModel : ViewModel() { +class TransactionViewModel(private val repository : TransactionRepository) : ViewModel() { + var listTransactions: LiveData<List<TransactionEntity>> = repository.listTransactions - private val _text = MutableLiveData<String>().apply { - value = "This is dashboard Fragment" + fun insertTransaction(transaction: TransactionEntity) = viewModelScope.launch { + repository.insertTransaction(transaction) + } + + fun updateTransaction(transaction: TransactionEntity) = viewModelScope.launch { + repository.updateTransaction(transaction) + } + + fun deleteTransaction(transaction: TransactionEntity) = viewModelScope.launch { + repository.deleteTransaction(transaction) } - val text: LiveData<String> = _text } \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index a0985efc88dec705956b74f5d6e9ac23c8daebb8..56ccaddfbd0ae102cf1b1f8b9a4ea0727d5445c6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,4 +2,5 @@ plugins { alias(libs.plugins.androidApplication) apply false alias(libs.plugins.jetbrainsKotlinAndroid) apply false + alias(libs.plugins.jetbrainsKotlinKapt) apply false } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 20e2a01520742aff4ec9ce578ed4fe5f3a76fe77..68c91aec313598d3039f3466d1eca131beb5f553 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,6 +15,7 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 # Android operating system, and which are packaged with your app's APK # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true +android.enableJetifier=true # Kotlin code style for this project: "official" or "obsolete": kotlin.code.style=official # Enables namespacing of each library's R class so that its R class includes only the diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 15e4421badb4e472990662dffc110ea64118aa97..0dfe940829217bb3bb2bc0c9fc798b9c09b68ff3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,6 +13,7 @@ lifecycleViewmodelKtx = "2.6.1" navigationFragmentKtx = "2.6.0" navigationUiKtx = "2.6.0" room = "2.6.1" +kapt = "1.9.23" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } @@ -34,5 +35,5 @@ room-common = { group = "androidx.room", name = "room-common", version.ref = "ro [plugins] androidApplication = { id = "com.android.application", version.ref = "agp" } jetbrainsKotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } -kotlinKapt = { id = "kotlin-kapt", version.ref = "kotlin" } +jetbrainsKotlinKapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kapt" }