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")