Skip to content

Commit 685bd46

Browse files
committed
Bump Kotlin, JDK, Compose, Gradle, etc.
1 parent 6cf61b1 commit 685bd46

File tree

34 files changed

+205
-195
lines changed

34 files changed

+205
-195
lines changed

.github/workflows/android.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
strategy:
1313
matrix:
1414
# TODO Add 9, 10, 11, 12, and 13 after Kotlin 1.3.60
15-
java_version: [11]
15+
java_version: [17]
1616
steps:
1717
- name: Checkout
1818
uses: actions/checkout@v2

android/build.gradle renamed to android/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ plugins {
1717
alias(libs.plugins.android.application) apply false
1818
alias(libs.plugins.android.library) apply false
1919
alias(libs.plugins.kotlin.android) apply false
20+
alias(libs.plugins.kotlin.symbol.processor) apply false
2021
alias(libs.plugins.kotlin.kapt) apply false
22+
alias(libs.plugins.compose.compiler) apply false
2123
alias(libs.plugins.maven.publish) apply false
2224
alias(libs.plugins.errorprone) apply false
2325
alias(libs.plugins.nullaway) apply false

android/conventions/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
plugins {
1717
`kotlin-dsl`
18-
`kotlin-dsl-precompiled-script-plugins`
18+
alias(libs.plugins.spotless)
1919
}
2020

2121
repositories {

android/conventions/src/main/kotlin/Extensions.kt

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,34 +14,25 @@
1414
* limitations under the License.
1515
*/
1616
import com.android.build.gradle.AbstractAppExtension
17-
import com.android.build.gradle.LibraryExtension
18-
import com.android.build.gradle.TestedExtension
1917
import com.android.build.gradle.api.BaseVariant
2018
import net.ltgt.gradle.errorprone.CheckSeverity
2119
import net.ltgt.gradle.errorprone.errorprone
2220
import net.ltgt.gradle.nullaway.nullaway
2321

2422
fun AbstractAppExtension.errorprone() {
2523
applicationVariants.configureEach { errorprone() }
26-
testErrorprone()
27-
}
28-
29-
fun LibraryExtension.errorprone() {
30-
libraryVariants.configureEach { errorprone() }
31-
testErrorprone()
32-
}
33-
34-
fun TestedExtension.testErrorprone() {
3524
testVariants.configureEach { errorprone() }
3625
unitTestVariants.configureEach { errorprone() }
3726
}
3827

39-
fun BaseVariant.errorprone() {
28+
private fun BaseVariant.errorprone() {
4029
javaCompileProvider.configure {
41-
options.errorprone.nullaway {
42-
severity.set(CheckSeverity.ERROR)
43-
annotatedPackages.add("com.uber")
30+
options.errorprone {
31+
nullaway {
32+
severity.set(CheckSeverity.ERROR)
33+
annotatedPackages.add("com.uber")
34+
}
35+
excludedPaths.set(".*/build/generated/.*")
4436
}
45-
options.errorprone.excludedPaths.set(".*/build/generated/.*")
4637
}
4738
}

android/conventions/src/main/kotlin/ribs.kotlin-android-application-conventions.gradle.kts

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,40 +24,36 @@ plugins {
2424
}
2525

2626
kotlin {
27-
jvmToolchain(11)
27+
jvmToolchain(17)
2828
}
2929

3030
android {
31-
compileSdk = 33
32-
31+
compileSdk = 34
3332
defaultConfig {
3433
minSdk = 21
35-
targetSdk = 28
34+
targetSdk = 34
3635
versionCode = 1
3736
versionName = "1.0"
3837
}
39-
40-
compileOptions {
41-
sourceCompatibility = JavaVersion.VERSION_11
42-
targetCompatibility = JavaVersion.VERSION_11
38+
buildFeatures {
39+
buildConfig = true
4340
}
44-
4541
// No need for lint. Those are just tutorials.
4642
lint {
4743
abortOnError = false
4844
quiet = true
4945
}
50-
5146
buildTypes {
5247
debug {
5348
matchingFallbacks.add("release")
5449
}
5550
}
56-
57-
sourceSets {
58-
getByName("main").java.srcDir("src/main/kotlin")
59-
getByName("test").java.srcDir("src/test/kotlin")
60-
getByName("androidTest").java.srcDir("src/androidTest/kotlin")
51+
compileOptions {
52+
sourceCompatibility = JavaVersion.VERSION_11
53+
targetCompatibility = JavaVersion.VERSION_11
54+
}
55+
kotlinOptions {
56+
jvmTarget = "11"
6157
}
6258
}
6359

@@ -71,9 +67,6 @@ androidComponents {
7167

7268
tasks.withType<KotlinCompile>().configureEach {
7369
compilerOptions {
74-
freeCompilerArgs.addAll(
75-
"-Xjvm-default=all",
76-
"-opt-in=kotlin.RequiresOptIn",
77-
)
70+
freeCompilerArgs.add("-Xjvm-default=all")
7871
}
7972
}

android/conventions/src/main/kotlin/ribs.kotlin-android-library-conventions.gradle.kts

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,30 +24,28 @@ plugins {
2424
}
2525

2626
kotlin {
27-
jvmToolchain(8)
27+
jvmToolchain(17)
28+
explicitApi()
2829
}
2930

3031
android {
31-
compileSdk = 33
32+
compileSdk = 34
3233

3334
defaultConfig {
3435
minSdk = 21
3536
}
3637

37-
// This can be removed on AGP 8.1.0-alpha09 onwards, since we are using JVM Toolchain
3838
compileOptions {
39-
sourceCompatibility = JavaVersion.VERSION_1_8
40-
targetCompatibility = JavaVersion.VERSION_1_8
39+
sourceCompatibility = JavaVersion.VERSION_11
40+
targetCompatibility = JavaVersion.VERSION_11
4141
}
4242

43-
buildFeatures {
44-
buildConfig = false
43+
kotlinOptions {
44+
jvmTarget = "11"
4545
}
4646

47-
sourceSets {
48-
getByName("main").java.srcDir("src/main/kotlin")
49-
getByName("test").java.srcDir("src/test/kotlin")
50-
getByName("androidTest").java.srcDir("src/androidTest/kotlin")
47+
buildFeatures {
48+
buildConfig = false
5149
}
5250

5351
testOptions {
@@ -67,10 +65,6 @@ androidComponents {
6765

6866
tasks.withType<KotlinCompile>().configureEach {
6967
compilerOptions {
70-
freeCompilerArgs.addAll(
71-
"-Xexplicit-api=warning",
72-
"-Xjvm-default=all",
73-
"-opt-in=kotlin.RequiresOptIn",
74-
)
68+
freeCompilerArgs.add("-Xjvm-default=all")
7569
}
7670
}

android/conventions/src/main/kotlin/ribs.kotlin-library-conventions.gradle.kts

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,29 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
17+
import org.jetbrains.kotlin.gradle.dsl.jvm.JvmTargetValidationMode
18+
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
19+
1620
plugins {
1721
kotlin("jvm")
1822
id("ribs.spotless-convention")
1923
}
2024

21-
kotlin {
22-
jvmToolchain(8)
23-
explicitApi()
25+
java {
26+
sourceCompatibility = JavaVersion.VERSION_11
27+
targetCompatibility = JavaVersion.VERSION_11
2428
}
2529

26-
tasks.named("compileKotlin", org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask::class.java) {
30+
kotlin {
31+
jvmToolchain(17)
32+
explicitApi()
2733
compilerOptions {
2834
freeCompilerArgs.add("-Xjvm-default=all")
35+
jvmTarget = JvmTarget.JVM_11
2936
}
3037
}
38+
39+
tasks.withType<KotlinJvmCompile>().configureEach {
40+
jvmTargetValidationMode = JvmTargetValidationMode.WARNING
41+
}

android/demos/compose/build.gradle

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
22
id("ribs.kotlin-android-application-conventions")
3-
alias(libs.plugins.kotlin.kapt)
3+
alias(libs.plugins.compose.compiler)
4+
alias(libs.plugins.kotlin.symbol.processor)
45
}
56

67
android {
@@ -12,13 +13,14 @@ android {
1213
buildFeatures {
1314
compose true
1415
}
15-
composeOptions {
16-
kotlinCompilerExtensionVersion libs.versions.compose.compiler.get()
17-
}
1816
}
1917

2018
dependencies {
21-
kapt(libs.motif.compiler)
19+
def composeBom = platform(libs.compose.bom)
20+
implementation(composeBom)
21+
androidTestImplementation(composeBom)
22+
23+
ksp(libs.motif.compiler)
2224
implementation(project(":libraries:rib-android"))
2325
implementation(project(":libraries:rib-android-compose"))
2426
implementation(project(":libraries:rib-coroutines"))

android/demos/memory-leaks/src/main/java/com/uber/rib/SampleApplication.java

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,47 +16,39 @@
1616
package com.uber.rib;
1717

1818
import android.app.Application;
19-
import com.squareup.leakcanary.LeakCanary;
20-
import com.squareup.leakcanary.RefWatcher;
2119
import com.uber.rib.core.ActivityDelegate;
2220
import com.uber.rib.core.HasActivityDelegate;
2321
import com.uber.rib.core.RibRefWatcher;
24-
import java.util.concurrent.TimeUnit;
22+
import leakcanary.AppWatcher;
23+
import org.jetbrains.annotations.NotNull;
2524

26-
public class SampleApplication extends Application implements HasActivityDelegate {
25+
public class SampleApplication extends Application
26+
implements HasActivityDelegate, RibRefWatcher.ReferenceWatcher {
2727

2828
private SampleActivityDelegate activityDelegate;
2929

3030
@Override
3131
public void onCreate() {
3232
activityDelegate = new SampleActivityDelegate();
3333
super.onCreate();
34-
if (!LeakCanary.isInAnalyzerProcess(this)) {
35-
// This process is dedicated to LeakCanary for heap analysis. You should not init your app in
36-
// this process.
37-
installLeakCanary();
38-
}
34+
installLeakCanary();
3935
}
4036

4137
/** Install leak canary for both activities and RIBs. */
4238
private void installLeakCanary() {
43-
final RefWatcher refWatcher =
44-
LeakCanary.refWatcher(this).watchDelay(2, TimeUnit.SECONDS).buildAndInstall();
45-
LeakCanary.install(this);
46-
RibRefWatcher.getInstance()
47-
.setReferenceWatcher(
48-
new RibRefWatcher.ReferenceWatcher() {
49-
@Override
50-
public void watch(Object object) {
51-
refWatcher.watch(object);
52-
}
39+
final RibRefWatcher watcher = RibRefWatcher.getInstance();
40+
watcher.setReferenceWatcher(this);
41+
watcher.enableLeakCanary();
42+
}
5343

54-
@Override
55-
public void logBreadcrumb(String eventType, String data, String parent) {
56-
// Ignore for now. Useful for collecting production analytics.
57-
}
58-
});
59-
RibRefWatcher.getInstance().enableLeakCanary();
44+
@Override
45+
public void watch(Object objectToWatch) {
46+
AppWatcher.INSTANCE.getObjectWatcher().watch(objectToWatch);
47+
}
48+
49+
@Override
50+
public void logBreadcrumb(String eventType, @NotNull String data, @NotNull String parent) {
51+
// Ignore for now. Useful for collecting production analytics.
6052
}
6153

6254
@Override

android/demos/rib-workers/build.gradle

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
plugins {
22
id("ribs.kotlin-android-application-errorprone-conventions")
3+
alias(libs.plugins.compose.compiler)
4+
alias(libs.plugins.kotlin.symbol.processor)
35
}
46

57
android {
@@ -11,13 +13,14 @@ android {
1113
buildFeatures {
1214
compose true
1315
}
14-
composeOptions {
15-
kotlinCompilerExtensionVersion libs.versions.compose.compiler.get()
16-
}
1716
}
1817

1918
dependencies {
20-
kapt(libs.motif.compiler)
19+
def composeBom = platform(libs.compose.bom)
20+
implementation(composeBom)
21+
androidTestImplementation(composeBom)
22+
23+
ksp(libs.motif.compiler)
2124
implementation(project(":libraries:rib-android"))
2225
implementation(project(":libraries:rib-android-compose"))
2326
implementation(project(":libraries:rib-coroutines"))

0 commit comments

Comments
 (0)