72e7b649a2
Removed experimnetal coroutines Snackbar for removing mangas now remove downloads when they disappear. Undo Snackbars now disappear when touching somewhere thats not them Opening Tachiyomi from a url (ie mangadex) now automatically goes to the manga page once the search finishes Fixed self made typo in "Update Library" Removed Delete Mangas dialog as it is unused
267 lines
8.6 KiB
Groovy
267 lines
8.6 KiB
Groovy
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 41
|
|
versionName "0.8.4"
|
|
|
|
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", "xxhdpi"
|
|
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.0.0'
|
|
implementation 'androidx.recyclerview:recyclerview:1.0.0'
|
|
implementation 'androidx.preference:preference:1.1.0'
|
|
implementation 'androidx.annotation:annotation:1.1.0'
|
|
implementation 'androidx.browser:browser:1.0.0'
|
|
|
|
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
|
|
|
implementation 'androidx.multidex:multidex:2.0.1'
|
|
|
|
standardImplementation 'com.google.firebase:firebase-core:11.8.0'
|
|
|
|
// 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.2.1"
|
|
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
|
|
implementation "com.squareup.okhttp3:logging-interceptor:$okhttp_version"
|
|
implementation 'com.squareup.okio:okio:2.4.0'
|
|
|
|
// REST
|
|
final retrofit_version = '2.6.2'
|
|
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.2'
|
|
implementation 'com.github.salomonbrys.kotson:kotson:2.5.0'
|
|
|
|
// JavaScript engine
|
|
implementation 'com.squareup.duktape:duktape-android:1.2.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.0.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.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.10.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'
|
|
|
|
// 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.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:0.9.6.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 'me.gujun.android.taggroup:library:1.4@aar'
|
|
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 project(":j2k-preference")
|
|
|
|
// 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"
|
|
}
|
|
|
|
buildscript {
|
|
ext.kotlin_version = '1.3.50'
|
|
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'
|
|
}
|