From 3423bbf67168859d53ed4543bd91cfc74f7fc4c0 Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Fri, 20 Dec 2024 18:57:45 +0530 Subject: [PATCH] Added support for Android 15. --- build.gradle.kts | 1 + buildSrc/build.gradle.kts | 3 ++- buildSrc/src/main/kotlin/Config.kt | 6 +++--- buildSrc/src/main/kotlin/Libs.kt | 3 +++ buildSrc/src/main/kotlin/Versions.kt | 14 ++++++++------ .../src/main/kotlin/plugin/AllProjectConfigurer.kt | 11 ++++++----- .../main/kotlin/plugin/ConvenienceExtensions.kt | 3 +++ core/build.gradle.kts | 1 + gradle/wrapper/gradle-wrapper.properties | 2 +- 9 files changed, 28 insertions(+), 16 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 792b02bbee..e5c5dbcd0f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,6 +7,7 @@ buildscript { dependencies { classpath(Libs.com_android_tools_build_gradle) classpath(Libs.kotlin_gradle_plugin) + classpath(Libs.kotlin_ksp) classpath(Libs.navigation_safe_args_gradle_plugin) classpath(Libs.keeper) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index b174f55a71..40967373ac 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -11,8 +11,9 @@ repositories { } dependencies { - implementation("com.android.tools.build:gradle:8.1.3") + implementation("com.android.tools.build:gradle:8.4.0") implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.0") + implementation("com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin:2.1.0-1.0.29") implementation("org.jacoco:org.jacoco.core:0.8.12") implementation("org.jlleitschuh.gradle:ktlint-gradle:10.3.0") implementation("com.google.apis:google-api-services-androidpublisher:v3-rev20230406-2.0.0") { diff --git a/buildSrc/src/main/kotlin/Config.kt b/buildSrc/src/main/kotlin/Config.kt index e6f6facfec..75eb961cfc 100644 --- a/buildSrc/src/main/kotlin/Config.kt +++ b/buildSrc/src/main/kotlin/Config.kt @@ -22,11 +22,11 @@ object Config { // Here is a list of all Android versions with their corresponding API // levels: https://apilevels.com/ - const val compileSdk = 34 // SDK version used by Gradle to compile our app. + const val compileSdk = 35 // SDK version used by Gradle to compile our app. const val minSdk = 25 // Minimum SDK (Minimum Support Device) is 25 (Android 7.1 Nougat). - const val targetSdk = 34 // Target SDK (Maximum Support Device) is 34 (Android 14). + const val targetSdk = 35 // Target SDK (Maximum Support Device) is 34 (Android 14). - val javaVersion = JavaVersion.VERSION_1_8 + val javaVersion = JavaVersion.VERSION_17 // Version Information const val versionMajor = 3 // Major version component of the app's version name and version code. diff --git a/buildSrc/src/main/kotlin/Libs.kt b/buildSrc/src/main/kotlin/Libs.kt index 232bb99d54..487895910d 100644 --- a/buildSrc/src/main/kotlin/Libs.kt +++ b/buildSrc/src/main/kotlin/Libs.kt @@ -104,6 +104,9 @@ object Libs { const val kotlin_stdlib_jdk8: String = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:" + Versions.org_jetbrains_kotlin + const val kotlin_ksp: String = + "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin:" + Versions.kotlin_ksp + /** * https://developer.android.com/topic/libraries/architecture/index.html */ diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index c23818e299..bb664ad7e7 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -14,7 +14,7 @@ object Versions { const val document_file_version: String = "1.0.1" - const val org_jetbrains_kotlinx_kotlinx_coroutines: String = "1.8.1" + const val org_jetbrains_kotlinx_kotlinx_coroutines: String = "1.9.0" const val kotlinx_coroutines_rx3: String = "1.3.9" @@ -28,6 +28,8 @@ object Versions { const val org_jetbrains_kotlin: String = "2.0.0" + const val kotlin_ksp: String = "2.1.0-1.0.29" + const val androidx_navigation: String = "2.5.3" const val navigation_ui_ktx: String = "2.4.1" @@ -46,7 +48,7 @@ object Versions { const val android_arch_lifecycle_extensions: String = "1.1.1" - const val com_android_tools_build_gradle: String = "8.1.3" + const val com_android_tools_build_gradle: String = "8.4.0" const val de_fayard_buildsrcversions_gradle_plugin: String = "0.7.0" @@ -60,9 +62,9 @@ object Versions { const val swipe_refresh_layout: String = "1.1.0" - const val collection_ktx: String = "1.1.0" + const val collection_ktx: String = "1.4.5" - const val preference_ktx: String = "1.2.0" + const val preference_ktx: String = "1.2.1" const val junit_jupiter: String = "5.11.0" @@ -70,7 +72,7 @@ object Versions { const val core_testing: String = "2.2.0" - const val fragment_ktx: String = "1.2.5" + const val fragment_ktx: String = "1.8.5" const val testing_ktx: String = "1.3.0" @@ -86,7 +88,7 @@ object Versions { const val rxandroid: String = "2.1.1" - const val core_ktx: String = "1.9.0" + const val core_ktx: String = "1.15.0" const val libkiwix: String = "2.2.3" diff --git a/buildSrc/src/main/kotlin/plugin/AllProjectConfigurer.kt b/buildSrc/src/main/kotlin/plugin/AllProjectConfigurer.kt index a87f9f4d3f..f90c0f3409 100644 --- a/buildSrc/src/main/kotlin/plugin/AllProjectConfigurer.kt +++ b/buildSrc/src/main/kotlin/plugin/AllProjectConfigurer.kt @@ -37,6 +37,7 @@ class AllProjectConfigurer { fun applyPlugins(target: Project) { target.plugins.apply("kotlin-android") target.plugins.apply("kotlin-kapt") + target.plugins.apply("com.google.devtools.ksp") target.plugins.apply("kotlin-parcelize") target.plugins.apply("jacoco") target.plugins.apply("org.jlleitschuh.gradle.ktlint") @@ -77,7 +78,7 @@ class AllProjectConfigurer { } target.tasks.withType(KotlinCompile::class.java) { compilerOptions { - jvmTarget.set(JvmTarget.JVM_1_8) + jvmTarget.set(JvmTarget.JVM_17) freeCompilerArgs.add("-Xjvm-default=all-compatibility") } } @@ -137,7 +138,7 @@ class AllProjectConfigurer { } fun configureCommonExtension(target: Project) { - target.configureExtension> { + target.configureExtension> { lint { abortOnError = true checkAllWarnings = true @@ -216,8 +217,8 @@ class AllProjectConfigurer { compileOnly(Libs.javax_annotation_api) implementation(Libs.dagger) implementation(Libs.dagger_android) - kapt(Libs.dagger_compiler) - kapt(Libs.dagger_android_processor) + annotationProcessor(Libs.dagger_compiler) + annotationProcessor(Libs.dagger_android_processor) implementation(Libs.core_ktx) implementation(Libs.fragment_ktx) implementation(Libs.collection_ktx) @@ -229,7 +230,7 @@ class AllProjectConfigurer { annotationProcessor(Libs.roomCompiler) implementation(Libs.roomRuntime) implementation(Libs.roomRxjava2) - kapt(Libs.roomCompiler) + ksp(Libs.roomCompiler) implementation(Libs.tracing) implementation(Libs.fetchOkhttp) } diff --git a/buildSrc/src/main/kotlin/plugin/ConvenienceExtensions.kt b/buildSrc/src/main/kotlin/plugin/ConvenienceExtensions.kt index 0a397888d5..fb6f64721c 100644 --- a/buildSrc/src/main/kotlin/plugin/ConvenienceExtensions.kt +++ b/buildSrc/src/main/kotlin/plugin/ConvenienceExtensions.kt @@ -48,6 +48,9 @@ internal fun DependencyHandlerScope.compileOnly(dependency: String) = internal fun DependencyHandlerScope.kapt(dependency: String) = addDependency("kapt", dependency) +internal fun DependencyHandlerScope.ksp(dependency: String) = + addDependency("ksp", dependency) + internal fun DependencyHandlerScope.testImplementation(dependency: String) = addDependency("testImplementation", dependency) diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 1d61d4aee2..ffa77eac96 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -1,3 +1,4 @@ +import com.android.build.gradle.internal.utils.isKotlinKaptPluginApplied import plugin.KiwixConfigurationPlugin buildscript { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f1aa9a8355..d190455a7f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Mon Dec 19 16:13:45 IST 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME