diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 117f13d7..2431d80b 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,11 +4,20 @@
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 55c0ec2c..0f866762 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,3 @@
-
diff --git a/README.md b/README.md
index a4b0a388..55540fcf 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
# Kakao Compose
-[![Kotlin version badge](https://img.shields.io/badge/kotlin-1.9.20-blue.svg)](https://kotlinlang.org/)
+[![Kotlin version badge](https://img.shields.io/badge/kotlin-2.0.0-blue.svg)](https://kotlinlang.org/)
[![Telegram](https://img.shields.io/static/v1?label=Telegram&message=RU&color=0088CC)](https://t.me/kaspresso)
[![Telegram](https://img.shields.io/static/v1?label=Telegram&message=EN&color=0088CC)](https://t.me/kaspresso_en)
diff --git a/build.gradle b/build.gradle
deleted file mode 100644
index f5c7696c..00000000
--- a/build.gradle
+++ /dev/null
@@ -1,23 +0,0 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-buildscript {
- ext.kotlin_version = "1.9.20"
- repositories {
- google()
- mavenCentral()
- }
- dependencies {
- classpath libs.gradle
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- }
-}
-
-allprojects {
- repositories {
- google()
- mavenCentral()
- }
-}
-
-task clean(type: Delete) {
- delete rootProject.buildDir
-}
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 00000000..428e4f33
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,10 @@
+plugins {
+ alias(libs.plugins.compose.compiler) apply false
+}
+
+allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
index 0115b2f8..789cb1ea 100644
--- a/buildSrc/build.gradle.kts
+++ b/buildSrc/build.gradle.kts
@@ -9,8 +9,8 @@ repositories {
}
dependencies {
- implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.20")
- implementation("com.android.tools.build:gradle:8.1.4")
- implementation("org.jetbrains.dokka:dokka-gradle-plugin:1.9.10")
+ implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.0")
+ implementation("com.android.tools.build:gradle:8.5.0")
+ implementation("org.jetbrains.dokka:dokka-gradle-plugin:1.9.20")
implementation("org.kohsuke:github-api:1.129")
}
diff --git a/buildsystem/version b/buildsystem/version
index 0d91a54c..1d0ba9ea 100644
--- a/buildsystem/version
+++ b/buildsystem/version
@@ -1 +1 @@
-0.3.0
+0.4.0
diff --git a/compose/build.gradle.kts b/compose/build.gradle.kts
index 3b6ea20f..ee93ffe8 100644
--- a/compose/build.gradle.kts
+++ b/compose/build.gradle.kts
@@ -2,6 +2,7 @@ plugins {
id("com.android.library")
kotlin ("android")
id("org.jetbrains.dokka")
+ alias(libs.plugins.compose.compiler)
}
android {
diff --git a/compose/src/main/kotlin/io/github/kakaocup/compose/rule/KakaoComposeTestRule.kt b/compose/src/main/kotlin/io/github/kakaocup/compose/rule/KakaoComposeTestRule.kt
index 1526844f..31bb241d 100644
--- a/compose/src/main/kotlin/io/github/kakaocup/compose/rule/KakaoComposeTestRule.kt
+++ b/compose/src/main/kotlin/io/github/kakaocup/compose/rule/KakaoComposeTestRule.kt
@@ -1,25 +1,28 @@
package io.github.kakaocup.compose.rule
-import androidx.compose.ui.test.SemanticsMatcher
-import androidx.compose.ui.test.SemanticsNodeInteraction
-import androidx.compose.ui.test.SemanticsNodeInteractionCollection
import androidx.compose.ui.test.SemanticsNodeInteractionsProvider
-import androidx.compose.ui.test.junit4.ComposeContentTestRule
import io.github.kakaocup.compose.KakaoCompose
import org.junit.rules.TestRule
import org.junit.runner.Description
import org.junit.runners.model.Statement
class KakaoComposeTestRule(
- val semanticsProvider: SemanticsNodeInteractionsProvider,
+ val semanticsProvider: SemanticsNodeInteractionsProvider? = null,
+ val useUnmergedTree: Boolean? = null
) : TestRule {
override fun apply(base: Statement, description: Description): Statement =
object : Statement() {
override fun evaluate() {
- val oldSemanticsProvided = KakaoCompose.Global.semanticsProvider
- KakaoCompose.Global.semanticsProvider = semanticsProvider
+ val preEvaluatedSemanticsProvided = KakaoCompose.Global.semanticsProvider
+ semanticsProvider?.let { KakaoCompose.Global.semanticsProvider = it }
+ val preUseUnmergedTree = KakaoCompose.Override.useUnmergedTree
+ useUnmergedTree?.let { KakaoCompose.Override.useUnmergedTree = it }
+
base.evaluate()
- KakaoCompose.Global.semanticsProvider = oldSemanticsProvided
+
+ KakaoCompose.Global.semanticsProvider = preEvaluatedSemanticsProvided
+ KakaoCompose.Override.useUnmergedTree = preUseUnmergedTree
}
}
}
+
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index ba860780..28e70b84 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -1,20 +1,20 @@
[versions]
-gradleVersion = "8.1.4"
-kotlinVersion = "1.9.20"
+kotlin = "2.0.0"
+gradleVersion = "8.5.0"
dokkaVersion = "1.9.10"
-appcompatVersion = "1.6.1"
-espressoVersion = "3.5.1"
+appcompatVersion = "1.7.0"
+espressoVersion = "3.6.1"
junitVersion = "4.13.2"
-junitExtVersion = "1.1.5"
+junitExtVersion = "1.2.1"
multidexVersion = "2.0.1"
-materialVersion = "1.10.0"
-activityComposeVersion = "1.8.0"
+materialVersion = "1.12.0"
+activityComposeVersion = "1.9.0"
composeMaterialVersion = "1.3.1"
composeCompilerVersion = "1.5.4"
-androidxComposeBom = "2023.10.01"
+androidxComposeBom = "2024.06.00"
[libraries]
gradle = { module = "com.android.tools.build:gradle", version.ref = "gradleVersion" }
@@ -37,3 +37,8 @@ androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version
androidx-multidex-multidex = { group = "androidx.multidex", name = "multidex", version.ref = "multidexVersion" }
org-jetbrains-dokka-kotlinAsJavaPlugin = { group = "org.jetbrains.dokka", name = "kotlin-as-java-plugin", version.ref = "dokkaVersion" }
+
+[plugins]
+org-jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
+
+compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 81ff0b24..bb38750b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Sat Sep 18 21:53:15 PDT 2021
distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
diff --git a/sample/build.gradle.kts b/sample/build.gradle.kts
index 7b46a77a..32a158fa 100644
--- a/sample/build.gradle.kts
+++ b/sample/build.gradle.kts
@@ -1,6 +1,7 @@
plugins {
id("com.android.application")
kotlin("android")
+ alias(libs.plugins.compose.compiler)
}
android {