diff --git a/.cirrus.yml b/.cirrus.yml index 5ab30bfb4..d4ad0da78 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -6,7 +6,7 @@ check_android_30_task: skip: "changesIncludeOnly('NOTICE.txt', 'LICENSE.txt', '**.{md,html}')" container: - image: cirrusci/android-sdk:33 + image: ghcr.io/cirruslabs/flutter:latest kvm: true cpu: 8 memory: 24G @@ -74,7 +74,7 @@ check_android_33_task: skip: "changesIncludeOnly('NOTICE.txt', 'LICENSE.txt', '**.{md,html}')" container: - image: cirrusci/android-sdk:33 + image: ghcr.io/cirruslabs/flutter:latest kvm: true cpu: 8 memory: 24G @@ -138,7 +138,7 @@ check_android_21_task: skip: "changesIncludeOnly('NOTICE.txt', 'LICENSE.txt', '**.{md,html}')" container: - image: cirrusci/android-sdk:33 + image: ghcr.io/cirruslabs/flutter:latest kvm: true cpu: 8 memory: 24G diff --git a/.github/workflows/publication_maven.yml b/.github/workflows/publication_maven.yml index 008b562d7..af931cd62 100644 --- a/.github/workflows/publication_maven.yml +++ b/.github/workflows/publication_maven.yml @@ -30,7 +30,7 @@ jobs: uses: actions/setup-java@v2 with: distribution: 'adopt' - java-version: 11 + java-version: 17 - name: Tests run: make unit_tests - name: Assemble build diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index f63e2400e..c79b85e04 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -19,7 +19,7 @@ jobs: uses: actions/setup-java@v2 with: distribution: 'adopt' - java-version: 11 + java-version: 17 - name: Run static analysis run: make static_analysis - name: Run unit tests diff --git a/.github/workflows/snapshot_check.yml b/.github/workflows/snapshot_check.yml index ba63a0d63..1b2db4052 100644 --- a/.github/workflows/snapshot_check.yml +++ b/.github/workflows/snapshot_check.yml @@ -25,7 +25,7 @@ jobs: uses: actions/setup-java@v2 with: distribution: 'adopt' - java-version: 11 + java-version: 17 - name: Assemble projects run: ./gradlew -Pkaspresso.snapshotVersion=${{ inputs.kaspressoVersion }} assembleDebugAndroidTest - name: Check legal documents diff --git a/README.md b/README.md index 88d176493..7152ac173 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ The last version with Android Support libraries is: ```groovy dependencies { - androidTestImplementation 'com.kaspersky.android-components:kaspresso:1.0.1-support' + androidTestImplementation 'com.kaspersky.android-components:kaspresso:1.5.3' } ``` diff --git a/adb-server/adbserver-desktop/build.gradle.kts b/adb-server/adbserver-desktop/build.gradle.kts index 139270205..32992ddf8 100644 --- a/adb-server/adbserver-desktop/build.gradle.kts +++ b/adb-server/adbserver-desktop/build.gradle.kts @@ -25,4 +25,11 @@ tasks.withType().configureEach { } exclude("NOTICE.txt") exclude("LICENSE.txt") + + mustRunAfter( + ":adb-server:adb-server-desktop-device-connection:jar", + ":adb-server:adb-server-command-types:jar", + ":adb-server:adb-server-connection:jar", + ":adb-server:adb-server-common:jar" + ) } diff --git a/allure-support/build.gradle.kts b/allure-support/build.gradle.kts index dac03c48a..7fb3ac15e 100644 --- a/allure-support/build.gradle.kts +++ b/allure-support/build.gradle.kts @@ -5,6 +5,10 @@ plugins { id("convention.legal-documents") } +android { + namespace = "com.kaspersky.components.alluresupport" +} + publish { artifactId.set("kaspresso-allure-support") } diff --git a/allure-support/src/main/AndroidManifest.xml b/allure-support/src/main/AndroidManifest.xml index c88dccd5d..cc947c567 100644 --- a/allure-support/src/main/AndroidManifest.xml +++ b/allure-support/src/main/AndroidManifest.xml @@ -1 +1 @@ - + diff --git a/build-logic/android/src/main/kotlin/convention.android-app.gradle.kts b/build-logic/android/src/main/kotlin/convention.android-app.gradle.kts index b9d89b62f..8beff4844 100644 --- a/build-logic/android/src/main/kotlin/convention.android-app.gradle.kts +++ b/build-logic/android/src/main/kotlin/convention.android-app.gradle.kts @@ -1,8 +1,8 @@ plugins { id("com.android.application") - id("kotlin-android") id("convention.kotlin-base") id("convention.android-base") + kotlin("android") } android { @@ -29,7 +29,7 @@ android { viewBinding = true // for the samples } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8.toString() + kotlin { + jvmToolchain(JavaVersion.VERSION_17.majorVersion.toInt()) } } diff --git a/build-logic/android/src/main/kotlin/convention.android-base.gradle.kts b/build-logic/android/src/main/kotlin/convention.android-base.gradle.kts index 8787d65f5..f0bcf38ae 100644 --- a/build-logic/android/src/main/kotlin/convention.android-base.gradle.kts +++ b/build-logic/android/src/main/kotlin/convention.android-base.gradle.kts @@ -3,11 +3,11 @@ import com.android.build.gradle.BaseExtension @Suppress("MagicNumber") configure { - compileSdkVersion(33) + compileSdkVersion(34) compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } defaultConfig { @@ -16,9 +16,9 @@ configure { } packagingOptions { - merges.apply { - add("META-INF/LGPL2.1") - add("META-INF/AL2.0") + resources { + merges.add("META-INF/LGPL2.1") + merges.add("META-INF/AL2.0") } } diff --git a/build-logic/android/src/main/kotlin/convention.android-library.gradle.kts b/build-logic/android/src/main/kotlin/convention.android-library.gradle.kts index 7adcf71ac..c2d5b2d3b 100644 --- a/build-logic/android/src/main/kotlin/convention.android-library.gradle.kts +++ b/build-logic/android/src/main/kotlin/convention.android-library.gradle.kts @@ -1,8 +1,8 @@ plugins { id("com.android.library") - id("kotlin-android") id("convention.kotlin-base") id("convention.android-base") + kotlin("android") } androidComponents { diff --git a/build-logic/kotlin/src/main/kotlin/convention.kotlin-base.gradle.kts b/build-logic/kotlin/src/main/kotlin/convention.kotlin-base.gradle.kts index 7e6076e55..e03059f5d 100644 --- a/build-logic/kotlin/src/main/kotlin/convention.kotlin-base.gradle.kts +++ b/build-logic/kotlin/src/main/kotlin/convention.kotlin-base.gradle.kts @@ -1,11 +1,11 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -val kotlinLanguageVersion = "1.7" +val kotlinLanguageVersion = "1.9" tasks.withType().configureEach { kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8.toString() + jvmTarget = JavaVersion.VERSION_17.toString() // TODO: fix all warnings before // allWarningsAsErrors = true diff --git a/build-logic/settings.gradle.kts b/build-logic/settings.gradle.kts index 9606505a4..b884978f2 100644 --- a/build-logic/settings.gradle.kts +++ b/build-logic/settings.gradle.kts @@ -1,5 +1,3 @@ -enableFeaturePreview("VERSION_CATALOGS") - rootProject.name = "build-logic" include("android") diff --git a/build.gradle.kts b/build.gradle.kts index 4d901ee6a..6073dce8d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -33,7 +33,7 @@ val detektAll = tasks.register("detektAll") { exclude("**/resources/**") exclude("**/build/**") reports { - xml.enabled = false - html.enabled = false + xml.required.set(false) + html.required.set(false) } } diff --git a/compose-support/build.gradle.kts b/compose-support/build.gradle.kts index 6218ed373..0f8f042fb 100644 --- a/compose-support/build.gradle.kts +++ b/compose-support/build.gradle.kts @@ -5,6 +5,10 @@ plugins { id("convention.legal-documents") } +android { + namespace = "com.kaspersky.components.composesupport" +} + publish { artifactId.set("kaspresso-compose-support") } diff --git a/compose-support/src/main/AndroidManifest.xml b/compose-support/src/main/AndroidManifest.xml index 145e16dde..cc947c567 100644 --- a/compose-support/src/main/AndroidManifest.xml +++ b/compose-support/src/main/AndroidManifest.xml @@ -1 +1 @@ - + diff --git a/docs/index.en.md b/docs/index.en.md index d5d66ca53..759658750 100644 --- a/docs/index.en.md +++ b/docs/index.en.md @@ -71,7 +71,7 @@ The last version with Android Support libraries is: ```groovy dependencies { - androidTestImplementation 'com.kaspersky.android-components:kaspresso:1.0.1-support' + androidTestImplementation 'com.kaspersky.android-components:kaspresso:1.5.3' } ``` diff --git a/docs/index.ru.md b/docs/index.ru.md index 0698cd709..def6ac1e5 100644 --- a/docs/index.ru.md +++ b/docs/index.ru.md @@ -73,7 +73,7 @@ dependencies { ```groovy dependencies { - androidTestImplementation 'com.kaspersky.android-components:kaspresso:1.0.1-support' + androidTestImplementation 'com.kaspersky.android-components:kaspresso:1.5.3' } ``` diff --git a/gradle.properties b/gradle.properties index 3606591a3..6a169eab5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true org.gradle.caching=true @@ -7,3 +7,4 @@ kotlin.code.style=official android.useAndroidX = true kaspresso.version=1.5.3 +kaspresso.snapshotVersion=1.5.3-SNAPSHOT \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 29edeec3d..0a13a9a49 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,13 +1,13 @@ [versions] -kotlin = "1.7.10" +kotlin = "1.9.20" detekt = "1.21.0" espresso = "3.5.1" kakao = "3.4.1" kakaoCompose = "0.2.3" kakaoExtClicks = "1.0.0" allure = "2.4.0" -compose = "1.3.1" -composeCompiler = "1.3.1" +compose = "1.5.4" +composeCompiler = "1.5.4" activityCompose = "1.4.0" androidXTest = "1.5.0" testOrchestrator = "1.4.2" @@ -17,8 +17,8 @@ thirdPartyReport = "0.18.956" [libraries] # plugins kotlinPlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } -androidPlugin = "com.android.tools.build:gradle:7.2.2" -versionsPlugin = "com.github.ben-manes:gradle-versions-plugin:0.39.0" +androidPlugin = "com.android.tools.build:gradle:8.1.4" +versionsPlugin = "com.github.ben-manes:gradle-versions-plugin:0.50.0" thirdPartyReportPlugin = { module = "com.kaspersky.gradle:third-party-report", version.ref = "thirdPartyReport" } airPlugin = { module = "com.kaspersky.gradle:air", version.ref = "thirdPartyReport" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ae04661ee..59bc51a20 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/kaspresso/build.gradle.kts b/kaspresso/build.gradle.kts index 54f6d9237..79e4093f5 100644 --- a/kaspresso/build.gradle.kts +++ b/kaspresso/build.gradle.kts @@ -5,6 +5,10 @@ plugins { id("convention.legal-documents") } +android { + namespace = "com.kaspersky.kaspresso" +} + publish { artifactId.set("kaspresso") } diff --git a/kaspresso/src/main/AndroidManifest.xml b/kaspresso/src/main/AndroidManifest.xml index 81bbfb9dc..c57e2769b 100644 --- a/kaspresso/src/main/AndroidManifest.xml +++ b/kaspresso/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - + diff --git a/kautomator/build.gradle.kts b/kautomator/build.gradle.kts index 936b5afa5..93c641a10 100644 --- a/kautomator/build.gradle.kts +++ b/kautomator/build.gradle.kts @@ -5,6 +5,10 @@ plugins { id("convention.legal-documents") } +android { + namespace = "com.kaspersky.components.kautomator" +} + publish { artifactId.set("kautomator") } diff --git a/kautomator/src/main/AndroidManifest.xml b/kautomator/src/main/AndroidManifest.xml index f83efed3b..cc947c567 100644 --- a/kautomator/src/main/AndroidManifest.xml +++ b/kautomator/src/main/AndroidManifest.xml @@ -1 +1 @@ - + diff --git a/kautomator/src/main/kotlin/com/kaspersky/components/kautomator/component/common/actions/UiScrollableActions.kt b/kautomator/src/main/kotlin/com/kaspersky/components/kautomator/component/common/actions/UiScrollableActions.kt index dcb9be7ca..e35f72e71 100644 --- a/kautomator/src/main/kotlin/com/kaspersky/components/kautomator/component/common/actions/UiScrollableActions.kt +++ b/kautomator/src/main/kotlin/com/kaspersky/components/kautomator/component/common/actions/UiScrollableActions.kt @@ -33,7 +33,7 @@ interface UiScrollableActions : UiBaseActions { } while (scrollable.scrollForward()) do { if (findObject(to.view.interaction.selector.bySelector) != null) - return@perform + return@perform } while (scrollable.scrollBackward()) to.isDisplayed() } diff --git a/samples/adbserver-sample/build.gradle.kts b/samples/adbserver-sample/build.gradle.kts index 95453b4bc..0c2b396ea 100644 --- a/samples/adbserver-sample/build.gradle.kts +++ b/samples/adbserver-sample/build.gradle.kts @@ -3,6 +3,7 @@ plugins { } android { + namespace = "com.kaspersky.adbserver.sample" defaultConfig { applicationId = "com.kaspersky.adbserver.sample" } diff --git a/samples/adbserver-sample/src/main/AndroidManifest.xml b/samples/adbserver-sample/src/main/AndroidManifest.xml index 81bd5b777..f6689ea99 100644 --- a/samples/adbserver-sample/src/main/AndroidManifest.xml +++ b/samples/adbserver-sample/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ + xmlns:tools="http://schemas.android.com/tools"> diff --git a/samples/kaspresso-allure-support-sample/build.gradle.kts b/samples/kaspresso-allure-support-sample/build.gradle.kts index 007cb3e9e..7c39238d2 100644 --- a/samples/kaspresso-allure-support-sample/build.gradle.kts +++ b/samples/kaspresso-allure-support-sample/build.gradle.kts @@ -3,6 +3,7 @@ plugins { } android { + namespace = "com.kaspersky.kaspresso.alluresupport.sample" defaultConfig { applicationId = "com.kaspersky.kaspresso.alluresupport.sample" testInstrumentationRunner = "com.kaspersky.kaspresso.runner.KaspressoRunner" diff --git a/samples/kaspresso-allure-support-sample/src/main/AndroidManifest.xml b/samples/kaspresso-allure-support-sample/src/main/AndroidManifest.xml index 71d91183d..3d542e133 100644 --- a/samples/kaspresso-allure-support-sample/src/main/AndroidManifest.xml +++ b/samples/kaspresso-allure-support-sample/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ + xmlns:tools="http://schemas.android.com/tools"> + xmlns:tools="http://schemas.android.com/tools"> + xmlns:tools="http://schemas.android.com/tools"> + + diff --git a/samples/kaspresso-sample/src/main/assets/index.html b/samples/kaspresso-sample/src/main/assets/index.html index 6b87fc0dd..de0d1f468 100644 --- a/samples/kaspresso-sample/src/main/assets/index.html +++ b/samples/kaspresso-sample/src/main/assets/index.html @@ -214,7 +214,7 @@

Integration

If you are still using the old Android Support libraries, we strongly recommend to migrate to AndroidX.

The last version with Android Support libraries is:

dependencies {
-            androidTestImplementation 'com.kaspersky.android-components:kaspresso:1.0.1-support'
+            androidTestImplementation 'com.kaspersky.android-components:kaspresso:1.5.3'
         }
         

Samples

diff --git a/samples/kautomator-sample-app-upgrade/build.gradle.kts b/samples/kautomator-sample-app-upgrade/build.gradle.kts index fe0c2d170..229b5f8b9 100644 --- a/samples/kautomator-sample-app-upgrade/build.gradle.kts +++ b/samples/kautomator-sample-app-upgrade/build.gradle.kts @@ -3,6 +3,7 @@ plugins { } android { + namespace = "com.kaspersky.kaspresso.upgradesample" defaultConfig { applicationId = "com.kaspersky.kaspresso.sample_upgrade_tests" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" diff --git a/samples/kautomator-sample-app-upgrade/src/main/AndroidManifest.xml b/samples/kautomator-sample-app-upgrade/src/main/AndroidManifest.xml index f5da3d2b6..2ab6fda58 100644 --- a/samples/kautomator-sample-app-upgrade/src/main/AndroidManifest.xml +++ b/samples/kautomator-sample-app-upgrade/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ + xmlns:tools="http://schemas.android.com/tools"> diff --git a/samples/kautomator-sample/build.gradle.kts b/samples/kautomator-sample/build.gradle.kts index 603d32972..285b69f3f 100644 --- a/samples/kautomator-sample/build.gradle.kts +++ b/samples/kautomator-sample/build.gradle.kts @@ -3,6 +3,7 @@ plugins { } android { + namespace = "com.kaspersky.kaspresso.kautomatorsample" defaultConfig { applicationId = "com.kaspersky.kaspresso.kautomatorsample" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" diff --git a/samples/kautomator-sample/src/main/AndroidManifest.xml b/samples/kautomator-sample/src/main/AndroidManifest.xml index c87a42816..50033e6d4 100644 --- a/samples/kautomator-sample/src/main/AndroidManifest.xml +++ b/samples/kautomator-sample/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ + xmlns:tools="http://schemas.android.com/tools"> diff --git a/settings.gradle.kts b/settings.gradle.kts index f334765f9..6a399b679 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,6 +1,5 @@ rootProject.name = "kaspresso-framework" -enableFeaturePreview("VERSION_CATALOGS") enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") pluginManagement { diff --git a/tutorial/build.gradle.kts b/tutorial/build.gradle.kts index e1d32397e..e49421707 100644 --- a/tutorial/build.gradle.kts +++ b/tutorial/build.gradle.kts @@ -3,6 +3,7 @@ plugins { } android { + namespace = "com.kaspersky.kaspresso.tutorial" defaultConfig { minSdk = 21 @@ -10,10 +11,11 @@ android { testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunnerArguments["clearPackageData"] = "true" } - - packagingOptions { - exclude("META-INF/LICENSE.md") - exclude("META-INF/LICENSE-notice.md") + packaging { + resources { + excludes.add("META-INF/LICENSE.md") + excludes.add("META-INF/LICENSE-notice.md") + } } testOptions { diff --git a/tutorial/src/main/AndroidManifest.xml b/tutorial/src/main/AndroidManifest.xml index 8b552d77c..914c5ce26 100644 --- a/tutorial/src/main/AndroidManifest.xml +++ b/tutorial/src/main/AndroidManifest.xml @@ -1,7 +1,10 @@ + xmlns:tools="http://schemas.android.com/tools"> + +