From 4c18b35802017149a27e163cb0b97d20821212ef Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Thu, 8 Jun 2023 16:11:22 +0800 Subject: Migrate Spa to Kotlin DSL Also the following changes, - Upgrade gradle to 8.1 - Upgrade AGP to 8.0.2 - Enable Version Catalog - Set target SDK to 34 Bug: 284913888 Test: Gradle Sync Test: Run Gallery Test: Unit test Change-Id: I08e1f0517277f176d94c36b1cf18015c988d2a0d --- packages/SettingsLib/Spa/build.gradle | 40 ------- packages/SettingsLib/Spa/build.gradle.kts | 66 ++++++++++++ packages/SettingsLib/Spa/gallery/build.gradle | 58 ---------- packages/SettingsLib/Spa/gallery/build.gradle.kts | 45 ++++++++ packages/SettingsLib/Spa/gradle/libs.versions.toml | 30 ++++++ .../Spa/gradle/wrapper/gradle-wrapper.properties | 3 +- packages/SettingsLib/Spa/settings.gradle | 35 ------ packages/SettingsLib/Spa/settings.gradle.kts | 42 ++++++++ packages/SettingsLib/Spa/spa/build.gradle | 119 --------------------- packages/SettingsLib/Spa/spa/build.gradle.kts | 110 +++++++++++++++++++ packages/SettingsLib/Spa/testutils/build.gradle | 60 ----------- .../SettingsLib/Spa/testutils/build.gradle.kts | 46 ++++++++ 12 files changed, 340 insertions(+), 314 deletions(-) delete mode 100644 packages/SettingsLib/Spa/build.gradle create mode 100644 packages/SettingsLib/Spa/build.gradle.kts delete mode 100644 packages/SettingsLib/Spa/gallery/build.gradle create mode 100644 packages/SettingsLib/Spa/gallery/build.gradle.kts create mode 100644 packages/SettingsLib/Spa/gradle/libs.versions.toml delete mode 100644 packages/SettingsLib/Spa/settings.gradle create mode 100644 packages/SettingsLib/Spa/settings.gradle.kts delete mode 100644 packages/SettingsLib/Spa/spa/build.gradle create mode 100644 packages/SettingsLib/Spa/spa/build.gradle.kts delete mode 100644 packages/SettingsLib/Spa/testutils/build.gradle create mode 100644 packages/SettingsLib/Spa/testutils/build.gradle.kts diff --git a/packages/SettingsLib/Spa/build.gradle b/packages/SettingsLib/Spa/build.gradle deleted file mode 100644 index e68ef85cd43d..000000000000 --- a/packages/SettingsLib/Spa/build.gradle +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - -buildscript { - ext { - BUILD_TOOLS_VERSION = "30.0.3" - MIN_SDK = 21 - TARGET_SDK = 33 - jetpack_compose_version = '1.4.0-beta01' - jetpack_compose_compiler_version = '1.4.4' - } -} -plugins { - id 'com.android.application' version '8.0.0' apply false - id 'com.android.library' version '8.0.0' apply false - id 'org.jetbrains.kotlin.android' version '1.8.10' apply false -} -subprojects { - tasks.withType(KotlinCompile).configureEach { - kotlinOptions { - jvmTarget = "17" - freeCompilerArgs = ["-Xjvm-default=all"] - } - } -} diff --git a/packages/SettingsLib/Spa/build.gradle.kts b/packages/SettingsLib/Spa/build.gradle.kts new file mode 100644 index 000000000000..64b67d7fe4f1 --- /dev/null +++ b/packages/SettingsLib/Spa/build.gradle.kts @@ -0,0 +1,66 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import com.android.build.gradle.BaseExtension +import com.android.build.gradle.api.AndroidBasePlugin +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + alias(libs.plugins.android.application) apply false + alias(libs.plugins.android.library) apply false + alias(libs.plugins.kotlin.android) apply false +} + +allprojects { + extra["jetpackComposeVersion"] = "1.4.0-beta01" +} + +subprojects { + plugins.withType { + configure { + compileSdkVersion(33) + + defaultConfig { + minSdk = 21 + targetSdk = 34 + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + } + } + + afterEvaluate { + plugins.withType { + configure { + if (buildFeatures.compose == true) { + composeOptions { + kotlinCompilerExtensionVersion = "1.4.4" + } + } + } + } + } + + tasks.withType { + kotlinOptions { + jvmTarget = "17" + freeCompilerArgs = listOf("-Xjvm-default=all") + } + } +} diff --git a/packages/SettingsLib/Spa/gallery/build.gradle b/packages/SettingsLib/Spa/gallery/build.gradle deleted file mode 100644 index 212aa7b7851d..000000000000 --- a/packages/SettingsLib/Spa/gallery/build.gradle +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -plugins { - id 'com.android.application' - id 'kotlin-android' -} - -android { - namespace 'com.android.settingslib.spa.gallery' - compileSdk TARGET_SDK - buildToolsVersion = BUILD_TOOLS_VERSION - - defaultConfig { - applicationId "com.android.settingslib.spa.gallery" - minSdk MIN_SDK - targetSdk TARGET_SDK - versionCode 1 - versionName "1.0" - } - - sourceSets { - main { - kotlin { - srcDir "src" - } - res.srcDirs = ["res"] - manifest.srcFile "AndroidManifest.xml" - } - } - compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 - } - buildFeatures { - compose true - } - composeOptions { - kotlinCompilerExtensionVersion jetpack_compose_compiler_version - } -} - -dependencies { - implementation project(":spa") -} diff --git a/packages/SettingsLib/Spa/gallery/build.gradle.kts b/packages/SettingsLib/Spa/gallery/build.gradle.kts new file mode 100644 index 000000000000..7f689c16b7ed --- /dev/null +++ b/packages/SettingsLib/Spa/gallery/build.gradle.kts @@ -0,0 +1,45 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) +} + +android { + namespace = "com.android.settingslib.spa.gallery" + + defaultConfig { + applicationId = "com.android.settingslib.spa.gallery" + versionCode = 1 + versionName = "1.0" + } + + sourceSets { + sourceSets.getByName("main") { + java.setSrcDirs(listOf("src")) + res.setSrcDirs(listOf("res")) + manifest.srcFile("AndroidManifest.xml") + } + } + buildFeatures { + compose = true + } +} + +dependencies { + implementation(project(":spa")) +} diff --git a/packages/SettingsLib/Spa/gradle/libs.versions.toml b/packages/SettingsLib/Spa/gradle/libs.versions.toml new file mode 100644 index 000000000000..9a16df8c834c --- /dev/null +++ b/packages/SettingsLib/Spa/gradle/libs.versions.toml @@ -0,0 +1,30 @@ +# +# Copyright (C) 2023 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +[versions] +agp = "8.0.2" +dexmaker-mockito = "2.28.3" +kotlin = "1.8.10" +truth = "1.1" + +[libraries] +dexmaker-mockito = { module = "com.linkedin.dexmaker:dexmaker-mockito", version.ref = "dexmaker-mockito" } +truth = { module = "com.google.truth:truth", version.ref = "truth" } + +[plugins] +android-application = { id = "com.android.application", version.ref = "agp" } +android-library = { id = "com.android.library", version.ref = "agp" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } diff --git a/packages/SettingsLib/Spa/gradle/wrapper/gradle-wrapper.properties b/packages/SettingsLib/Spa/gradle/wrapper/gradle-wrapper.properties index ed85e33ca8a6..33f49e33a47e 100644 --- a/packages/SettingsLib/Spa/gradle/wrapper/gradle-wrapper.properties +++ b/packages/SettingsLib/Spa/gradle/wrapper/gradle-wrapper.properties @@ -14,9 +14,8 @@ # limitations under the License. # -#Thu Jul 14 10:36:06 CST 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/packages/SettingsLib/Spa/settings.gradle b/packages/SettingsLib/Spa/settings.gradle deleted file mode 100644 index 1c5a1ceda34a..000000000000 --- a/packages/SettingsLib/Spa/settings.gradle +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -pluginManagement { - repositories { - gradlePluginPortal() - google() - mavenCentral() - } -} -dependencyResolutionManagement { - repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) - repositories { - google() - mavenCentral() - maven { url "https://jitpack.io"} - } -} -rootProject.name = "SpaLib" -include ':spa' -include ':gallery' -include ':testutils' diff --git a/packages/SettingsLib/Spa/settings.gradle.kts b/packages/SettingsLib/Spa/settings.gradle.kts new file mode 100644 index 000000000000..9909781b0623 --- /dev/null +++ b/packages/SettingsLib/Spa/settings.gradle.kts @@ -0,0 +1,42 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + rulesMode.set(RulesMode.FAIL_ON_PROJECT_RULES) + + repositories { + google() + mavenCentral() + maven { + url = uri("https://jitpack.io") + content { + includeGroup("com.github.PhilJay") + } + } + } +} +rootProject.name = "SpaLib" +include(":spa") +include(":gallery") +include(":testutils") diff --git a/packages/SettingsLib/Spa/spa/build.gradle b/packages/SettingsLib/Spa/spa/build.gradle deleted file mode 100644 index a591366cd63f..000000000000 --- a/packages/SettingsLib/Spa/spa/build.gradle +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -plugins { - id 'com.android.library' - id 'kotlin-android' -} - -android { - namespace 'com.android.settingslib.spa' - compileSdk TARGET_SDK - buildToolsVersion = BUILD_TOOLS_VERSION - - defaultConfig { - minSdk MIN_SDK - targetSdk TARGET_SDK - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - sourceSets { - main { - kotlin { - srcDir "src" - } - res.srcDirs = ["res"] - manifest.srcFile "AndroidManifest.xml" - } - androidTest { - kotlin { - srcDir "../tests/src" - } - res.srcDirs = ["../tests/res"] - manifest.srcFile "../tests/AndroidManifest.xml" - } - } - compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 - } - buildFeatures { - compose true - } - composeOptions { - kotlinCompilerExtensionVersion jetpack_compose_compiler_version - } - buildTypes { - debug { - testCoverageEnabled = true - } - } -} - -dependencies { - api "androidx.appcompat:appcompat:1.7.0-alpha02" - api "androidx.slice:slice-builders:1.1.0-alpha02" - api "androidx.slice:slice-core:1.1.0-alpha02" - api "androidx.slice:slice-view:1.1.0-alpha02" - api "androidx.compose.material3:material3:1.1.0-alpha06" - api "androidx.compose.material:material-icons-extended:$jetpack_compose_version" - api "androidx.compose.runtime:runtime-livedata:$jetpack_compose_version" - api "androidx.compose.ui:ui-tooling-preview:$jetpack_compose_version" - api "androidx.lifecycle:lifecycle-livedata-ktx" - api "androidx.lifecycle:lifecycle-runtime-compose" - api "androidx.navigation:navigation-compose:2.6.0-alpha08" - api "com.github.PhilJay:MPAndroidChart:v3.1.0-alpha" - api "com.google.android.material:material:1.7.0-alpha03" - debugApi "androidx.compose.ui:ui-tooling:$jetpack_compose_version" - implementation "com.airbnb.android:lottie-compose:5.2.0" - - androidTestImplementation project(":testutils") - androidTestImplementation 'androidx.lifecycle:lifecycle-runtime-testing' - androidTestImplementation "com.linkedin.dexmaker:dexmaker-mockito:2.28.3" -} - -task coverageReport(type: JacocoReport, dependsOn: "connectedDebugAndroidTest") { - group = "Reporting" - description = "Generate Jacoco coverage reports after running tests." - - sourceDirectories.from = files("src") - classDirectories.from = fileTree( - dir: "$buildDir/tmp/kotlin-classes/debug", - excludes: [ - "com/android/settingslib/spa/debug/**", - - // Excludes files forked from AndroidX. - "com/android/settingslib/spa/widget/scaffold/CustomizedAppBar*", - "com/android/settingslib/spa/widget/scaffold/TopAppBarColors*", - - // Excludes files forked from Accompanist. - "com/android/settingslib/spa/framework/compose/DrawablePainter*", - - // Excludes inline functions, which is not covered in Jacoco reports. - "com/android/settingslib/spa/framework/util/Collections*", - "com/android/settingslib/spa/framework/util/Flows*", - - // Excludes debug functions - "com/android/settingslib/spa/framework/compose/TimeMeasurer*", - - // Excludes slice demo presenter & provider - "com/android/settingslib/spa/slice/presenter/Demo*", - "com/android/settingslib/spa/slice/provider/Demo*", - ], - ) - executionData.from = fileTree(dir: "$buildDir/outputs/code_coverage/debugAndroidTest/connected") -} diff --git a/packages/SettingsLib/Spa/spa/build.gradle.kts b/packages/SettingsLib/Spa/spa/build.gradle.kts new file mode 100644 index 000000000000..fac63361fc1e --- /dev/null +++ b/packages/SettingsLib/Spa/spa/build.gradle.kts @@ -0,0 +1,110 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { + id(libs.plugins.android.library.get().pluginId) + id(libs.plugins.kotlin.android.get().pluginId) + jacoco +} + +val jetpackComposeVersion: String? by extra + +android { + namespace = "com.android.settingslib.spa" + + defaultConfig { + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + sourceSets { + sourceSets.getByName("main") { + kotlin.setSrcDirs(listOf("src")) + res.setSrcDirs(listOf("res")) + manifest.srcFile("AndroidManifest.xml") + } + sourceSets.getByName("androidTest") { + kotlin.setSrcDirs(listOf("../tests/src")) + res.setSrcDirs(listOf("../tests/res")) + manifest.srcFile("../tests/AndroidManifest.xml") + } + } + buildFeatures { + compose = true + } + buildTypes { + getByName("debug") { + enableAndroidTestCoverage = true + } + } +} + +dependencies { + api("androidx.appcompat:appcompat:1.7.0-alpha02") + api("androidx.slice:slice-builders:1.1.0-alpha02") + api("androidx.slice:slice-core:1.1.0-alpha02") + api("androidx.slice:slice-view:1.1.0-alpha02") + api("androidx.compose.material3:material3:1.1.0-alpha06") + api("androidx.compose.material:material-icons-extended:$jetpackComposeVersion") + api("androidx.compose.runtime:runtime-livedata:$jetpackComposeVersion") + api("androidx.compose.ui:ui-tooling-preview:$jetpackComposeVersion") + api("androidx.lifecycle:lifecycle-livedata-ktx") + api("androidx.lifecycle:lifecycle-runtime-compose") + api("androidx.navigation:navigation-compose:2.6.0-alpha08") + api("com.github.PhilJay:MPAndroidChart:v3.1.0-alpha") + api("com.google.android.material:material:1.7.0-alpha03") + debugApi("androidx.compose.ui:ui-tooling:$jetpackComposeVersion") + implementation("com.airbnb.android:lottie-compose:5.2.0") + + androidTestImplementation(project(":testutils")) + androidTestImplementation("androidx.lifecycle:lifecycle-runtime-testing") +} + +tasks.register("coverageReport") { + group = "Reporting" + description = "Generate Jacoco coverage reports after running tests." + dependsOn("connectedDebugAndroidTest") + sourceDirectories.setFrom(files("src")) + classDirectories.setFrom( + fileTree(layout.buildDirectory.dir("tmp/kotlin-classes/debug")) { + setExcludes( + listOf( + "com/android/settingslib/spa/debug/**", + + // Excludes files forked from AndroidX. + "com/android/settingslib/spa/widget/scaffold/CustomizedAppBar*", + "com/android/settingslib/spa/widget/scaffold/TopAppBarColors*", + + // Excludes files forked from Accompanist. + "com/android/settingslib/spa/framework/compose/DrawablePainter*", + + // Excludes inline functions, which is not covered in Jacoco reports. + "com/android/settingslib/spa/framework/util/Collections*", + "com/android/settingslib/spa/framework/util/Flows*", + + // Excludes debug functions + "com/android/settingslib/spa/framework/compose/TimeMeasurer*", + + // Excludes slice demo presenter & provider + "com/android/settingslib/spa/slice/presenter/Demo*", + "com/android/settingslib/spa/slice/provider/Demo*", + ) + ) + } + ) + executionData.setFrom( + fileTree(layout.buildDirectory.dir("outputs/code_coverage/debugAndroidTest/connected")) + ) +} diff --git a/packages/SettingsLib/Spa/testutils/build.gradle b/packages/SettingsLib/Spa/testutils/build.gradle deleted file mode 100644 index 23a9add79d50..000000000000 --- a/packages/SettingsLib/Spa/testutils/build.gradle +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -plugins { - id 'com.android.library' - id 'kotlin-android' -} - -android { - namespace 'com.android.settingslib.spa.testutils' - compileSdk TARGET_SDK - buildToolsVersion = BUILD_TOOLS_VERSION - - defaultConfig { - minSdk MIN_SDK - targetSdk TARGET_SDK - } - - sourceSets { - main { - kotlin { - srcDir "src" - } - manifest.srcFile "AndroidManifest.xml" - } - } - compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 - } - buildFeatures { - compose true - } - composeOptions { - kotlinCompilerExtensionVersion jetpack_compose_compiler_version - } -} - -dependencies { - api project(":spa") - - api "androidx.arch.core:core-testing:2.2.0-alpha01" - api "androidx.compose.ui:ui-test-junit4:$jetpack_compose_version" - api "com.google.truth:truth:1.1.3" - api "org.mockito:mockito-core:2.21.0" - debugApi "androidx.compose.ui:ui-test-manifest:$jetpack_compose_version" -} diff --git a/packages/SettingsLib/Spa/testutils/build.gradle.kts b/packages/SettingsLib/Spa/testutils/build.gradle.kts new file mode 100644 index 000000000000..c3df9bc80628 --- /dev/null +++ b/packages/SettingsLib/Spa/testutils/build.gradle.kts @@ -0,0 +1,46 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { + id(libs.plugins.android.library.get().pluginId) + id(libs.plugins.kotlin.android.get().pluginId) +} + +val jetpackComposeVersion: String? by extra + +android { + namespace = "com.android.settingslib.spa.testutils" + + sourceSets { + sourceSets.getByName("main") { + java.setSrcDirs(listOf("src")) + manifest.srcFile("AndroidManifest.xml") + } + } + buildFeatures { + compose = true + } +} + +dependencies { + api(project(":spa")) + + api("androidx.arch.core:core-testing:2.2.0-alpha01") + api("androidx.compose.ui:ui-test-junit4:$jetpackComposeVersion") + api(libs.truth) + api(libs.dexmaker.mockito) + debugApi("androidx.compose.ui:ui-test-manifest:$jetpackComposeVersion") +} -- cgit v1.2.3-59-g8ed1b