120 lines
4.3 KiB
Groovy
120 lines
4.3 KiB
Groovy
|
|
/*
|
||
|
|
* 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")
|
||
|
|
}
|