aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2021-01-10 17:21:24 -0800
committerAllan Wang <me@allanwang.ca>2021-01-10 17:21:24 -0800
commit6b00985c54b9ea4eb02f7bf9f253971ee1a77f22 (patch)
tree4f11b6b9a643c79934346f10335a5e7eb7dcb1d3
parentf90bed24921646e02754139df0918577d3cccc35 (diff)
downloadfrost-6b00985c54b9ea4eb02f7bf9f253971ee1a77f22.tar.gz
frost-6b00985c54b9ea4eb02f7bf9f253971ee1a77f22.tar.bz2
frost-6b00985c54b9ea4eb02f7bf9f253971ee1a77f22.zip
Fix line endings
-rw-r--r--app/build.gradle712
-rw-r--r--gradle.properties44
2 files changed, 378 insertions, 378 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 47ed102f..43391c72 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,356 +1,356 @@
-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",
- "-Xopt-in=kotlin.RequiresOptIn",
- ]
-
- 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",
+ "-Xopt-in=kotlin.RequiresOptIn",
+ ]
+
+ 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'
+} \ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 6b46ab89..0f07376d 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=67825d6
-
-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