From 4aa79a8beb9b0e2a40960c68a5774aa4376a06bb Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Sun, 10 Jan 2021 16:35:52 -0800 Subject: [PATCH] Bump version --- app/build.gradle | 704 +++++++++++++++++++++++----------------------- gradle.properties | 44 +-- 2 files changed, 374 insertions(+), 374 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ab1c54343..5375ac455 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,352 +1,352 @@ -apply plugin: 'com.android.application' -apply plugin: 'com.bugsnag.android.gradle' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' -apply plugin: 'kotlin-kapt' -apply plugin: 'com.getkeepsafe.dexcount' -apply plugin: 'com.gladed.androidgitversion' - - -buildscript { - repositories { - jcenter() - maven { url "https://plugins.gradle.org/m2/" } - } - dependencies { - classpath "com.github.node-gradle:gradle-node-plugin:${Versions.nodeGradle}" - } -} - -apply plugin: 'com.github.node-gradle.node' - -apply from: '../spotless.gradle' -group = APP_GROUP - -android { - compileSdkVersion Versions.targetSdk - - androidGitVersion { - codeFormat = 'MMNNPPXX' - format = '%tag%%-count%%-commit%' - prefix 'v' - } - - defaultConfig { - applicationId "${project.APP_GROUP}.${project.APP_ID.toLowerCase(Locale.CANADA)}" - minSdkVersion kau.Versions.minSdk - targetSdkVersion Versions.targetSdk -// versionCode 2040700 - versionCode androidGitVersion.code() -// versionName '2.4.7' - versionName androidGitVersion.name() - - if (System.getenv('TRAVIS') != 'true') { - // Verification for F-Droid builds - if (versionCode != androidGitVersion.code()) { - throw new GradleException("Version code mismatch, expected ${androidGitVersion.code()}, got $versionCode") - } - if (versionName != androidGitVersion.name()) { - throw new GradleException("Version name mismatch, expected ${androidGitVersion.name()}, got $versionName") - } - } - multiDexEnabled true - testInstrumentationRunner "com.pitchedapps.frost.FrostTestRunner" - javaCompileOptions { - annotationProcessorOptions { - arguments = ["room.schemaLocation": "$projectDir/src/schemas".toString()] - } - } - } - - applicationVariants.all { variant -> - variant.outputs.all { - outputFileName = "${project.APP_ID}-${variant.buildType.name}.apk" - } - } - - lintOptions { - warningsAsErrors true - disable 'TrustAllX509TrustManager', - 'UnusedResources', - 'ContentDescription', - 'RtlSymmetry', - 'MissingTranslation' - - xmlReport false - textReport true - textOutput 'stdout' - } - - buildFeatures { - viewBinding = true - } - - def testKeystoreFile = file('../files/test.keystore') - def testPropFile = file('../files/test.properties') - def withTestSigning = testKeystoreFile.exists() && testPropFile.exists() - - def releaseKeystoreFile = file('../files/release.keystore') - def releasePropFile = file('../files/release.properties') - def withReleaseSigning = releaseKeystoreFile.exists() && releasePropFile.exists() - - signingConfigs { - - debug { - storeFile file("../files/debug.keystore") - storePassword "debugKey" - keyAlias "debugKey" - keyPassword "debugKey" - } - - if (withTestSigning) { - def testProps = new Properties() - testPropFile.withInputStream { testProps.load(it) } - - test { - storeFile testKeystoreFile - storePassword testProps.getProperty('storePassword') - keyAlias testProps.getProperty('keyAlias') - keyPassword testProps.getProperty('keyPassword') - } - } - - if (withReleaseSigning) { - def releaseProps = new Properties() - releasePropFile.withInputStream { releaseProps.load(it) } - - release { - storeFile releaseKeystoreFile - storePassword releaseProps.getProperty('storePassword') - keyAlias releaseProps.getProperty('keyAlias') - keyPassword releaseProps.getProperty('keyPassword') - } - } - - } - - def compilerArgs = ["-Xuse-experimental=kotlin.Experimental" /*, "-XXLanguage:+InlineClasses"*/] - - buildTypes { - debug { - minifyEnabled false - shrinkResources false - applicationIdSuffix ".debug" - versionNameSuffix "-debug" - signingConfig signingConfigs.debug - resValue "string", "frost_name", "Frost Debug" - resValue "string", "frost_web", "Frost Web Debug" - ext.enableBugsnag = false - - kotlinOptions.freeCompilerArgs += compilerArgs - } - releaseTest { - minifyEnabled true - shrinkResources true - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - applicationIdSuffix ".test" - versionNameSuffix "-test" - if (withTestSigning) signingConfig signingConfigs.test - resValue "string", "frost_name", "Frost Test" - resValue "string", "frost_web", "Frost Web Test" - } - release { - minifyEnabled true - shrinkResources true - if (withReleaseSigning) signingConfig signingConfigs.release - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - resValue "string", "frost_name", "Frost" - resValue "string", "frost_web", "Frost Web" - } - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - test.java.srcDirs += 'src/test/kotlin' - androidTest.java.srcDirs += 'src/androidTest/kotlin' - main.assets.srcDirs += ['src/web/assets'] - } - - packagingOptions { - pickFirst 'META-INF/core_release.kotlin_module' - pickFirst 'META-INF/library_release.kotlin_module' - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8.toString() - } - - testOptions.unitTests { - includeAndroidResources = true - // Don't throw runtime exceptions for android calls that are not mocked - returnDefaultValues = true - - // Always show the result of every unit test, even if it passes. - all { - testLogging { - events 'skipped', 'failed', 'standardError' - } - } - } - - androidExtensions { - experimental = true - features = ["parcelize"] - } - -} - -node { - version = '13.8.0' - npmVersion = '6.13.7' - download = true - nodeModulesDir = file("${project.projectDir}/src/web") -} - -task npmCi(type: NpmTask) { - dependsOn npmSetup - npmCommand = ["ci"] -} - -task frostWebGen(type: NpmTask) { - dependsOn npmCi - group 'build' - description 'Generate Frost web assets' - args = ['run', 'compile'] -} - -preBuild.dependsOn(frostWebGen) - -repositories { - google() - jcenter() - maven { url "https://jitpack.io" } -} - -dependencies { - androidTestImplementation kau.Dependencies.kotlinTest - androidTestImplementation kau.Dependencies.espresso - androidTestImplementation kau.Dependencies.testRules - androidTestImplementation kau.Dependencies.testRunner - androidTestImplementation kau.Dependencies.kotlinReflect - - testImplementation kau.Dependencies.kotlinTest - testImplementation kau.Dependencies.kotlinReflect - testImplementation kau.Dependencies.junit - - implementation kau.Dependencies.kotlin - - //noinspection GradleDependency - implementation kau.Dependencies.kau('core', KAU) - //noinspection GradleDependency - implementation kau.Dependencies.kau('core-ui', KAU) - //noinspection GradleDependency - implementation kau.Dependencies.kau('adapter', KAU) - //noinspection GradleDependency - implementation kau.Dependencies.kau('fastadapter', KAU) - //noinspection GradleDependency - implementation kau.Dependencies.kau('about', KAU) - //noinspection GradleDependency - implementation kau.Dependencies.kau('colorpicker', KAU) - //noinspection GradleDependency - implementation kau.Dependencies.kau('mediapicker', KAU) - //noinspection GradleDependency - implementation kau.Dependencies.kau('kpref-activity', KAU) - //noinspection GradleDependency - implementation kau.Dependencies.kau('searchview', KAU) - - implementation kau.Dependencies.coreKtx - implementation kau.Dependencies.swipeRefreshLayout - - implementation "androidx.biometric:biometric:${Versions.andxBiometric}" - - implementation kau.Dependencies.koin - testImplementation kau.Dependencies.koinTest - androidTestImplementation kau.Dependencies.koinTest - - implementation kau.Dependencies.coroutines - - implementation "org.apache.commons:commons-text:${Versions.apacheCommonsText}" - - implementation "com.devbrackets.android:exomedia:${Versions.exoMedia}" - - implementation kau.Dependencies.fastAdapter("diff") - implementation kau.Dependencies.fastAdapter("drag") - implementation kau.Dependencies.fastAdapter("expandable") - - //noinspection GradleDependency - implementation kau.Dependencies.glide - //noinspection GradleDependency - kapt kau.Dependencies.glideKapt - - debugImplementation kau.Dependencies.leakCanary - - //Icons - implementation kau.Dependencies.iconicsMaterial - implementation kau.Dependencies.iconicsCommunity - - implementation kau.Dependencies.materialDialog("input") - - implementation "org.jsoup:jsoup:${Versions.jsoup}" - - implementation "com.squareup.okhttp3:okhttp:${Versions.okhttp}" - implementation "com.squareup.okhttp3:logging-interceptor:${Versions.okhttp}" - testImplementation "com.squareup.okhttp3:mockwebserver:${Versions.okhttp}" - androidTestImplementation "com.squareup.okhttp3:mockwebserver:${Versions.okhttp}" - - implementation kau.Dependencies.bugsnag - - implementation "com.davemorrissey.labs:subsampling-scale-image-view:${Versions.scaleImageView}" - - implementation "androidx.room:room-ktx:${Versions.room}" - implementation "androidx.room:room-runtime:${Versions.room}" - kapt "androidx.room:room-compiler:${Versions.room}" - testImplementation "androidx.room:room-testing:${Versions.room}" - -} - -def kotlinResolutions = ['kotlin-reflect', - 'kotlin-stdlib', - 'kotlin-stdlib-jdk7', - 'kotlin-stdlib-jdk8', - 'kotlin-test', - 'kotlin-test-junit4', - 'kotlin-test-junit5'] - -configurations.all { - resolutionStrategy.eachDependency { DependencyResolveDetails details -> - def requested = details.requested - if (requested.group == 'org.jetbrains.kotlin' && requested.name in kotlinResolutions) { - details.useVersion kau.Versions.kotlin - } - } -} - -task lintGithubReleaseApk { - dependsOn 'spotlessCheck' - dependsOn 'lintRelease' -} - -task testGithubReleaseApk { - dependsOn 'testReleaseUnitTest' - dependsOn 'connectedAndroidTest' -} - -task assembleGithubReleaseApk { - dependsOn 'assembleRelease' -} - -// Validates code and generates apk -// TODO order tasks; though technically it doesn't matter -task createGithubReleaseApk { - dependsOn 'lintGithubReleaseApk' - dependsOn 'testGithubReleaseApk' - dependsOn 'assembleGithubReleaseApk' - - tasks.findByName('testGithubReleaseApk').mustRunAfter 'lintGithubReleaseApk' - tasks.findByName('assembleGithubReleaseApk').mustRunAfter 'testGithubReleaseApk' -} +apply plugin: 'com.android.application' +apply plugin: 'com.bugsnag.android.gradle' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-kapt' +apply plugin: 'com.getkeepsafe.dexcount' +apply plugin: 'com.gladed.androidgitversion' + + +buildscript { + repositories { + jcenter() + maven { url "https://plugins.gradle.org/m2/" } + } + dependencies { + classpath "com.github.node-gradle:gradle-node-plugin:${Versions.nodeGradle}" + } +} + +apply plugin: 'com.github.node-gradle.node' + +apply from: '../spotless.gradle' +group = APP_GROUP + +android { + compileSdkVersion Versions.targetSdk + + androidGitVersion { + codeFormat = 'MMNNPPXX' + format = '%tag%%-count%%-commit%' + prefix 'v' + } + + defaultConfig { + applicationId "${project.APP_GROUP}.${project.APP_ID.toLowerCase(Locale.CANADA)}" + minSdkVersion kau.Versions.minSdk + targetSdkVersion Versions.targetSdk +// versionCode 2040700 + versionCode androidGitVersion.code() +// versionName '2.4.7' + versionName androidGitVersion.name() + + if (System.getenv('TRAVIS') != 'true') { + // Verification for F-Droid builds + if (versionCode != androidGitVersion.code()) { + throw new GradleException("Version code mismatch, expected ${androidGitVersion.code()}, got $versionCode") + } + if (versionName != androidGitVersion.name()) { + throw new GradleException("Version name mismatch, expected ${androidGitVersion.name()}, got $versionName") + } + } + multiDexEnabled true + testInstrumentationRunner "com.pitchedapps.frost.FrostTestRunner" + javaCompileOptions { + annotationProcessorOptions { + arguments = ["room.schemaLocation": "$projectDir/src/schemas".toString()] + } + } + } + + applicationVariants.all { variant -> + variant.outputs.all { + outputFileName = "${project.APP_ID}-${variant.buildType.name}.apk" + } + } + + lintOptions { + warningsAsErrors true + disable 'TrustAllX509TrustManager', + 'UnusedResources', + 'ContentDescription', + 'RtlSymmetry', + 'MissingTranslation' + + xmlReport false + textReport true + textOutput 'stdout' + } + + buildFeatures { + viewBinding = true + } + + def testKeystoreFile = file('../files/test.keystore') + def testPropFile = file('../files/test.properties') + def withTestSigning = testKeystoreFile.exists() && testPropFile.exists() + + def releaseKeystoreFile = file('../files/release.keystore') + def releasePropFile = file('../files/release.properties') + def withReleaseSigning = releaseKeystoreFile.exists() && releasePropFile.exists() + + signingConfigs { + + debug { + storeFile file("../files/debug.keystore") + storePassword "debugKey" + keyAlias "debugKey" + keyPassword "debugKey" + } + + if (withTestSigning) { + def testProps = new Properties() + testPropFile.withInputStream { testProps.load(it) } + + test { + storeFile testKeystoreFile + storePassword testProps.getProperty('storePassword') + keyAlias testProps.getProperty('keyAlias') + keyPassword testProps.getProperty('keyPassword') + } + } + + if (withReleaseSigning) { + def releaseProps = new Properties() + releasePropFile.withInputStream { releaseProps.load(it) } + + release { + storeFile releaseKeystoreFile + storePassword releaseProps.getProperty('storePassword') + keyAlias releaseProps.getProperty('keyAlias') + keyPassword releaseProps.getProperty('keyPassword') + } + } + + } + + def compilerArgs = ["-Xuse-experimental=kotlin.Experimental" /*, "-XXLanguage:+InlineClasses"*/] + + buildTypes { + debug { + minifyEnabled false + shrinkResources false + applicationIdSuffix ".debug" + versionNameSuffix "-debug" + signingConfig signingConfigs.debug + resValue "string", "frost_name", "Frost Debug" + resValue "string", "frost_web", "Frost Web Debug" + ext.enableBugsnag = false + + kotlinOptions.freeCompilerArgs += compilerArgs + } + releaseTest { + minifyEnabled true + shrinkResources true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + applicationIdSuffix ".test" + versionNameSuffix "-test" + if (withTestSigning) signingConfig signingConfigs.test + resValue "string", "frost_name", "Frost Test" + resValue "string", "frost_web", "Frost Web Test" + } + release { + minifyEnabled true + shrinkResources true + if (withReleaseSigning) signingConfig signingConfigs.release + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + resValue "string", "frost_name", "Frost" + resValue "string", "frost_web", "Frost Web" + } + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + test.java.srcDirs += 'src/test/kotlin' + androidTest.java.srcDirs += 'src/androidTest/kotlin' + main.assets.srcDirs += ['src/web/assets'] + } + + packagingOptions { + pickFirst 'META-INF/core_release.kotlin_module' + pickFirst 'META-INF/library_release.kotlin_module' + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_1_8.toString() + } + + testOptions.unitTests { + includeAndroidResources = true + // Don't throw runtime exceptions for android calls that are not mocked + returnDefaultValues = true + + // Always show the result of every unit test, even if it passes. + all { + testLogging { + events 'skipped', 'failed', 'standardError' + } + } + } + + androidExtensions { + experimental = true + features = ["parcelize"] + } + +} + +node { + version = '13.8.0' + npmVersion = '6.13.7' + download = true + nodeModulesDir = file("${project.projectDir}/src/web") +} + +task npmCi(type: NpmTask) { + dependsOn npmSetup + npmCommand = ["ci"] +} + +task frostWebGen(type: NpmTask) { + dependsOn npmCi + group 'build' + description 'Generate Frost web assets' + args = ['run', 'compile'] +} + +preBuild.dependsOn(frostWebGen) + +repositories { + google() + jcenter() + maven { url "https://jitpack.io" } +} + +dependencies { + androidTestImplementation kau.Dependencies.kotlinTest + androidTestImplementation kau.Dependencies.espresso + androidTestImplementation kau.Dependencies.testRules + androidTestImplementation kau.Dependencies.testRunner + androidTestImplementation kau.Dependencies.kotlinReflect + + testImplementation kau.Dependencies.kotlinTest + testImplementation kau.Dependencies.kotlinReflect + testImplementation kau.Dependencies.junit + + implementation kau.Dependencies.kotlin + + //noinspection GradleDependency + implementation kau.Dependencies.kau('core', KAU) + //noinspection GradleDependency + implementation kau.Dependencies.kau('core-ui', KAU) + //noinspection GradleDependency + implementation kau.Dependencies.kau('adapter', KAU) + //noinspection GradleDependency + implementation kau.Dependencies.kau('fastadapter', KAU) + //noinspection GradleDependency + implementation kau.Dependencies.kau('about', KAU) + //noinspection GradleDependency + implementation kau.Dependencies.kau('colorpicker', KAU) + //noinspection GradleDependency + implementation kau.Dependencies.kau('mediapicker', KAU) + //noinspection GradleDependency + implementation kau.Dependencies.kau('kpref-activity', KAU) + //noinspection GradleDependency + implementation kau.Dependencies.kau('searchview', KAU) + + implementation kau.Dependencies.coreKtx + implementation kau.Dependencies.swipeRefreshLayout + + implementation "androidx.biometric:biometric:${Versions.andxBiometric}" + + implementation kau.Dependencies.koin + testImplementation kau.Dependencies.koinTest + androidTestImplementation kau.Dependencies.koinTest + + implementation kau.Dependencies.coroutines + + implementation "org.apache.commons:commons-text:${Versions.apacheCommonsText}" + + implementation "com.devbrackets.android:exomedia:${Versions.exoMedia}" + + implementation kau.Dependencies.fastAdapter("diff") + implementation kau.Dependencies.fastAdapter("drag") + implementation kau.Dependencies.fastAdapter("expandable") + + //noinspection GradleDependency + implementation kau.Dependencies.glide + //noinspection GradleDependency + kapt kau.Dependencies.glideKapt + + debugImplementation kau.Dependencies.leakCanary + + //Icons + implementation kau.Dependencies.iconicsMaterial + implementation kau.Dependencies.iconicsCommunity + + implementation kau.Dependencies.materialDialog("input") + + implementation "org.jsoup:jsoup:${Versions.jsoup}" + + implementation "com.squareup.okhttp3:okhttp:${Versions.okhttp}" + implementation "com.squareup.okhttp3:logging-interceptor:${Versions.okhttp}" + testImplementation "com.squareup.okhttp3:mockwebserver:${Versions.okhttp}" + androidTestImplementation "com.squareup.okhttp3:mockwebserver:${Versions.okhttp}" + + implementation kau.Dependencies.bugsnag + + implementation "com.davemorrissey.labs:subsampling-scale-image-view:${Versions.scaleImageView}" + + implementation "androidx.room:room-ktx:${Versions.room}" + implementation "androidx.room:room-runtime:${Versions.room}" + kapt "androidx.room:room-compiler:${Versions.room}" + testImplementation "androidx.room:room-testing:${Versions.room}" + +} + +def kotlinResolutions = ['kotlin-reflect', + 'kotlin-stdlib', + 'kotlin-stdlib-jdk7', + 'kotlin-stdlib-jdk8', + 'kotlin-test', + 'kotlin-test-junit4', + 'kotlin-test-junit5'] + +configurations.all { + resolutionStrategy.eachDependency { DependencyResolveDetails details -> + def requested = details.requested + if (requested.group == 'org.jetbrains.kotlin' && requested.name in kotlinResolutions) { + details.useVersion kau.Versions.kotlin + } + } +} + +task lintGithubReleaseApk { + dependsOn 'spotlessCheck' + dependsOn 'lintRelease' +} + +task testGithubReleaseApk { + dependsOn 'testReleaseUnitTest' + dependsOn 'connectedAndroidTest' +} + +task assembleGithubReleaseApk { + dependsOn 'assembleRelease' +} + +// Validates code and generates apk +// TODO order tasks; though technically it doesn't matter +task createGithubReleaseApk { + dependsOn 'lintGithubReleaseApk' + dependsOn 'testGithubReleaseApk' + dependsOn 'assembleGithubReleaseApk' + + tasks.findByName('testGithubReleaseApk').mustRunAfter 'lintGithubReleaseApk' + tasks.findByName('assembleGithubReleaseApk').mustRunAfter 'testGithubReleaseApk' +} diff --git a/gradle.properties b/gradle.properties index a8d6d5ea6..6b46ab893 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,22 +1,22 @@ -# Project-wide Gradle settings. -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true -org.gradle.daemon = true - -APP_ID=Frost -APP_GROUP=com.pitchedapps - -KAU=aa5e622 - -android.useAndroidX=true -android.enableJetifier=true +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +org.gradle.daemon = true + +APP_ID=Frost +APP_GROUP=com.pitchedapps + +KAU=67825d6 + +android.useAndroidX=true +android.enableJetifier=true