SimpleMarkdown/app/build.gradle

186 lines
6.9 KiB
Groovy
Raw Normal View History

2017-07-25 04:37:23 +00:00
apply plugin: 'com.android.application'
2019-05-16 03:38:29 +00:00
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'jacoco'
2020-09-21 19:36:07 +00:00
apply plugin: 'com.google.firebase.crashlytics'
2021-02-21 04:07:10 +00:00
apply plugin: "com.osacky.fladle"
2018-10-16 01:41:33 +00:00
2018-09-05 00:45:01 +00:00
def keystoreProperties = new Properties()
try {
def keystorePropertiesFile = rootProject.file("keystore.properties")
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
} catch (FileNotFoundException ignored) {
logger.warn("Unable to load keystore properties. Automatic signing won't be available")
keystoreProperties['keyAlias'] = ""
keystoreProperties['keyPassword'] = ""
keystoreProperties['storeFile'] = File.createTempFile("temp", ".tmp").absolutePath
keystoreProperties['storePassword'] = ""
}
2017-07-25 04:37:23 +00:00
android {
2017-08-23 17:24:48 +00:00
configurations.all {
resolutionStrategy.force 'com.google.code.findbugs:jsr305:3.0.1'
}
packagingOptions {
exclude 'META-INF/LICENSE-LGPL-2.1.txt'
exclude 'META-INF/LICENSE-LGPL-3.txt'
exclude 'META-INF/LICENSE-W3C-TEST'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
}
2020-09-17 01:39:59 +00:00
compileSdkVersion 30
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
2020-04-20 04:19:28 +00:00
kotlinOptions {
jvmTarget = "1.8"
}
2017-07-25 04:37:23 +00:00
defaultConfig {
applicationId "com.wbrawner.simplemarkdown"
minSdkVersion 23
targetSdkVersion 30
versionCode 32
versionName "0.8.10"
2019-05-16 03:38:29 +00:00
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArguments clearPackageData: 'true'
2019-05-18 06:29:15 +00:00
buildConfigField "boolean", "ENABLE_CUSTOM_CSS", "false"
2017-07-25 04:37:23 +00:00
}
2018-09-05 00:45:01 +00:00
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
2017-07-25 04:37:23 +00:00
buildTypes {
debug {
testCoverageEnabled true
}
2017-07-25 04:37:23 +00:00
release {
2017-12-24 01:24:55 +00:00
minifyEnabled true
2017-07-25 04:37:23 +00:00
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
2018-09-05 00:45:01 +00:00
signingConfig signingConfigs.release
2019-05-18 01:17:14 +00:00
buildConfigField "boolean", "ENABLE_CUSTOM_CSS", "false"
2017-07-25 04:37:23 +00:00
}
}
flavorDimensions "platform"
productFlavors {
free {
applicationIdSuffix ".free"
versionNameSuffix "-free"
}
play {}
samsung {
applicationId "com.wbrawner.simplemarkdown.samsung"
}
}
dexOptions {
jumboMode true
}
2018-01-27 22:51:45 +00:00
testOptions {
unitTests {
includeAndroidResources = true
}
execution 'ANDROIDX_TEST_ORCHESTRATOR'
2018-01-27 22:51:45 +00:00
}
2017-07-25 04:37:23 +00:00
}
dependencies {
samsungImplementation project(":IAP5Helper")
2021-02-21 02:59:06 +00:00
def navigation_version = '2.3.3'
implementation "androidx.navigation:navigation-fragment-ktx:$navigation_version"
implementation "androidx.navigation:navigation-ui-ktx:$navigation_version"
2017-12-24 01:24:55 +00:00
testImplementation 'junit:junit:4.12'
2020-04-20 04:19:28 +00:00
testImplementation 'org.robolectric:robolectric:4.2.1'
2018-09-05 00:45:01 +00:00
implementation fileTree(include: ['*.jar'], dir: 'libs')
def espresso_version = '3.3.0'
androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version"
androidTestImplementation "androidx.test.espresso:espresso-web:$espresso_version"
androidTestImplementation "androidx.test.espresso:espresso-intents:$espresso_version"
2021-02-21 02:59:06 +00:00
def android_test = '1.4.0-alpha04'
androidTestImplementation "androidx.test:runner:$android_test"
androidTestImplementation "androidx.test:rules:$android_test"
androidTestUtil "androidx.test:orchestrator:$android_test"
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
2019-05-16 03:38:29 +00:00
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
implementation 'androidx.appcompat:appcompat:1.2.0'
2021-02-21 02:59:06 +00:00
implementation 'androidx.preference:preference-ktx:1.1.1'
implementation "androidx.fragment:fragment-ktx:1.3.0"
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'com.google.android.material:material:1.3.0'
2019-05-16 03:38:29 +00:00
implementation 'androidx.legacy:legacy-support-v13:1.0.0'
2017-12-24 01:24:55 +00:00
implementation 'com.commonsware.cwac:anddown:0.3.0'
2021-02-21 21:07:21 +00:00
implementation 'com.jakewharton.timber:timber:4.7.1'
2021-02-21 02:59:06 +00:00
playImplementation 'com.android.billingclient:billing:3.0.2'
playImplementation 'com.google.android.play:core-ktx:1.8.1'
2021-02-21 02:59:06 +00:00
playImplementation 'com.google.firebase:firebase-crashlytics:17.3.1'
playImplementation 'com.google.firebase:firebase-analytics:18.0.2'
implementation "androidx.core:core-ktx:1.3.2"
implementation 'androidx.browser:browser:1.3.0'
2019-05-16 03:38:29 +00:00
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
def coroutines_version = "1.3.7"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
2020-03-19 15:21:26 +00:00
def lifecycle_version = "2.2.0"
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
2019-11-07 00:10:52 +00:00
kapt "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
implementation 'eu.crydee:syllable-counter:4.0.2'
2017-07-25 04:37:23 +00:00
}
2019-02-10 19:12:51 +00:00
android.productFlavors.each { flavor ->
if (getGradle().getStartParameter().getTaskRequests().toString().toLowerCase().contains(flavor.name)
&& flavor.name == 'play') {
apply plugin: 'com.google.gms.google-services'
}
}
2019-05-16 03:38:29 +00:00
repositories {
mavenCentral()
}
jacoco {
toolVersion = '0.8.0'
}
tasks.withType(Test) {
jacoco.includeNoLocationClasses = true
}
task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest']) {
reports {
xml.enabled = true
html.enabled = true
}
def fileFilter = [ '**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*' ]
def javaDebugTree = fileTree(dir: "$project.buildDir/intermediates/javac/debug/compileDebugJavaWithJavac/classes", excludes: fileFilter)
def kotlinDebugTree = fileTree(dir: "$project.buildDir/tmp/kotlin-classes/debug", excludes: fileFilter)
def mainSrc = "$project.projectDir/src/main/java"
2019-11-07 16:16:44 +00:00
sourceDirectories.setFrom(files([mainSrc]))
classDirectories.setFrom(files([javaDebugTree, kotlinDebugTree]))
executionData.setFrom(fileTree(dir: project.buildDir, includes: [
'jacoco/testDebugUnitTest.exec',
'outputs/code-coverage/connected/*coverage.ec'
2019-11-07 16:16:44 +00:00
]))
}
2021-02-21 04:07:10 +00:00
fladle {
variant = 'playDebug'
useOrchestrator = true
environmentVariables = [
"clearPackageData": "true"
]
testTimeout = "7m"
devices = [
Run UI tests on API 29 For some reason running the tests on API 30 fails with the below exception. Interestingly enough the tests run just fine on my local API 30 emulator. java.lang.RuntimeException: Exception thrown in onCreate() of ComponentInfo{com.wbrawner.simplemarkdown.test/androidx.test.runner.AndroidJUnitRunner}: java.lang.IllegalStateException: Cannot connect to androidx.test.orchestrator.OrchestratorService FATAL EXCEPTION: main Process: com.wbrawner.simplemarkdown, PID: 21960 java.lang.RuntimeException: Exception thrown in onCreate() of ComponentInfo{com.wbrawner.simplemarkdown.test/androidx.test.runner.AndroidJUnitRunner}: java.lang.IllegalStateException: Cannot connect to androidx.test.orchestrator.OrchestratorService at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6709) at android.app.ActivityThread.access$1300(ActivityThread.java:237) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Caused by: java.lang.IllegalStateException: Cannot connect to androidx.test.orchestrator.OrchestratorService at androidx.test.internal.events.client.TestEventServiceConnectionBase.connect(TestEventServiceConnectionBase.java:91) at androidx.test.internal.events.client.TestEventClient.connect(TestEventClient.java:125) at androidx.test.runner.AndroidJUnitRunner.isOrchestratorServiceProvided(AndroidJUnitRunner.java:347) at androidx.test.runner.AndroidJUnitRunner.onCreate(AndroidJUnitRunner.java:319) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6704) ... 8 more
2021-02-21 05:01:43 +00:00
[ "model": "NexusLowRes", "version": "29" ]
2021-02-21 04:07:10 +00:00
]
projectId = 'simplemarkdown'
}
2021-02-21 21:07:21 +00:00
task pullLogFiles(type: Exec) {
commandLine 'adb', 'pull',
'/storage/emulated/0/Android/data/com.wbrawner.simplemarkdown/files/logs'
}