| /* |
| * 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_1_8 |
| targetCompatibility JavaVersion.VERSION_1_8 |
| } |
| kotlinOptions { |
| jvmTarget = '1.8' |
| freeCompilerArgs = ["-Xjvm-default=all"] |
| } |
| buildFeatures { |
| compose true |
| } |
| composeOptions { |
| kotlinCompilerExtensionVersion jetpack_compose_compiler_version |
| } |
| buildTypes { |
| debug { |
| testCoverageEnabled = true |
| } |
| } |
| } |
| |
| dependencies { |
| String jetpack_lifecycle_version = "2.6.0-alpha03" |
| |
| api "androidx.appcompat:appcompat:1.7.0-alpha01" |
| 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-alpha01" |
| 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:$jetpack_lifecycle_version" |
| api "androidx.lifecycle:lifecycle-runtime-compose:$jetpack_lifecycle_version" |
| api "androidx.navigation:navigation-compose:2.6.0-alpha04" |
| 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 "com.linkedin.dexmaker:dexmaker-mockito:2.28.1" |
| } |
| |
| 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*", |
| "com/android/settingslib/spa/framework/compose/Pager*", |
| |
| // 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") |
| } |