From a319dccdec94e058e28c1570829825e53b052479 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 1 Feb 2024 14:28:34 +0900 Subject: [PATCH 01/12] Update gradle. - com.android.application 8.2.1 - com.android.library 8.2.1 --- build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 3c5925a..3eb6be0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -22,8 +22,8 @@ buildscript { } plugins { - id("com.android.application") version "8.0.2" apply false - id("com.android.library") version "8.0.2" apply false + id("com.android.application") version "8.2.1" apply false + id("com.android.library") version "8.2.1" apply false id("org.jetbrains.kotlin.android") version "1.8.21" apply false } From aef0305c61754f7f0a6492af2bd89b06752181e2 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 1 Feb 2024 14:34:07 +0900 Subject: [PATCH 02/12] Update gradle-wrapper. - gradle-8.5-bin --- gradle/wrapper/gradle-wrapper.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1278c45..6805e49 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Aug 17 03:21:55 PDT 2022 +#Thu Feb 01 14:30:08 KST 2024 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip distributionPath=wrapper/dists -zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists From 14b8b8c6380a700908112b849554dc63e5f368b1 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 1 Feb 2024 14:37:34 +0900 Subject: [PATCH 03/12] Update gradle. - "room_version" = "2.6.1" - org.jetbrains.kotlin.android = 1.9.22 - rootProject.layout.buildDirectory --- build.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 3eb6be0..e144e83 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,16 +17,16 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { extra.apply { - set("room_version", "2.5.2") + set("room_version", "2.6.1") } } plugins { id("com.android.application") version "8.2.1" apply false id("com.android.library") version "8.2.1" apply false - id("org.jetbrains.kotlin.android") version "1.8.21" apply false + id("org.jetbrains.kotlin.android") version "1.9.22" apply false } tasks.register("clean", Delete::class) { - delete(rootProject.buildDir) + delete(rootProject.layout.buildDirectory) } From 3d6e31cec4ae0e88ca738cb5c6ff395434106e06 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 1 Feb 2024 14:39:07 +0900 Subject: [PATCH 04/12] Update gradle. - com.google.devtools.ksp = "1.9.22-1.0.17" - compileSdk = 34 - targetSdk = 34 - activity-compose:1.8.2 - core:core-ktx:1.12.0 - lifecycle-runtime-ktx:2.7.0 - lifecycle-viewmodel-compose:2.7.0 - navigation-compose:2.7.6 - core:core-ktx:1.12.0 --- app/build.gradle.kts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3e8c340..71fc7bf 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -19,16 +19,16 @@ plugins { id("com.android.application") id("org.jetbrains.kotlin.android") - id("com.google.devtools.ksp") version "1.8.21-1.0.11" + id("com.google.devtools.ksp") version "1.9.22-1.0.17" } android { - compileSdk = 33 + compileSdk = 34 defaultConfig { applicationId = "com.example.inventory" minSdk = 24 - targetSdk = 33 + targetSdk = 34 versionCode = 1 versionName = "1.0" @@ -71,19 +71,19 @@ android { dependencies { // Import the Compose BOM implementation(platform("androidx.compose:compose-bom:2023.06.01")) - implementation("androidx.activity:activity-compose:1.7.2") + implementation("androidx.activity:activity-compose:1.8.2") implementation("androidx.compose.material3:material3") implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-tooling") implementation("androidx.compose.ui:ui-tooling-preview") - implementation("androidx.core:core-ktx:1.10.1") - implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.1") - implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1") - implementation("androidx.navigation:navigation-compose:2.6.0") + implementation("androidx.core:core-ktx:1.12.0") + implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0") + implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") + implementation("androidx.navigation:navigation-compose:2.7.6") //Room implementation("androidx.room:room-runtime:${rootProject.extra["room_version"]}") - implementation("androidx.core:core-ktx:1.10.1") + implementation("androidx.core:core-ktx:1.12.0") ksp("androidx.room:room-compiler:${rootProject.extra["room_version"]}") implementation("androidx.room:room-ktx:${rootProject.extra["room_version"]}") From 185da24d6c58225d51cc055de93cc5e233c2c762 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 1 Feb 2024 14:39:50 +0900 Subject: [PATCH 05/12] Update gradle. - kotlinCompilerExtensionVersion = "1.5.8" --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 71fc7bf..60930bf 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -58,7 +58,7 @@ android { compose = true } composeOptions { - kotlinCompilerExtensionVersion = "1.4.7" + kotlinCompilerExtensionVersion = "1.5.8" } packaging { resources { From 0cc7690e1737047faccd2d82372f089cb99dc0e9 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 1 Feb 2024 15:48:37 +0900 Subject: [PATCH 06/12] Update gradle. - compose-bom = 2024.01.00 --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 60930bf..aa4b120 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -70,7 +70,7 @@ android { dependencies { // Import the Compose BOM - implementation(platform("androidx.compose:compose-bom:2023.06.01")) + implementation(platform("androidx.compose:compose-bom:2024.01.00")) implementation("androidx.activity:activity-compose:1.8.2") implementation("androidx.compose.material3:material3") implementation("androidx.compose.ui:ui") From e2bbfcb5eaa004ce96791afbff9b524c418c4622 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 1 Feb 2024 15:49:09 +0900 Subject: [PATCH 07/12] Create DECIMAL_REGEX and NUMBER_REGEX. --- .../java/com/example/inventory/ui/item/ItemEntryViewModel.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt b/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt index 9729464..9854f4b 100644 --- a/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt +++ b/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt @@ -29,6 +29,11 @@ import java.text.NumberFormat */ class ItemEntryViewModel(private val itemsRepository: ItemsRepository) : ViewModel() { + companion object { + private val DECIMAL_REGEX = "^\\d*\\.?\\d*$".toRegex() + private val NUMBER_REGEX = "^\\d*$".toRegex() + } + /** * Holds current item ui state */ From b270f77c1af94d22ccb785a7d36599162965bf05 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 1 Feb 2024 15:50:39 +0900 Subject: [PATCH 08/12] Create validateDecimalInputText() and validateNumberInputText() function. --- .../example/inventory/ui/item/ItemEntryViewModel.kt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt b/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt index 9854f4b..270fb06 100644 --- a/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt +++ b/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt @@ -46,7 +46,18 @@ class ItemEntryViewModel(private val itemsRepository: ItemsRepository) : ViewMod */ fun updateUiState(itemDetails: ItemDetails) { itemUiState = - ItemUiState(itemDetails = itemDetails, isEntryValid = validateInput(itemDetails)) + ItemUiState( + itemDetails = itemDetails, + isEntryValid = validateInput(itemDetails) + ) + } + + fun validateDecimalInputText(inputText: String): Boolean { + return inputText.matches(DECIMAL_REGEX) + } + + fun validateNumberInputText(inputText: String): Boolean { + return inputText.matches(NUMBER_REGEX) } /** From a7bfd369f82d25aea8c746461a843419235ed95a Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 1 Feb 2024 15:51:13 +0900 Subject: [PATCH 09/12] Apply validateDecimalInputText() and validateNumberInputText() function. --- .../inventory/ui/item/ItemEntryViewModel.kt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt b/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt index 270fb06..e104e98 100644 --- a/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt +++ b/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt @@ -45,11 +45,16 @@ class ItemEntryViewModel(private val itemsRepository: ItemsRepository) : ViewMod * a validation for input values. */ fun updateUiState(itemDetails: ItemDetails) { - itemUiState = - ItemUiState( - itemDetails = itemDetails, - isEntryValid = validateInput(itemDetails) - ) + if ( + validateDecimalInputText(itemDetails.price) + .and(validateNumberInputText(itemDetails.quantity)) + ) { + itemUiState = + ItemUiState( + itemDetails = itemDetails, + isEntryValid = validateInput(itemDetails) + ) + } } fun validateDecimalInputText(inputText: String): Boolean { From c94ff04166f5913c94e2327d2982bed6ff3e51b3 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 1 Feb 2024 15:53:02 +0900 Subject: [PATCH 10/12] Set private. --- .../java/com/example/inventory/ui/item/ItemEntryViewModel.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt b/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt index e104e98..e11342a 100644 --- a/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt +++ b/app/src/main/java/com/example/inventory/ui/item/ItemEntryViewModel.kt @@ -57,11 +57,11 @@ class ItemEntryViewModel(private val itemsRepository: ItemsRepository) : ViewMod } } - fun validateDecimalInputText(inputText: String): Boolean { + private fun validateDecimalInputText(inputText: String): Boolean { return inputText.matches(DECIMAL_REGEX) } - fun validateNumberInputText(inputText: String): Boolean { + private fun validateNumberInputText(inputText: String): Boolean { return inputText.matches(NUMBER_REGEX) } From 0c2ccc38fb0689590b003c8664c259e5f9b0cd20 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Sat, 27 Apr 2024 11:20:12 +0900 Subject: [PATCH 11/12] Revert "Update gradle-wrapper." This reverts commit aef0305c61754f7f0a6492af2bd89b06752181e2. --- gradle/wrapper/gradle-wrapper.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 6805e49..1278c45 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Feb 01 14:30:08 KST 2024 +#Wed Aug 17 03:21:55 PDT 2022 distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip -zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME From 46a17b851267037a0d2ad2d84b636e706e4c3893 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Sat, 27 Apr 2024 11:22:03 +0900 Subject: [PATCH 12/12] Revert 'rootProject.buildDir'. --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 4b24e33..ac5e1ec 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -28,5 +28,5 @@ plugins { } tasks.register("clean", Delete::class) { - delete(rootProject.layout.buildDirectory) + delete(rootProject.buildDir) }