From 33ed33799ead2590bd0740b016e9926c4f70bd28 Mon Sep 17 00:00:00 2001 From: Nikolay Kochetkov Date: Thu, 14 Sep 2023 11:30:42 +0200 Subject: [PATCH] Kotlin 1.9.10, AGP8 --- .github/workflows/check.yml | 4 +- .github/workflows/release.yaml | 4 +- .idea/compiler.xml | 2 +- .idea/kotlinc.xml | 6 +++ .idea/misc.xml | 2 +- appupdatewrapper/build.gradle | 40 +++++++------------ .../appupdatewrapper/FlexibleUpdateKtTest.kt | 8 ++-- .../appupdatewrapper/ImmediateUpdateKtTest.kt | 6 +-- build.gradle | 16 ++++---- gradle.properties | 5 ++- gradle/wrapper/gradle-wrapper.properties | 2 +- sample/build.gradle | 10 ++--- testapp/build.gradle | 9 ++--- 13 files changed, 56 insertions(+), 58 deletions(-) create mode 100644 .idea/kotlinc.xml diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 80b9bc4..d5b77ef 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -16,10 +16,10 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 - - name: set up JDK 1.11 + - name: set up JDK 17 uses: actions/setup-java@v1 with: - java-version: 1.11 + java-version: 17 - name: Cache uses: actions/cache@v2 with: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index bf24ee8..c2b808c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -14,10 +14,10 @@ jobs: with: fetch-depth: 0 ref: refs/remotes/origin/master - - name: set up JDK 1.11 + - name: set up JDK 17 uses: actions/setup-java@v1 with: - java-version: 1.11 + java-version: 17 - name: Cache uses: actions/cache@v2 with: diff --git a/.idea/compiler.xml b/.idea/compiler.xml index fb7f4a8..b589d56 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..f8467b4 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 2a0bb79..b4fea88 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -6,7 +6,7 @@ - + diff --git a/appupdatewrapper/build.gradle b/appupdatewrapper/build.gradle index cda3d3d..b8bf097 100644 --- a/appupdatewrapper/build.gradle +++ b/appupdatewrapper/build.gradle @@ -22,17 +22,16 @@ kapt { } android { - compileSdkVersion androidCompileSdkVersion - buildToolsVersion androidBuildToolsVersion + compileSdk androidCompileSdkVersion testOptions.unitTests.includeAndroidResources = true compileOptions { - sourceCompatibility = 1.8 - targetCompatibility = 1.8 + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = "1.8" + jvmTarget = "17" } defaultConfig { @@ -52,6 +51,13 @@ android { } } namespace 'com.motorro.appupdatewrapper' + + publishing { + singleVariant('release') { + withSourcesJar() + withJavadocJar() + } + } } dependencies { @@ -59,8 +65,8 @@ dependencies { api "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" - api 'androidx.core:core-ktx:1.10.1' - api 'androidx.lifecycle:lifecycle-common:2.6.1' + api 'androidx.core:core-ktx:1.12.0' + api 'androidx.lifecycle:lifecycle-common:2.6.2' api 'com.google.android.play:core:1.10.3' implementation 'com.jakewharton.timber:timber:5.0.1' @@ -71,8 +77,8 @@ dependencies { testImplementation 'junit:junit:4.13.2' testImplementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version" testImplementation 'com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0' - testImplementation 'org.robolectric:robolectric:4.8.1' - testImplementation 'androidx.lifecycle:lifecycle-runtime-testing:2.6.1' + testImplementation 'org.robolectric:robolectric:4.10.3' + testImplementation 'androidx.lifecycle:lifecycle-runtime-testing:2.6.2' } dokkaJavadoc.configure { @@ -84,20 +90,6 @@ dokkaJavadoc.configure { } } -task javadocJar(type: Jar, dependsOn: dokkaJavadoc) { - archiveClassifier.set('javadoc') - from "$buildDir/javadoc" -} - -task sourcesJar(type: Jar) { - archiveClassifier.set('sources') - from android.sourceSets.main.java.source -} - -artifacts { - archives sourcesJar, javadocJar -} - def libId = 'appupdatewrapper' def libName = 'appupdatewrapper' def libDesc = 'A wrapper for Android `AppUpdateManager` to encapsulate update workflow.' @@ -108,8 +100,6 @@ afterEvaluate { // Creates a Maven publication called "release". release(MavenPublication) { from components.release - artifact sourcesJar - artifact javadocJar groupId = rootProject.group artifactId = libId version = rootProject.version diff --git a/appupdatewrapper/src/test/java/com/motorro/appupdatewrapper/FlexibleUpdateKtTest.kt b/appupdatewrapper/src/test/java/com/motorro/appupdatewrapper/FlexibleUpdateKtTest.kt index affc4db..9a405be 100644 --- a/appupdatewrapper/src/test/java/com/motorro/appupdatewrapper/FlexibleUpdateKtTest.kt +++ b/appupdatewrapper/src/test/java/com/motorro/appupdatewrapper/FlexibleUpdateKtTest.kt @@ -17,7 +17,7 @@ package com.motorro.appupdatewrapper import android.app.Activity import android.os.Looper.getMainLooper -import androidx.test.core.app.ActivityScenario.launch +import androidx.test.core.app.ActivityScenario.launchActivityForResult import androidx.test.ext.junit.runners.AndroidJUnit4 import com.google.android.play.core.appupdate.testing.FakeAppUpdateManager import com.motorro.appupdatewrapper.AppUpdateWrapper.Companion.REQUEST_CODE_UPDATE @@ -49,7 +49,7 @@ class FlexibleUpdateKtTest: TestAppTest() { @LooperMode(LooperMode.Mode.PAUSED) fun startsFlexibleUpdateIfAvailable() { lateinit var updateManager: FakeAppUpdateManager - val scenario = launch(TestUpdateActivity::class.java) + val scenario = launchActivityForResult(TestUpdateActivity::class.java) scenario.onActivity { updateManager = FakeAppUpdateManager(it).apply { setUpdateAvailable(100500) @@ -77,7 +77,7 @@ class FlexibleUpdateKtTest: TestAppTest() { @LooperMode(LooperMode.Mode.PAUSED) fun cancelsUpdateOnUserReject() { lateinit var updateManager: FakeAppUpdateManager - val scenario = launch(TestUpdateActivity::class.java) + val scenario = launchActivityForResult(TestUpdateActivity::class.java) scenario.onActivity { updateManager = FakeAppUpdateManager(it).apply { setUpdateAvailable(100500) @@ -102,7 +102,7 @@ class FlexibleUpdateKtTest: TestAppTest() { fun willNotAskUpdateConsentIfAlreadyCancelled() { whenever(flowBreaker.isEnoughTimePassedSinceLatestCancel()).thenReturn(false) lateinit var updateManager: FakeAppUpdateManager - val scenario = launch(TestUpdateActivity::class.java) + val scenario = launchActivityForResult(TestUpdateActivity::class.java) scenario.onActivity { updateManager = FakeAppUpdateManager(it).apply { setUpdateAvailable(100500) diff --git a/appupdatewrapper/src/test/java/com/motorro/appupdatewrapper/ImmediateUpdateKtTest.kt b/appupdatewrapper/src/test/java/com/motorro/appupdatewrapper/ImmediateUpdateKtTest.kt index 31b3db7..5e115a5 100644 --- a/appupdatewrapper/src/test/java/com/motorro/appupdatewrapper/ImmediateUpdateKtTest.kt +++ b/appupdatewrapper/src/test/java/com/motorro/appupdatewrapper/ImmediateUpdateKtTest.kt @@ -17,7 +17,7 @@ package com.motorro.appupdatewrapper import android.app.Activity import android.os.Looper.getMainLooper -import androidx.test.core.app.ActivityScenario.launch +import androidx.test.core.app.ActivityScenario.launchActivityForResult import androidx.test.ext.junit.runners.AndroidJUnit4 import com.google.android.play.core.appupdate.testing.FakeAppUpdateManager import com.motorro.appupdatewrapper.AppUpdateWrapper.Companion.REQUEST_CODE_UPDATE @@ -35,7 +35,7 @@ class ImmediateUpdateKtTest: TestAppTest() { @LooperMode(LooperMode.Mode.PAUSED) fun startsImmediateUpdateIfAvailable() { lateinit var updateManager: FakeAppUpdateManager - val scenario = launch(TestUpdateActivity::class.java) + val scenario = launchActivityForResult(TestUpdateActivity::class.java) scenario.onActivity { updateManager = FakeAppUpdateManager(it).apply { setUpdateAvailable(100500) @@ -55,7 +55,7 @@ class ImmediateUpdateKtTest: TestAppTest() { @LooperMode(LooperMode.Mode.PAUSED) fun failsIfUpdateIsNotAvailable() { lateinit var updateManager: FakeAppUpdateManager - val scenario = launch(TestUpdateActivity::class.java) + val scenario = launchActivityForResult(TestUpdateActivity::class.java) scenario.onActivity { updateManager = FakeAppUpdateManager(it).apply { setUpdateNotAvailable() diff --git a/build.gradle b/build.gradle index 0cb2854..924181d 100644 --- a/build.gradle +++ b/build.gradle @@ -4,8 +4,8 @@ apply from: 'gradle/maven-publish-config.gradle' apply plugin: 'io.github.gradle-nexus.publish-plugin' buildscript { - ext.kotlin_version = '1.8.21' - ext.dokka_version = '1.8.10' + ext.kotlin_version = '1.9.10' + ext.dokka_version = '1.9.0' repositories { google() mavenCentral() @@ -21,7 +21,7 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.android.tools.build:gradle:8.1.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'org.ajoberstar.grgit:grgit-gradle:4.1.1' classpath "org.jetbrains.dokka:dokka-gradle-plugin:$dokka_version" @@ -32,10 +32,10 @@ buildscript { ext { // Android - androidBuildToolsVersion = '33.0.0' + androidBuildToolsVersion = '34.0.0' androidMinSdkVersion = 21 - androidTargetSdkVersion = 33 - androidCompileSdkVersion = 33 + androidTargetSdkVersion = 34 + androidCompileSdkVersion = 34 versionName = project.version versionCode = buildVersionCode() @@ -60,11 +60,11 @@ allprojects { } } -task clean(type: Delete) { +tasks.register('clean', Delete) { delete rootProject.buildDir } -task displayVersion(type: Task, group: 'documentation') { +tasks.register('displayVersion', Task) { description 'Display application version name' doLast { println("Project version: ${project.version}") diff --git a/gradle.properties b/gradle.properties index 3611a45..3544fd6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -org.gradle.jvmargs=-Xmx1536m +org.gradle.jvmargs=-Xmx2048M -Dfile.encoding=UTF-8 -Dkotlin.daemon.jvm.options\="-Xmx2048M" org.gradle.parallel=true org.gradle.caching=true org.gradle.configureondemand=true @@ -14,3 +14,6 @@ kotlin.code.style=official # Kotlin annotation processing config kapt.include.compile.classpath=false kapt.incremental.apt=true +android.defaults.buildfeatures.buildconfig=true +android.nonTransitiveRClass=false +android.nonFinalResIds=false diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8049c68..da1db5f 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-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/sample/build.gradle b/sample/build.gradle index e298ba2..5070efa 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -4,7 +4,7 @@ plugins { } android { - compileSdkVersion androidCompileSdkVersion + compileSdk androidCompileSdkVersion defaultConfig { applicationId "com.motorro.appupdatewrapper.sample" @@ -31,11 +31,11 @@ android { } } compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = '1.8' + jvmTarget = '17' } buildFeatures { viewBinding true @@ -46,7 +46,7 @@ android { dependencies { implementation project(":appupdatewrapper") implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation 'androidx.core:core-ktx:1.10.1' + implementation 'androidx.core:core-ktx:1.12.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.9.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' diff --git a/testapp/build.gradle b/testapp/build.gradle index 625f500..83191bc 100644 --- a/testapp/build.gradle +++ b/testapp/build.gradle @@ -7,17 +7,16 @@ repositories { } android { - compileSdkVersion androidCompileSdkVersion - buildToolsVersion androidBuildToolsVersion + compileSdk androidCompileSdkVersion testOptions.unitTests.includeAndroidResources = true compileOptions { - sourceCompatibility = 1.8 - targetCompatibility = 1.8 + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = "1.8" + jvmTarget = "17" } defaultConfig {