From 3ceccfc054e58eebd784793f4327dc4dd1214cd0 Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Mon, 11 Aug 2025 11:44:51 +0700 Subject: [PATCH] chore(android): Specify Java language version 21 Resolves Gradle deprecation and language version warnings ```gradle Java compiler version 21 has deprecated support for compiling with source/target version 8. ``` The `java.toolchain.languageVersion` syntax is a superset that covers the previous syntax `android.compileOptions` --- android/KMAPro/kMAPro/build.gradle | 11 ++++++----- android/KMEA/app/build.gradle | 11 ++++++----- android/Samples/KMSample1/app/build.gradle | 6 ++++++ android/Samples/KMSample2/app/build.gradle | 6 ++++++ android/Tests/KeyboardHarness/app/build.gradle | 6 ++++++ oem/firstvoices/android/app/build.gradle | 6 ++++++ 6 files changed, 36 insertions(+), 10 deletions(-) diff --git a/android/KMAPro/kMAPro/build.gradle b/android/KMAPro/kMAPro/build.gradle index 864fb36ee9..705fb17a1c 100644 --- a/android/KMAPro/kMAPro/build.gradle +++ b/android/KMAPro/kMAPro/build.gradle @@ -11,6 +11,12 @@ apply from: "$rootPath/version.gradle" String tier = new File('../../TIER.md').getText('UTF-8').trim(); +java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } +} + android { compileSdk 34 namespace="com.tavultesoft.kmapro" @@ -24,11 +30,6 @@ android { buildConfig = true } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 - } - defaultConfig { applicationId "com.tavultesoft.kmapro" minSdkVersion 21 diff --git a/android/KMEA/app/build.gradle b/android/KMEA/app/build.gradle index dd4251025b..da7191ad5c 100644 --- a/android/KMEA/app/build.gradle +++ b/android/KMEA/app/build.gradle @@ -12,6 +12,12 @@ base { archivesName = "keyman-engine" } +java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } +} + android { compileSdk 34 namespace "com.keyman.engine" @@ -21,11 +27,6 @@ android { buildConfig = true } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 - } - defaultConfig { minSdkVersion 21 targetSdkVersion 34 diff --git a/android/Samples/KMSample1/app/build.gradle b/android/Samples/KMSample1/app/build.gradle index cc92dee298..025dd366f0 100644 --- a/android/Samples/KMSample1/app/build.gradle +++ b/android/Samples/KMSample1/app/build.gradle @@ -2,6 +2,12 @@ plugins { id 'com.android.application' } +java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } +} + android { compileSdk 34 namespace="com.keyman.kmsample1" diff --git a/android/Samples/KMSample2/app/build.gradle b/android/Samples/KMSample2/app/build.gradle index cd2f4d6225..472a70a1b4 100644 --- a/android/Samples/KMSample2/app/build.gradle +++ b/android/Samples/KMSample2/app/build.gradle @@ -2,6 +2,12 @@ plugins { id 'com.android.application' } +java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } +} + android { compileSdk 34 namespace="com.keyman.kmsample2" diff --git a/android/Tests/KeyboardHarness/app/build.gradle b/android/Tests/KeyboardHarness/app/build.gradle index ab8066393b..69be625d85 100644 --- a/android/Tests/KeyboardHarness/app/build.gradle +++ b/android/Tests/KeyboardHarness/app/build.gradle @@ -5,6 +5,12 @@ plugins { ext.rootPath = '../../../' apply from: "$rootPath/version.gradle" +java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } +} + android { compileSdk 34 namespace="com.keyman.android.tests.keyboardHarness" diff --git a/oem/firstvoices/android/app/build.gradle b/oem/firstvoices/android/app/build.gradle index 8a6558aa3d..468517061d 100644 --- a/oem/firstvoices/android/app/build.gradle +++ b/oem/firstvoices/android/app/build.gradle @@ -7,6 +7,12 @@ plugins { ext.rootPath = '../../../../android' apply from: "$rootPath/version.gradle" +java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } +} + android { compileSdk 34 namespace="com.firstvoices.keyboards"