a4d9a9b9d7
Personally, I'm a terrible writer and I've found simple aids really help keep my prose tight. These changes will highlight sentences that are hard to read, based on the number of syllables they contain. Here's what happens based on syllable count: - less than 25 syllables: its easy to read (heuristically speaking), and has no background colour - between 25 and 35 syllables, it's a bit hard to understand, and has a yellow background colour - over 35 syllables, its quite hard to read, and has a red background color This might be well outside the scope of what you had in mind, but I personally find it usefull. At the moment it's on by default, in a seperate observer. Maybe you could add add a setting for it
144 lines
5.5 KiB
Groovy
144 lines
5.5 KiB
Groovy
apply plugin: 'com.android.application'
|
|
apply plugin: 'kotlin-android-extensions'
|
|
apply plugin: 'kotlin-android'
|
|
apply plugin: 'kotlin-kapt'
|
|
apply plugin: 'io.fabric'
|
|
apply plugin: 'jacoco'
|
|
|
|
def keystoreProperties = new Properties()
|
|
try {
|
|
def keystorePropertiesFile = rootProject.file("keystore.properties")
|
|
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
|
|
} catch (FileNotFoundException e) {
|
|
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'] = ""
|
|
}
|
|
|
|
|
|
android {
|
|
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'
|
|
}
|
|
compileSdkVersion 28
|
|
buildToolsVersion '28.0.3'
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
defaultConfig {
|
|
applicationId "com.wbrawner.simplemarkdown"
|
|
minSdkVersion 21
|
|
targetSdkVersion 28
|
|
multiDexEnabled true
|
|
versionCode 20
|
|
versionName "0.7.0"
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
buildConfigField "boolean", "ENABLE_CUSTOM_CSS", "false"
|
|
}
|
|
signingConfigs {
|
|
release {
|
|
keyAlias keystoreProperties['keyAlias']
|
|
keyPassword keystoreProperties['keyPassword']
|
|
storeFile file(keystoreProperties['storeFile'])
|
|
storePassword keystoreProperties['storePassword']
|
|
}
|
|
}
|
|
buildTypes {
|
|
debug {
|
|
testCoverageEnabled true
|
|
}
|
|
release {
|
|
minifyEnabled true
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
signingConfig signingConfigs.release
|
|
buildConfigField "boolean", "ENABLE_CUSTOM_CSS", "false"
|
|
}
|
|
}
|
|
flavorDimensions "platform"
|
|
dexOptions {
|
|
jumboMode true
|
|
}
|
|
testOptions {
|
|
unitTests {
|
|
includeAndroidResources = true
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
def lifecycle_version = "2.0.0"
|
|
testImplementation 'junit:junit:4.12'
|
|
testImplementation 'org.robolectric:robolectric:4.2'
|
|
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
|
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
|
|
exclude group: 'com.android.support', module: 'support-annotations'
|
|
})
|
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
|
|
androidTestImplementation 'androidx.test:runner:1.1.1'
|
|
androidTestImplementation 'androidx.test:rules:1.1.1'
|
|
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
|
|
implementation 'androidx.appcompat:appcompat:1.1.0-alpha05'
|
|
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
|
implementation 'com.google.android.material:material:1.0.0'
|
|
implementation 'androidx.legacy:legacy-support-v13:1.0.0'
|
|
implementation 'com.commonsware.cwac:anddown:0.3.0'
|
|
implementation 'com.google.dagger:dagger:2.22.1'
|
|
annotationProcessor 'com.google.dagger:dagger-compiler:2.22.1'
|
|
kapt 'com.google.dagger:dagger-android-processor:2.22.1'
|
|
kapt 'com.google.dagger:dagger-compiler:2.22.1'
|
|
implementation 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
|
|
implementation 'com.jakewharton.rxbinding2:rxbinding-design:2.0.0'
|
|
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
|
|
implementation 'io.reactivex.rxjava2:rxjava:2.2.7'
|
|
implementation 'com.google.firebase:firebase-core:16.0.9'
|
|
implementation 'com.android.billingclient:billing:1.2'
|
|
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.0'
|
|
implementation 'androidx.multidex:multidex:2.0.1'
|
|
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
|
|
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
|
|
implementation "androidx.core:core-ktx:1.0.2"
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
|
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
|
|
implementation 'eu.crydee:syllable-counter:4.0.2'
|
|
}
|
|
|
|
apply plugin: 'com.google.gms.google-services'
|
|
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"
|
|
|
|
sourceDirectories = files([mainSrc])
|
|
classDirectories = files([javaDebugTree, kotlinDebugTree])
|
|
executionData = fileTree(dir: project.buildDir, includes: [
|
|
'jacoco/testDebugUnitTest.exec', 'outputs/code-coverage/connected/*coverage.ec'
|
|
])
|
|
}
|