diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..7643783
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..79ee123
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
index e805548..d4b7acc 100644
--- a/.idea/kotlinc.xml
+++ b/.idea/kotlinc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index f45e544..e3837bf 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -1,6 +1,7 @@
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
+ alias(libs.plugins.compose.compiler)
}
android {
@@ -30,13 +31,12 @@ android {
buildFeatures {
compose = true
}
- composeOptions {
- kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get()
- }
namespace = "com.togitech.togii"
}
dependencies {
+ val composeBom = platform(libs.androidx.compose.bom)
+ implementation(composeBom)
implementation(libs.accompanist.systemuicontroller)
implementation(libs.androidx.core)
implementation(libs.androidx.lifecycle.runtime)
diff --git a/build.gradle.kts b/build.gradle.kts
index d6e6f65..6094779 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,4 +1,5 @@
plugins {
+ alias(libs.plugins.compose.compiler) apply false
id("com.android.application") version libs.versions.android.gradle.plugin apply false
id("com.android.library") version libs.versions.android.gradle.plugin apply false
id("org.jetbrains.kotlin.android") version libs.versions.kotlin apply false
diff --git a/ccp/build.gradle.kts b/ccp/build.gradle.kts
index 7f7640b..bc05044 100644
--- a/ccp/build.gradle.kts
+++ b/ccp/build.gradle.kts
@@ -4,6 +4,7 @@ plugins {
id("maven-publish")
id("io.gitlab.arturbosch.detekt") version libs.versions.detekt.get()
id("org.jetbrains.dokka")
+ alias(libs.plugins.compose.compiler)
alias(libs.plugins.paparazzi)
}
@@ -35,9 +36,6 @@ android {
jvmTarget = JavaVersion.VERSION_17.toString()
freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn"
}
- composeOptions {
- kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get()
- }
publishing {
singleVariant("release") {
withJavadocJar()
@@ -46,8 +44,11 @@ android {
}
dependencies {
+ val composeBom = platform(libs.androidx.compose.bom)
api(libs.kotlinx.immutable)
api(libs.libphonenumber)
+ implementation(composeBom)
+ androidTestImplementation(composeBom)
debugImplementation(libs.compose.tooling)
implementation(libs.androidx.core)
implementation(libs.androidx.lifecycle.compose)
@@ -55,6 +56,7 @@ dependencies {
implementation(libs.androidx.lifecycle.viewmodel.compose)
implementation(libs.compose.activity)
implementation(libs.compose.material)
+ implementation(libs.compose.icons)
implementation(libs.compose.tooling.preview)
detektPlugins("ru.kode:detekt-rules-compose:1.3.0")
diff --git a/ccp/src/main/java/com/togitech/ccp/component/TogiCountryCodePicker.kt b/ccp/src/main/java/com/togitech/ccp/component/TogiCountryCodePicker.kt
index 03f9e50..07586e2 100644
--- a/ccp/src/main/java/com/togitech/ccp/component/TogiCountryCodePicker.kt
+++ b/ccp/src/main/java/com/togitech/ccp/component/TogiCountryCodePicker.kt
@@ -255,7 +255,7 @@ fun TogiCountryCodePicker(
visualTransformation = phoneNumberTransformation,
keyboardOptions = keyboardOptions ?: KeyboardOptions.Default.copy(
keyboardType = KeyboardType.Phone,
- autoCorrect = true,
+ autoCorrectEnabled = true,
imeAction = ImeAction.Done,
),
keyboardActions = keyboardActions ?: KeyboardActions(
diff --git a/ccp/src/main/java/com/togitech/ccp/transformation/PhoneNumberTransformation.kt b/ccp/src/main/java/com/togitech/ccp/transformation/PhoneNumberTransformation.kt
index df8f6e6..eacb84b 100644
--- a/ccp/src/main/java/com/togitech/ccp/transformation/PhoneNumberTransformation.kt
+++ b/ccp/src/main/java/com/togitech/ccp/transformation/PhoneNumberTransformation.kt
@@ -76,7 +76,7 @@ class PhoneNumberTransformation(countryCode: String, context: Context) : VisualT
} else {
originalToTransformed.add(index)
}
- transformedToOriginal.add(index - specialCharsCount)
+ transformedToOriginal.add(maxOf(index - specialCharsCount, 0))
}
originalToTransformed.add(originalToTransformed.maxOrNull()?.plus(1) ?: 0)
transformedToOriginal.add(transformedToOriginal.maxOrNull()?.plus(1) ?: 0)
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 3b50754..c7484c4 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -1,5 +1,5 @@
[versions]
-kotlin = "1.9.22"
+kotlin = "2.0.20"
dokka = "1.9.10"
## SDK Versions
@@ -8,60 +8,46 @@ targetSdk = "34"
compileSdk = "34"
# Dependencies
-android-gradle-plugin = "8.2.2"
+android-gradle-plugin = "8.6.0"
gradle-versions = "0.50.0"
detekt = "1.23.3"
-accompanist = "0.34.0"
-androidx-activity-compose = "1.8.2"
-androidx-core = "1.12.0"
-androidx-lifecycle = "2.7.0"
-androidx-test-junit = "1.1.5"
-
-# update version in README when changing below
-compose = "1.6.0"
-# https://androidx.dev/storage/compose-compiler/repository/
-# https://developer.android.com/jetpack/androidx/releases/compose-compiler
-composeCompiler = "1.5.8"
-
-kotlinx-coroutines = "1.7.3"
+accompanist = "0.36.0"
+androidx-compose-bom = "2024.09.02"
+androidx-activity-compose = "1.9.2"
+androidx-core = "1.13.1"
+androidx-lifecycle = "2.8.6"
kotlinx-collections-immutable = "0.3.7"
-libphonenumber = "8.13.28"
+libphonenumber = "8.13.35"
junit = "4.13.2"
-robolectric = "4.11.1"
paparazzi = "1.3.1"
[libraries]
accompanist-systemuicontroller = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanist" }
androidx-core = { module = "androidx.core:core-ktx", version.ref = "androidx-core" }
+androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidx-compose-bom" }
androidx-lifecycle-compose = {module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle"}
androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidx-lifecycle" }
androidx-lifecycle-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle" }
androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" }
-androidx-test-junit = { module = "androidx.test.ext:junit-ktx", version.ref = "androidx-test-junit" }
compose-activity = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity-compose" }
-compose-compiler = { module = "androidx.compose.compiler:compiler", version.ref = "composeCompiler" }
-compose-foundation = { module = "androidx.compose.foundation:foundation", version.ref = "compose" }
-compose-material = { module = "androidx.compose.material:material", version.ref = "compose" }
-compose-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" }
-compose-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "compose" }
-compose-ui = { module = "androidx.compose.ui:ui", version.ref = "compose" }
-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" }
-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" }
+compose-material = { module = "androidx.compose.material:material" }
+compose-icons = { module = "androidx.compose.material:material-icons-core" }
+compose-tooling = { module = "androidx.compose.ui:ui-tooling" }
+compose-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" }
+compose-ui = { module = "androidx.compose.ui:ui" }
libphonenumber = { module = "io.michaelrocks:libphonenumber-android", version.ref = "libphonenumber" }
kotlinx-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version.ref = "kotlinx-collections-immutable" }
junit = { module = "junit:junit", version.ref = "junit" }
-kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
-roboelectric = { module = "org.robolectric:robolectric", version.ref = "robolectric" }
[plugins]
+compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
gradleVersions = { id = "com.github.ben-manes.versions", version.ref = "gradle-versions" }
-kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
paparazzi = { id = "app.cash.paparazzi", version.ref = "paparazzi" }
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index ac72c34..b82aa23 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME