From 09f366d14b75181050c18754196ec2d65757544d Mon Sep 17 00:00:00 2001 From: Carlos Date: Sat, 7 Mar 2020 07:08:50 -0500 Subject: [PATCH] update to gradle 5.6.4 update to kotlin 1.3.70 updated jsoup to 1.12.2 updated evernote android job to 1.4.2 updated sqlite-android to 3.31.0 updated junit to 4.13 updated coroutines to 1.3.3 removed packaging options since these were required for travis releases added logic for formatter but kept it commented out switch everything to build.kts --- app/build.gradle | 274 ----------------------- app/build.gradle.kts | 252 +++++++++++++++++++++ build.gradle | 27 --- build.gradle.kts | 17 ++ gradle/wrapper/gradle-wrapper.properties | 4 +- settings.gradle | 1 - settings.gradle.kts | 25 +++ 7 files changed, 296 insertions(+), 304 deletions(-) delete mode 100644 app/build.gradle create mode 100644 app/build.gradle.kts delete mode 100644 build.gradle create mode 100644 build.gradle.kts delete mode 100644 settings.gradle create mode 100644 settings.gradle.kts diff --git a/app/build.gradle b/app/build.gradle deleted file mode 100644 index 407eb03ad1..0000000000 --- a/app/build.gradle +++ /dev/null @@ -1,274 +0,0 @@ -import java.text.SimpleDateFormat - -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' -apply plugin: 'kotlin-kapt' -apply plugin: 'com.github.zellius.shortcut-helper' - -shortcutHelper.filePath = './shortcuts.xml' - -ext { - // Git is needed in your system PATH for these commands to work. - // If it's not installed, you can return a random value as a workaround - getCommitCount = { - return 'git rev-list --count HEAD'.execute().text.trim() - // return "1" - } - - getGitSha = { - return 'git rev-parse --short HEAD'.execute().text.trim() - // return "1" - } - - getBuildTime = { - def df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'") - df.setTimeZone(TimeZone.getTimeZone("UTC")) - return df.format(new Date()) - } -} - -android { - compileSdkVersion 29 - buildToolsVersion '29.0.2' - publishNonDefault true - - defaultConfig { - applicationId "eu.kanade.tachiyomi" - minSdkVersion 21 - targetSdkVersion 29 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - versionCode 60 - versionName '0.9.81' - - buildConfigField "String", "COMMIT_COUNT", "\"${getCommitCount()}\"" - buildConfigField "String", "COMMIT_SHA", "\"${getGitSha()}\"" - buildConfigField "String", "BUILD_TIME", "\"${getBuildTime()}\"" - buildConfigField "boolean", "INCLUDE_UPDATER", "false" - - vectorDrawables.useSupportLibrary = true - - multiDexEnabled true - - ndk { - abiFilters "armeabi-v7a", "arm64-v8a", "x86" - } - } - - buildTypes { - debug { - versionNameSuffix "-${getCommitCount()}" - applicationIdSuffix ".debug" - } - release { - applicationIdSuffix = '.j2k' - } - } - - flavorDimensions "default" - - productFlavors { - standard { - buildConfigField "boolean", "INCLUDE_UPDATER", "true" - dimension "default" - } - fdroid { - dimension "default" - } - dev { - resConfigs "en" - dimension "default" - } - } - - packagingOptions { - exclude 'META-INF/DEPENDENCIES' - exclude 'LICENSE.txt' - exclude 'META-INF/LICENSE' - exclude 'META-INF/LICENSE.txt' - exclude 'META-INF/NOTICE' - } - - lintOptions { - abortOnError false - checkReleaseBuilds false - } - - compileOptions { - sourceCompatibility = 1.8 - targetCompatibility = 1.8 - } - - kotlinOptions { - jvmTarget = "1.8" - } -} - -dependencies { - - // Modified dependencies - implementation 'com.github.inorichi:subsampling-scale-image-view:ac0dae7' - implementation 'com.github.inorichi:junrar-android:634c1f5' - - // Android support library - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'androidx.cardview:cardview:1.0.0' - implementation 'com.google.android.material:material:1.1.0' - implementation 'androidx.recyclerview:recyclerview:1.1.0' - implementation 'androidx.preference:preference:1.1.0' - implementation 'androidx.annotation:annotation:1.1.0' - implementation 'androidx.browser:browser:1.2.0' - implementation 'androidx.biometric:biometric:1.0.1' - implementation 'androidx.palette:palette:1.0.0' - - implementation 'androidx.constraintlayout:constraintlayout:1.1.3' - - implementation 'androidx.multidex:multidex:2.0.1' - - standardImplementation 'com.google.firebase:firebase-core:17.2.2' - - final lifecycle_version = "2.1.0" - implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version" - implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" - - // ReactiveX - implementation 'io.reactivex:rxandroid:1.2.1' - implementation 'io.reactivex:rxjava:1.3.8' - implementation 'com.jakewharton.rxrelay:rxrelay:1.2.0' - implementation 'com.f2prateek.rx.preferences:rx-preferences:1.0.2' - implementation 'com.github.pwittchen:reactivenetwork:0.13.0' - - // Network client - final okhttp_version = '4.3.1' - implementation "com.squareup.okhttp3:okhttp:$okhttp_version" - implementation "com.squareup.okhttp3:logging-interceptor:$okhttp_version" - implementation 'com.squareup.okio:okio:2.4.3' - - // REST - final retrofit_version = '2.7.1' - implementation "com.squareup.retrofit2:retrofit:$retrofit_version" - implementation "com.squareup.retrofit2:converter-gson:$retrofit_version" - implementation "com.squareup.retrofit2:adapter-rxjava:$retrofit_version" - - // JSON - implementation 'com.google.code.gson:gson:2.8.6' - implementation 'com.github.salomonbrys.kotson:kotson:2.5.0' - - // JavaScript engine - implementation 'com.squareup.duktape:duktape-android:1.3.0' - - // Disk - implementation 'com.jakewharton:disklrucache:2.0.2' - implementation 'com.github.inorichi:unifile:e9ee588' - - // HTML parser - implementation 'org.jsoup:jsoup:1.12.1' - - // Job scheduling - implementation 'com.evernote:android-job:1.2.5' - implementation 'com.google.android.gms:play-services-gcm:17.0.0' - - // Changelog - implementation 'com.github.gabrielemariotti.changeloglib:changelog:2.1.0' - - // Database - implementation 'androidx.sqlite:sqlite:2.1.0' - implementation 'com.github.inorichi.storio:storio-common:8be19de@aar' - implementation 'com.github.inorichi.storio:storio-sqlite:8be19de@aar' - implementation 'io.requery:sqlite-android:3.25.2' - - // Model View Presenter - final nucleus_version = '3.0.0' - implementation "info.android15.nucleus:nucleus:$nucleus_version" - implementation "info.android15.nucleus:nucleus-support-v7:$nucleus_version" - - // Dependency injection - implementation "com.github.inorichi.injekt:injekt-core:65b0440" - - // Image library - final glide_version = '4.11.0' - implementation "com.github.bumptech.glide:glide:$glide_version" - implementation "com.github.bumptech.glide:okhttp3-integration:$glide_version" - kapt "com.github.bumptech.glide:compiler:$glide_version" - - // Transformations - implementation 'jp.wasabeef:glide-transformations:4.0.0' - - // Logging - implementation 'com.jakewharton.timber:timber:4.7.1' - - // Crash reports - implementation 'ch.acra:acra:4.9.2' - - // UI - implementation 'com.dmitrymalkovich.android:material-design-dimens:1.4' - implementation 'com.github.dmytrodanylyk.android-process-button:library:1.0.4' - implementation 'eu.davidea:flexible-adapter:5.1.0' - implementation 'eu.davidea:flexible-adapter-ui:1.0.0' - implementation 'com.nononsenseapps:filepicker:2.5.2' - implementation 'com.github.amulyakhare:TextDrawable:558677e' - implementation 'com.afollestad.material-dialogs:core:3.1.1' - implementation 'com.afollestad.material-dialogs:input:3.1.1' - implementation 'me.zhanghai.android.systemuihelper:library:1.0.0' - implementation 'com.nightlynexus.viewstatepageradapter:viewstatepageradapter:1.1.0' - implementation 'com.github.mthli:Slice:v1.2' - implementation 'com.github.kizitonwose:AndroidTagGroup:1.6.0' - implementation 'com.github.chrisbanes:PhotoView:2.3.0' - implementation 'com.github.carlosesco:DirectionalViewPager:a844dbca0a' - - // Conductor - implementation 'com.bluelinelabs:conductor:2.1.5' - implementation ("com.bluelinelabs:conductor-support:2.1.5") { - exclude group: "com.android.support" - } - implementation 'com.github.inorichi:conductor-support-preference:a32c357' - - // RxBindings - final rxbindings_version = '1.0.1' - implementation "com.jakewharton.rxbinding:rxbinding-kotlin:$rxbindings_version" - implementation "com.jakewharton.rxbinding:rxbinding-appcompat-v7-kotlin:$rxbindings_version" - implementation "com.jakewharton.rxbinding:rxbinding-support-v4-kotlin:$rxbindings_version" - implementation "com.jakewharton.rxbinding:rxbinding-recyclerview-v7-kotlin:$rxbindings_version" - - // Tests - testImplementation 'junit:junit:4.12' - testImplementation 'org.assertj:assertj-core:1.7.1' - testImplementation 'org.mockito:mockito-core:1.10.19' - - final robolectric_version = '3.1.4' - testImplementation "org.robolectric:robolectric:$robolectric_version" - testImplementation "org.robolectric:shadows-multidex:$robolectric_version" - testImplementation "org.robolectric:shadows-play-services:$robolectric_version" - - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - - final coroutines_version = '1.3.2' - implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version" - implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version" - - // Text distance - implementation 'info.debatty:java-string-similarity:1.2.1' -} - -buildscript { - ext.kotlin_version = '1.3.61' - repositories { - mavenCentral() - } - dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" - } -} - -repositories { - mavenCentral() -} - -androidExtensions { - experimental = true -} - -if (getGradle().getStartParameter().getTaskRequests().toString().contains("Standard")) { - apply plugin: 'com.google.gms.google-services' -} diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000000..6e347b7bae --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,252 @@ +import java.io.ByteArrayOutputStream +import java.time.LocalDateTime +import java.time.ZoneOffset +import java.time.format.DateTimeFormatter + +plugins { + id("com.android.application") + kotlin("android") + kotlin("android.extensions") + kotlin("kapt") + //id("org.jmailen.kotlinter") version "2.3.1" + id("com.github.zellius.shortcut-helper") + id("com.google.gms.google-services") apply false +} + +fun getBuildTime() = DateTimeFormatter.ISO_DATE_TIME.format(LocalDateTime.now(ZoneOffset.UTC)) +fun getCommitCount() = runCommand("git rev-list --count HEAD") +fun getGitSha() = runCommand("git rev-parse --short HEAD") + +fun runCommand(command: String): String { + val byteOut = ByteArrayOutputStream() + project.exec { + commandLine = command.split(" ") + standardOutput = byteOut + } + return String(byteOut.toByteArray()).trim() +} + +android { + compileSdkVersion(29) + buildToolsVersion("29.0.2") + + defaultConfig { + minSdkVersion(21) + targetSdkVersion(29) + applicationId = "eu.kanade.tachiyomi" + versionCode = 60 + versionName = "0.9.81" + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + multiDexEnabled = true + + buildConfigField("String", "COMMIT_COUNT", "\"${getCommitCount()}\"") + buildConfigField("String", "COMMIT_SHA", "\"${getGitSha()}\"") + buildConfigField("String", "BUILD_TIME", "\"${getBuildTime()}\"") + buildConfigField("Boolean", "INCLUDE_UPDATER", "false") + + + ndk { + abiFilters("armeabi-v7a", "arm64-v8a", "x86") + } + } + buildTypes { + getByName("debug") { + applicationIdSuffix = ".debug" + } + getByName("release") { + applicationIdSuffix = ".j2k" + } + } + + flavorDimensions("default") + + productFlavors { + create("standard") { + buildConfigField("Boolean", "INCLUDE_UPDATER", "true") + } + create("dev") { + resConfig("en") + } + } + + lintOptions { + isAbortOnError = false + isCheckReleaseBuilds = false + } + + compileOptions { + setSourceCompatibility(1.8) + setTargetCompatibility(1.8) + } + kotlinOptions { + jvmTarget = "1.8" + } +} +androidExtensions { + isExperimental = true +} + +shortcutHelper { + setFilePath("./shortcuts.xml") +} + +dependencies { +// Modified dependencies + implementation("com.github.inorichi:subsampling-scale-image-view:ac0dae7") + implementation("com.github.inorichi:junrar-android:634c1f5") + + +// Android support library + implementation("androidx.appcompat:appcompat:1.1.0") + implementation("androidx.cardview:cardview:1.0.0") + implementation("com.google.android.material:material:1.1.0") + implementation("androidx.recyclerview:recyclerview:1.1.0") + implementation("androidx.preference:preference:1.1.0") + implementation("androidx.annotation:annotation:1.1.0") + implementation("androidx.browser:browser:1.2.0") + implementation("androidx.biometric:biometric:1.0.1") + implementation("androidx.palette:palette:1.0.0") + + + implementation("androidx.constraintlayout:constraintlayout:1.1.3") + + implementation("androidx.multidex:multidex:2.0.1") + + implementation("com.google.firebase:firebase-core:17.2.3") + + val lifecycle_version = "2.1.0" + implementation("androidx.lifecycle:lifecycle-extensions:$lifecycle_version") + implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycle_version") + +// ReactiveX + implementation("io.reactivex:rxandroid:1.2.1") + implementation("io.reactivex:rxjava:1.3.8") + implementation("com.jakewharton.rxrelay:rxrelay:1.2.0") + implementation("com.f2prateek.rx.preferences:rx-preferences:1.0.2") + implementation("com.github.pwittchen:reactivenetwork:0.13.0") + +// Network client + val okhttp_version = "4.3.1" + implementation("com.squareup.okhttp3:okhttp:$okhttp_version") + implementation("com.squareup.okhttp3:logging-interceptor:$okhttp_version") + implementation("com.squareup.okio:okio:2.4.3") + +// REST + val retrofit_version = "2.7.1" + implementation("com.squareup.retrofit2:retrofit:$retrofit_version") + implementation("com.squareup.retrofit2:converter-gson:$retrofit_version") + implementation("com.squareup.retrofit2:adapter-rxjava:$retrofit_version") + +// JSON + implementation("com.google.code.gson:gson:2.8.6") + implementation("com.github.salomonbrys.kotson:kotson:2.5.0") + +// JavaScript engine + implementation("com.squareup.duktape:duktape-android:1.3.0") + +// Disk + implementation("com.jakewharton:disklrucache:2.0.2") + implementation("com.github.inorichi:unifile:e9ee588") + +// HTML parser + implementation("org.jsoup:jsoup:1.12.2") + +// Job scheduling + implementation("com.evernote:android-job:1.4.2") + implementation("com.google.android.gms:play-services-gcm:17.0.0") + +// Changelog + implementation("com.github.gabrielemariotti.changeloglib:changelog:2.1.0") + +// Database + implementation("androidx.sqlite:sqlite:2.1.0") + implementation("com.github.inorichi.storio:storio-common:8be19de@aar") + implementation("com.github.inorichi.storio:storio-sqlite:8be19de@aar") + implementation("io.requery:sqlite-android:3.31.0") + +// Model View Presenter + val nucleus_version = "3.0.0" + implementation("info.android15.nucleus:nucleus:$nucleus_version") + implementation("info.android15.nucleus:nucleus-support-v7:$nucleus_version") + +// Dependency injection + implementation("com.github.inorichi.injekt:injekt-core:65b0440") + +// Image library + val glide_version = "4.11.0" + implementation("com.github.bumptech.glide:glide:$glide_version") + implementation("com.github.bumptech.glide:okhttp3-integration:$glide_version") + kapt("com.github.bumptech.glide:compiler:$glide_version") + +// Transformations + implementation("jp.wasabeef:glide-transformations:4.1.0") + +// Logging + implementation("com.jakewharton.timber:timber:4.7.1") + +// UI + implementation("com.dmitrymalkovich.android:material-design-dimens:1.4") + implementation("com.github.dmytrodanylyk.android-process-button:library:1.0.4") + implementation("eu.davidea:flexible-adapter:5.1.0") + implementation("eu.davidea:flexible-adapter-ui:1.0.0") + implementation("com.nononsenseapps:filepicker:2.5.2") + implementation("com.github.amulyakhare:TextDrawable:558677e") + implementation("com.afollestad.material-dialogs:core:3.3.0") + implementation("com.afollestad.material-dialogs:input:3.3.0") + implementation("me.zhanghai.android.systemuihelper:library:1.0.0") + implementation("com.nightlynexus.viewstatepageradapter:viewstatepageradapter:1.1.0") + implementation("com.github.mthli:Slice:v1.2") + + implementation("com.github.kizitonwose:AndroidTagGroup:1.6.0") + implementation("com.github.chrisbanes:PhotoView:2.3.0") + implementation("com.github.carlosesco:DirectionalViewPager:a844dbca0a") + +// Conductor + implementation("com.bluelinelabs:conductor:2.1.5") + implementation("com.bluelinelabs:conductor-support:2.1.5") { + exclude("group", "com.android.support") + } + implementation("com.github.inorichi:conductor-support-preference:a32c357") + +// RxBindings + val rxbindings_version = "1.0.1" + implementation("com.jakewharton.rxbinding:rxbinding-kotlin:$rxbindings_version") + implementation("com.jakewharton.rxbinding:rxbinding-appcompat-v7-kotlin:$rxbindings_version") + implementation("com.jakewharton.rxbinding:rxbinding-support-v4-kotlin:$rxbindings_version") + implementation("com.jakewharton.rxbinding:rxbinding-recyclerview-v7-kotlin:$rxbindings_version") + +// Tests + testImplementation("junit:junit:4.13") + testImplementation("org.assertj:assertj-core:1.7.1") + testImplementation("org.mockito:mockito-core:1.10.19") + + val robolectric_version = "3.1.4" + testImplementation("org.robolectric:robolectric:$robolectric_version") + testImplementation("org.robolectric:shadows-multidex:$robolectric_version") + testImplementation("org.robolectric:shadows-play-services:$robolectric_version") + + + implementation(kotlin("stdlib", org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION)) + + val coroutines_version = "1.3.3" + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version") + + //Crash reports + val acraVersion = "4.9.2" + implementation("ch.acra:acra:$acraVersion") + + // Text distance + implementation("info.debatty:java-string-similarity:1.2.1") +} + +/*tasks.preBuild { + dependsOn(tasks.lintKotlin) +} +tasks.lintKotlin { + dependsOn(tasks.formatKotlin) +}*/ + +if (getGradle().getStartParameter().getTaskRequests().toString().contains("Standard")) { + apply(mapOf("plugin" to "com.google.gms.google-services")) +} \ No newline at end of file diff --git a/build.gradle b/build.gradle deleted file mode 100644 index dfa33112f6..0000000000 --- a/build.gradle +++ /dev/null @@ -1,27 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. -apply plugin: 'com.github.ben-manes.versions' - -buildscript { - ext.kotlin_version = '1.3.61' - - repositories { - google() - jcenter() - } - dependencies { - classpath 'com.android.tools.build:gradle:3.5.3' - classpath 'com.github.ben-manes:gradle-versions-plugin:0.22.0' - classpath 'com.github.zellius:android-shortcut-gradle-plugin:0.1.2' - classpath 'com.google.gms:google-services:4.3.3' - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } -} - -allprojects { - repositories { - google() - maven { url "https://www.jitpack.io" } - jcenter() - } -} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000000..4985ef1585 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,17 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins{ + id("com.github.ben-manes.versions") version "0.28.0" +} +// Top-level build file where you can add configuration options common to all sub-projects/modules. +allprojects { + repositories { + google() + mavenCentral() + maven { setUrl("https://jitpack.io") } + jcenter() + } +} + +tasks.register("clean", Delete::class) { + delete(rootProject.buildDir) +} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 56fac75514..1550a30aab 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sat Oct 26 14:20:49 PDT 2019 +#Sat Mar 07 06:14:45 EST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index e7b4def49c..0000000000 --- a/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':app' diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000000..d43066f10b --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,25 @@ +pluginManagement { + repositories { + gradlePluginPortal() + jcenter() + google() + } + resolutionStrategy { + eachPlugin { + if (requested.id.id.startsWith("org.jetbrains.kotlin")) { + useVersion("1.3.70") + } else if (requested.id.id.equals("com.android.application")) { + useModule("com.android.tools.build:gradle:3.6.0") + } else if (requested.id.id.equals("com.google.gms.google-services")) { + useModule("com.google.gms:google-services:4.3.3") + }else if (requested.id.id.equals("com.google.gms.google-services")) { + useModule("com.google.gms:google-services:4.3.3") + }else if(requested.id.id.equals("com.github.zellius.shortcut-helper")){ + useModule("com.github.zellius:android-shortcut-gradle-plugin:0.1.2") + } + + } + } +} + +include(":app")