diff --git a/analytics/build.gradle b/analytics/build.gradle index 5c9cd93415..952b6aa58a 100644 --- a/analytics/build.gradle +++ b/analytics/build.gradle @@ -1,18 +1,10 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-kapt' +plugins { + id "com.android.library" + id "kotlin-android" + id "kotlin-kapt" +} android { - def config = rootProject.extensions.getByName("ext") - - compileSdkVersion config["compile_sdk"] - - defaultConfig { - minSdkVersion config["min_sdk"] - targetSdkVersion config["target_sdk"] - testInstrumentationRunner config["test_runner"] - } - buildTypes { release { buildConfigField "boolean", "SEND_EVENTS", "true" @@ -21,15 +13,6 @@ android { buildConfigField "boolean", "SEND_EVENTS", getProperty('config.enableAnalyticsForDebugBuilds') } } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 - } } dependencies { diff --git a/app/build.gradle b/app/build.gradle index 1a635808fd..791ffa287f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,9 +1,11 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-kapt' -apply plugin: "androidx.navigation.safeargs.kotlin" -apply plugin: 'com.google.firebase.crashlytics' -apply plugin: 'com.google.firebase.appdistribution' +plugins { + id "com.android.application" + id "kotlin-android" + id "kotlin-kapt" + id "androidx.navigation.safeargs.kotlin" + id "com.google.firebase.crashlytics" + id "com.google.firebase.appdistribution" +} apply from: "$rootDir/versioning.gradle" @@ -23,7 +25,6 @@ android { def config = rootProject.ext compileSdkVersion config.compile_sdk - buildToolsVersion config.build_tools defaultConfig { applicationId config.application_id @@ -95,10 +96,6 @@ android { targetCompatibility JavaVersion.VERSION_11 } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 - } - composeOptions { kotlinCompilerExtensionVersion config.compose_version } @@ -122,6 +119,16 @@ android { ndkVersion "23.2.8568313" } +kotlin { + jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + } +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(11)) +} + dependencies { implementation project(':domain') diff --git a/build.gradle b/build.gradle index c595729b91..33b657090e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,12 @@ +import com.android.build.gradle.LibraryPlugin + apply from: './dependencies.gradle' buildscript { ext.kotlin_version = '1.7.10' ext.gradle_tools = '3.1.3' ext.build_tools = '32.0.0' - ext.nav_version = '2.3.0' + ext.nav_version = '2.5.3' ext.dokka_version = '1.4.32' ext.compile_sdk = 32 @@ -23,7 +25,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + def libs = project.extensions.getByName("libs") as org.gradle.accessors.dm.LibrariesForLibs + classpath(libs.agp) classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" classpath 'com.google.gms:google-services:4.3.14' @@ -37,7 +40,30 @@ buildscript { def testDebugAll = tasks.create("testDebugAll") +//https://www.droidcon.com/2022/03/11/reducing-gradle-boilerplate-in-multi-module-android-projects/ subprojects { + project.plugins.whenPluginAdded { plugin -> + if (plugin instanceof LibraryPlugin) { + + android { + def config = rootProject.extensions.getByName("ext") + compileSdkVersion config["compile_sdk"] + + defaultConfig { + minSdkVersion config["min_sdk"] + targetSdkVersion config["target_sdk"] + testInstrumentationRunner config["test_runner"] + } + + testOptions { + unitTests { + includeAndroidResources = true + } + } + } + } + } + plugins.withId("kotlin") { testDebugAll.dependsOn(tasks.named("test")) } diff --git a/clipboard/build.gradle b/clipboard/build.gradle index 2f0a524686..df0666fd82 100644 --- a/clipboard/build.gradle +++ b/clipboard/build.gradle @@ -1,17 +1,9 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' +plugins { + id "com.android.library" + id "kotlin-android" +} android { - def config = rootProject.extensions.getByName("ext") - - compileSdkVersion config["compile_sdk"] - - defaultConfig { - minSdkVersion config["min_sdk"] - targetSdkVersion config["target_sdk"] - - testInstrumentationRunner config["test_runner"] - } buildTypes { debug { @@ -23,21 +15,6 @@ android { buildConfigField ANYTYPE_CLIPBOARD_LABEL_TYPE, ANYTYPE_CLIPBOARD_LABEL, ANYTYPE_CLIPBOARD_LABEL_VALUE } } - - testOptions { - unitTests { - includeAndroidResources = true - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 - } } dependencies { diff --git a/core-ui/build.gradle b/core-ui/build.gradle index bddd5f2895..715f02b120 100644 --- a/core-ui/build.gradle +++ b/core-ui/build.gradle @@ -1,34 +1,16 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' +plugins { + id "com.android.library" + id "kotlin-android" +} android { def config = rootProject.extensions.getByName("ext") - compileSdkVersion config["compile_sdk"] - defaultConfig { - minSdkVersion config["min_sdk"] - targetSdkVersion config["target_sdk"] - testInstrumentationRunner config["test_runner"] buildConfigField "boolean", "USE_NEW_WINDOW_INSET_API", "true" buildConfigField "boolean", "NESTED_DECORATION_ENABLED", "true" } - testOptions { - unitTests { - includeAndroidResources = true - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 - } - composeOptions { kotlinCompilerExtensionVersion config["compose_version"] } diff --git a/core-utils/build.gradle b/core-utils/build.gradle index d436812548..ac903ffe70 100644 --- a/core-utils/build.gradle +++ b/core-utils/build.gradle @@ -1,16 +1,11 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-kapt' +plugins { + id "com.android.library" + id "kotlin-android" + id "kotlin-kapt" +} android { - def config = rootProject.extensions.getByName("ext") - - compileSdkVersion config["compile_sdk"] - defaultConfig { - minSdkVersion config["min_sdk"] - targetSdkVersion config["target_sdk"] - testInstrumentationRunner config["test_runner"] buildConfigField "boolean", "USE_NEW_WINDOW_INSET_API", "true" } diff --git a/core-utils/src/main/java/com/anytypeio/anytype/core_utils/ext/AndroidExtension.kt b/core-utils/src/main/java/com/anytypeio/anytype/core_utils/ext/AndroidExtension.kt index 6acac1be11..6465fc0c42 100644 --- a/core-utils/src/main/java/com/anytypeio/anytype/core_utils/ext/AndroidExtension.kt +++ b/core-utils/src/main/java/com/anytypeio/anytype/core_utils/ext/AndroidExtension.kt @@ -327,7 +327,7 @@ fun Fragment.startFilePicker(mime: Mimetype, requestCode: Int? = null) { * Use this class for picking images from external storage */ class GetImageContract : ActivityResultContract() { - override fun createIntent(context: Context, input: Int?): Intent { + override fun createIntent(context: Context, input: Int): Intent { return Intent( Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI diff --git a/data/build.gradle b/data/build.gradle index 50c36cac6f..cd202ed808 100644 --- a/data/build.gradle +++ b/data/build.gradle @@ -1,4 +1,6 @@ -apply plugin: 'kotlin' +plugins { + id "kotlin" +} dependencies { implementation project(':domain') diff --git a/dependencies.gradle b/dependencies.gradle index f1b675a376..efe8a0c397 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -24,7 +24,7 @@ ext { // Architecture Components lifecycle_version = '2.5.1' - navigation_version = '2.3.5' + navigation_version = '2.5.3' // Third party libraries exoplayer_version = '2.17.1' @@ -88,8 +88,6 @@ ext { // Anytype - middleware_version = 'v0.24.0-rc4' - mainApplication = [ kotlin: "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version", coroutines: "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version", @@ -197,8 +195,4 @@ ext { amplitude: "com.amplitude:android-sdk:$amplitude_version", okhttp : "com.squareup.okhttp3:okhttp:$okhttp_version" ] - - anytype = [ - middleware: "io.anytype:android-mw:$middleware_version" - ] } \ No newline at end of file diff --git a/device/build.gradle b/device/build.gradle index 2142047266..49a954df03 100644 --- a/device/build.gradle +++ b/device/build.gradle @@ -1,32 +1,6 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' - -android { - def config = rootProject.extensions.getByName("ext") - - compileSdkVersion config["compile_sdk"] - - defaultConfig { - minSdkVersion config["min_sdk"] - targetSdkVersion config["target_sdk"] - - testInstrumentationRunner config["test_runner"] - } - - testOptions { - unitTests { - includeAndroidResources = true - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 - } +plugins { + id "com.android.library" + id "kotlin-android" } dependencies { diff --git a/domain/build.gradle b/domain/build.gradle index 3e7c055901..3c6522c403 100644 --- a/domain/build.gradle +++ b/domain/build.gradle @@ -1,5 +1,7 @@ -apply plugin: 'kotlin' -apply plugin: 'org.jetbrains.dokka' +plugins { + id "kotlin" + id "org.jetbrains.dokka" +} dependencies { diff --git a/gradle.properties b/gradle.properties index c67acf73d7..9bc74dc826 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,5 +20,4 @@ android.enableJetifier=false kotlin.code.style=official -kapt.use.worker.api=true kapt.incremental.apt=true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000000..8a5e006b4a --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,10 @@ +[versions] +middleware_version = "v0.24.0-rc4" + +[libraries] +middleware = { module = "io.anytype:android-mw", version.ref = "middleware_version" } +agp = { module = "com.android.tools.build:gradle", version = "7.3.0" } + +[bundles] + +[plugins] diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ae04661ee7..8fad3f5a98 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-7.5.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/library-emojifier/build.gradle b/library-emojifier/build.gradle index 188b246df9..b6601a8457 100644 --- a/library-emojifier/build.gradle +++ b/library-emojifier/build.gradle @@ -1,32 +1,6 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' - -android { - def config = rootProject.extensions.getByName("ext") - - compileSdkVersion config["compile_sdk"] - - defaultConfig { - minSdkVersion config["min_sdk"] - targetSdkVersion config["target_sdk"] - - testInstrumentationRunner config["test_runner"] - } - - testOptions { - unitTests { - includeAndroidResources = true - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 - } +plugins { + id "com.android.library" + id "kotlin-android" } dependencies { diff --git a/library-page-icon-picker-widget/build.gradle b/library-page-icon-picker-widget/build.gradle index c97c739c62..539c287a9f 100644 --- a/library-page-icon-picker-widget/build.gradle +++ b/library-page-icon-picker-widget/build.gradle @@ -1,27 +1,9 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' +plugins { + id "com.android.library" + id "kotlin-android" +} android { - def config = rootProject.extensions.getByName("ext") - - compileSdkVersion compile_sdk - - defaultConfig { - minSdkVersion config["min_sdk"] - targetSdkVersion config["target_sdk"] - - testInstrumentationRunner config["test_runner"] - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 - } - buildFeatures { viewBinding true } diff --git a/library-syntax-highlighter/build.gradle b/library-syntax-highlighter/build.gradle index 892d056c38..0cf44ffedb 100644 --- a/library-syntax-highlighter/build.gradle +++ b/library-syntax-highlighter/build.gradle @@ -1,33 +1,7 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'kotlinx-serialization' - -android { - def config = rootProject.extensions.getByName("ext") - - compileSdkVersion compile_sdk - - defaultConfig { - minSdkVersion config["min_sdk"] - targetSdkVersion config["target_sdk"] - - testInstrumentationRunner config["test_runner"] - } - - testOptions { - unitTests { - includeAndroidResources = true - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 - } +plugins { + id "com.android.library" + id "kotlin-android" + id "kotlinx-serialization" } dependencies { diff --git a/middleware/build.gradle b/middleware/build.gradle index f401c531cf..50797f6be2 100644 --- a/middleware/build.gradle +++ b/middleware/build.gradle @@ -1,18 +1,7 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-kapt' - -android { - - def config = rootProject.extensions.getByName("ext") - - compileSdkVersion config["compile_sdk"] - - defaultConfig { - minSdkVersion config["min_sdk"] - targetSdkVersion config["target_sdk"] - testInstrumentationRunner config["test_runner"] - } +plugins { + id "com.android.library" + id "kotlin-android" + id "kotlin-kapt" } dependencies { @@ -23,7 +12,6 @@ dependencies { implementation project(':core-utils') def applicationDependencies = rootProject.ext.mainApplication - def anytypeDependencies = rootProject.ext.anytype def unitTestDependencies = rootProject.ext.unitTesting implementation applicationDependencies.kotlin @@ -32,7 +20,7 @@ dependencies { implementation applicationDependencies.gsonWire implementation applicationDependencies.gson implementation applicationDependencies.javaxInject - implementation anytypeDependencies.middleware + implementation libs.middleware testImplementation project(":test:utils") testImplementation unitTestDependencies.junit diff --git a/persistence/build.gradle b/persistence/build.gradle index ee3eab5645..824f979e81 100644 --- a/persistence/build.gradle +++ b/persistence/build.gradle @@ -1,32 +1,7 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-kapt' - -android { - def config = rootProject.extensions.getByName("ext") - - compileSdkVersion config["compile_sdk"] - - defaultConfig { - minSdkVersion config["min_sdk"] - targetSdkVersion config["target_sdk"] - testInstrumentationRunner config["test_runner"] - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 - } - - testOptions { - unitTests { - includeAndroidResources = true - } - } +plugins { + id "com.android.library" + id "kotlin-android" + id "kotlin-kapt" } dependencies { diff --git a/presentation/build.gradle b/presentation/build.gradle index cac2c9875a..c1998237e5 100644 --- a/presentation/build.gradle +++ b/presentation/build.gradle @@ -1,22 +1,17 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-kapt' -apply plugin: 'kotlin-parcelize' +plugins { + id "com.android.library" + id "kotlin-android" + id "kotlin-kapt" + id "kotlin-parcelize" +} android { - def config = rootProject.extensions.getByName("ext") - compileSdkVersion config["compile_sdk"] defaultConfig { - minSdkVersion config["min_sdk"] - targetSdkVersion config["target_sdk"] - testInstrumentationRunner config["test_runner"] buildConfigField "boolean", "ENABLE_LINK_APPERANCE_MENU", "true" buildConfigField "boolean", "NESTED_DECORATION_ENABLED", "true" buildConfigField "boolean", "USE_SIMPLE_TABLES_IN_EDITOR_EDDITING", "true" } - - testOptions.unitTests.includeAndroidResources = true } dependencies { diff --git a/protocol/build.gradle b/protocol/build.gradle index 66fd978f5d..946adb850d 100644 --- a/protocol/build.gradle +++ b/protocol/build.gradle @@ -1,27 +1,7 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'com.squareup.wire' - -android { - def config = rootProject.extensions.getByName("ext") - - compileSdkVersion config["compile_sdk"] - - defaultConfig { - minSdkVersion config["min_sdk"] - targetSdkVersion config["target_sdk"] - - testInstrumentationRunner config["test_runner"] - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 - } +plugins { + id "com.android.library" + id "kotlin-android" + id "com.squareup.wire" } dependencies { diff --git a/sample/build.gradle b/sample/build.gradle index 40ff6a2e74..0a722ac070 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -7,7 +7,6 @@ android { compileSdkVersion 32 buildToolsVersion "32.0.0" - defaultConfig { applicationId "com.anytypeio.anytype.sample" minSdkVersion 26 diff --git a/test/android-utils/build.gradle b/test/android-utils/build.gradle index c325b77752..27428efebd 100644 --- a/test/android-utils/build.gradle +++ b/test/android-utils/build.gradle @@ -1,21 +1,6 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' - -android { - compileSdkVersion compile_sdk - - defaultConfig { - minSdkVersion min_sdk - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 - } +plugins { + id "com.android.library" + id "kotlin-android" } dependencies { diff --git a/ui-settings/build.gradle b/ui-settings/build.gradle index d23b45e68d..8a60b3f59f 100644 --- a/ui-settings/build.gradle +++ b/ui-settings/build.gradle @@ -1,24 +1,12 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' +plugins { + id "com.android.library" + id "kotlin-android" +} android { + def config = rootProject.extensions.getByName("ext") - compileSdkVersion config["compile_sdk"] - - defaultConfig { - minSdkVersion config["min_sdk"] - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 - } - buildFeatures { compose true }