
Update proguard file so we could potentially enable proguard in the future Update dependencies Downgrade duktape to fix MangaPlus Remove useless dependencies Remove useless tabGravity Fix debug version crashing in background
338 lines
12 KiB
Groovy
Executable File
338 lines
12 KiB
Groovy
Executable File
//noinspection GradleDependency
|
|
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'
|
|
// Realm (EH)
|
|
apply plugin: 'realm-android'
|
|
|
|
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 28
|
|
buildToolsVersion '28.0.3'
|
|
|
|
defaultConfig {
|
|
applicationId "eu.kanade.tachiyomi.eh2"
|
|
minSdkVersion 16
|
|
targetSdkVersion 28
|
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
|
versionCode 8403
|
|
versionName "v8.4.3-EH"
|
|
|
|
buildConfigField "String", "COMMIT_COUNT", "\"${getCommitCount()}\""
|
|
buildConfigField "String", "COMMIT_SHA", "\"${getGitSha()}\""
|
|
buildConfigField "String", "BUILD_TIME", "\"${getBuildTime()}\""
|
|
buildConfigField "boolean", "INCLUDE_UPDATER", "true"
|
|
|
|
vectorDrawables.useSupportLibrary = true
|
|
|
|
multiDexEnabled true
|
|
|
|
ndk {
|
|
abiFilters "armeabi-v7a", "arm64-v8a", "x86"
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
versionNameSuffix "-${getCommitCount()}"
|
|
applicationIdSuffix ".debug"
|
|
ext.enableCrashlytics = false
|
|
}
|
|
releaseTest {
|
|
applicationIdSuffix ".rt"
|
|
// minifyEnabled true
|
|
// shrinkResources true
|
|
zipAlignEnabled true
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
}
|
|
release {
|
|
// minifyEnabled true
|
|
// shrinkResources true
|
|
zipAlignEnabled true
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
}
|
|
}
|
|
|
|
flavorDimensions "default"
|
|
|
|
productFlavors {
|
|
standard {
|
|
buildConfigField "boolean", "INCLUDE_UPDATER", "true"
|
|
dimension "default"
|
|
}
|
|
fdroid {
|
|
dimension "default"
|
|
}
|
|
dev {
|
|
resConfigs "en", "xxhdpi"
|
|
dimension "default"
|
|
}
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility 1.8
|
|
targetCompatibility 1.8
|
|
}
|
|
|
|
packagingOptions {
|
|
exclude 'META-INF/DEPENDENCIES'
|
|
exclude 'LICENSE.txt'
|
|
exclude 'META-INF/LICENSE'
|
|
exclude 'META-INF/LICENSE.txt'
|
|
exclude 'META-INF/NOTICE'
|
|
exclude 'META-INF/*.kotlin_module'
|
|
|
|
// Compatibility for two RxJava versions (EXH)
|
|
exclude 'META-INF/rxjava.properties'
|
|
}
|
|
|
|
lintOptions {
|
|
abortOnError false
|
|
checkReleaseBuilds false
|
|
}
|
|
|
|
}
|
|
|
|
dependencies {
|
|
|
|
// Modified dependencies
|
|
implementation 'com.github.inorichi:subsampling-scale-image-view:ac0dae7'
|
|
implementation 'com.github.inorichi:junrar-android:634c1f5'
|
|
|
|
// Android support library
|
|
final support_library_version = '28.0.0'
|
|
implementation "com.android.support:support-v4:$support_library_version"
|
|
implementation "com.android.support:appcompat-v7:$support_library_version"
|
|
implementation "com.android.support:cardview-v7:$support_library_version"
|
|
implementation "com.android.support:design:$support_library_version"
|
|
implementation "com.android.support:recyclerview-v7:$support_library_version"
|
|
implementation "com.android.support:preference-v7:$support_library_version"
|
|
implementation "com.android.support:support-annotations:$support_library_version"
|
|
implementation "com.android.support:customtabs:$support_library_version"
|
|
|
|
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
|
|
|
|
implementation 'com.android.support:multidex:1.0.3'
|
|
|
|
// DO NOT UPGRADE TO 17.0, IT REQUIRES ANDROIDX
|
|
standardImplementation 'com.google.firebase:firebase-core:16.0.9'
|
|
|
|
// 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.12.4'
|
|
|
|
// Network client
|
|
implementation "com.squareup.okhttp3:okhttp:3.12.3" // DO NOT UPGRADE TO 3.13.X+, it requires minSdk 21
|
|
implementation 'com.squareup.okio:okio:1.17.4' // TODO I think we can do 2.x, okhttp is ok with it but is there any other deps that need 1.x?
|
|
|
|
// REST
|
|
final retrofit_version = '2.6.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.5'
|
|
implementation 'com.github.salomonbrys.kotson:kotson:2.5.0'
|
|
|
|
// JavaScript engine
|
|
implementation 'com.squareup.duktape:duktape-android:1.2.0' // Stuck on 1.2.0 to fix MangaPlus extension
|
|
|
|
// 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'
|
|
// DO NOT UPGRADE TO 17.0, IT REQUIRES ANDROIDX
|
|
implementation 'com.google.android.gms:play-services-gcm:16.1.0'
|
|
|
|
// [EXH] Android 7 SSL Workaround
|
|
implementation 'com.google.android.gms:play-services-safetynet:16.0.0'
|
|
|
|
// Changelog
|
|
implementation 'com.github.gabrielemariotti.changeloglib:changelog:2.1.0'
|
|
|
|
// Database
|
|
implementation 'android.arch.persistence:db:1.1.1'
|
|
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.1'
|
|
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.9.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:3.1.1'
|
|
|
|
// Logging
|
|
implementation 'com.jakewharton.timber:timber:4.7.1'
|
|
|
|
// Sort
|
|
implementation 'com.github.gpanther:java-nat-sort:natural-comparator-1.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.0.6' // Cannot upgrade to 5.1.0 as it uses AndroidX
|
|
implementation 'eu.davidea:flexible-adapter-ui:1.0.0-b5'
|
|
implementation 'com.nononsenseapps:filepicker:2.5.2'
|
|
implementation 'com.github.amulyakhare:TextDrawable:558677e'
|
|
implementation 'com.afollestad.material-dialogs:core:0.9.6.0' // Cannot upgrade to 2.x, AndroidX and API changes
|
|
implementation 'me.zhanghai.android.systemuihelper:library:1.0.0'
|
|
implementation 'com.nightlynexus.viewstatepageradapter:viewstatepageradapter:1.0.4'
|
|
implementation 'com.github.mthli:Slice:v1.3'
|
|
implementation 'me.gujun.android.taggroup:library:1.4@aar'
|
|
implementation 'com.github.chrisbanes:PhotoView:2.1.4' // Cannot upgrade to 2.2.x+ as it uses AndroidX
|
|
implementation 'com.github.inorichi:DirectionalViewPager:3acc51a'
|
|
|
|
// 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:27.0.2'
|
|
|
|
// 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"
|
|
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
|
|
|
|
final coroutines_version = '1.3.0-RC2'
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-reactive:$coroutines_version"
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-rx2:$coroutines_version"
|
|
|
|
// Text distance (EH)
|
|
implementation 'info.debatty:java-string-similarity:1.2.1'
|
|
|
|
// Pin lock view (EH)
|
|
implementation 'com.andrognito.pinlockview:pinlockview:2.1.0'
|
|
|
|
// Reprint (EH)
|
|
implementation 'com.github.ajalt.reprint:core:3.2.1@aar'
|
|
implementation 'com.github.ajalt.reprint:rxjava:3.2.1@aar' // optional: the RxJava 1 interface
|
|
|
|
// Swirl (EH)
|
|
implementation 'com.mattprecious.swirl:swirl:1.2.0'
|
|
|
|
// RxJava 2 interop for Realm (EH)
|
|
implementation 'com.lvla.android:rxjava2-interop-kt:0.2.1'
|
|
|
|
// Debug network interceptor (EH)
|
|
implementation "com.squareup.okhttp3:logging-interceptor:3.12.1"
|
|
|
|
// Firebase (EH)
|
|
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
|
|
|
|
// Better logging (EH)
|
|
implementation 'com.elvishew:xlog:1.6.1'
|
|
|
|
// Time utils (EH)
|
|
def typed_time_version = '1.0.2'
|
|
implementation "com.github.kizitonwose.time:time:$typed_time_version"
|
|
implementation "com.github.kizitonwose.time:time-android:$typed_time_version"
|
|
|
|
// Debug utils (EH)
|
|
debugImplementation 'com.ms-square:debugoverlay:1.1.3'
|
|
releaseTestImplementation 'com.ms-square:debugoverlay:1.1.3'
|
|
releaseImplementation 'com.ms-square:debugoverlay-no-op:1.1.3'
|
|
testImplementation 'com.ms-square:debugoverlay-no-op:1.1.3'
|
|
|
|
// Humanize (EH)
|
|
implementation 'com.github.mfornos:humanize-slim:1.2.2'
|
|
|
|
implementation 'com.android.support:gridlayout-v7:28.0.0'
|
|
|
|
final def markwon_version = '4.1.0'
|
|
|
|
implementation "io.noties.markwon:core:$markwon_version"
|
|
implementation "io.noties.markwon:ext-strikethrough:$markwon_version"
|
|
implementation "io.noties.markwon:ext-tables:$markwon_version"
|
|
implementation "io.noties.markwon:html:$markwon_version"
|
|
implementation "io.noties.markwon:image:$markwon_version"
|
|
implementation "io.noties.markwon:linkify:$markwon_version"
|
|
}
|
|
|
|
buildscript {
|
|
ext.kotlin_version = '1.3.41'
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
dependencies {
|
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
androidExtensions {
|
|
experimental = true
|
|
}
|
|
|
|
if (getGradle().getStartParameter().getTaskRequests().toString().contains("Standard")) {
|
|
apply plugin: 'com.google.gms.google-services'
|
|
// Firebase (EH)
|
|
apply plugin: 'io.fabric'
|
|
}
|