mirror of
https://github.com/mihonapp/mihon.git
synced 2025-03-13 08:10:07 +01:00
Make search engine synchronous Offload some search engine tasks to background threads Minor search engine speedups
296 lines
9.1 KiB
Groovy
Executable File
296 lines
9.1 KiB
Groovy
Executable File
import java.text.SimpleDateFormat
|
|
|
|
apply plugin: 'com.android.application'
|
|
apply plugin: 'kotlin-android'
|
|
apply plugin: 'kotlin-android-extensions'
|
|
//Realm (EH)
|
|
apply plugin: 'realm-android'
|
|
|
|
if (file("custom.gradle").exists()) {
|
|
apply from: "custom.gradle"
|
|
}
|
|
|
|
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 25
|
|
buildToolsVersion "25.0.2"
|
|
publishNonDefault true
|
|
|
|
dexOptions {
|
|
javaMaxHeapSize "4g"
|
|
}
|
|
|
|
defaultConfig {
|
|
applicationId "eu.kanade.tachiyomi.eh2"
|
|
minSdkVersion 16
|
|
targetSdkVersion 25
|
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
|
versionCode 6103
|
|
versionName "v6.1.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
|
|
|
|
ndk {
|
|
abiFilters "armeabi-v7a", "arm64-v8a", "x86"
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
versionNameSuffix "-${getCommitCount()}"
|
|
applicationIdSuffix ".debug"
|
|
multiDexEnabled true
|
|
}
|
|
release {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
multiDexEnabled false
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
}
|
|
}
|
|
|
|
productFlavors {
|
|
standard {
|
|
buildConfigField "boolean", "INCLUDE_UPDATER", "true"
|
|
}
|
|
fdroid {
|
|
}
|
|
dev {
|
|
minSdkVersion 21
|
|
resConfigs "en", "xxhdpi"
|
|
}
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
}
|
|
|
|
dependencies {
|
|
|
|
// Modified dependencies
|
|
compile 'com.github.inorichi:subsampling-scale-image-view:01e5385'
|
|
compile 'com.github.inorichi:tachimage:68cd311'
|
|
compile 'com.github.inorichi:junrar-android:634c1f5'
|
|
|
|
// Android support library
|
|
final support_library_version = '25.4.0'
|
|
compile "com.android.support:support-v4:$support_library_version"
|
|
compile "com.android.support:appcompat-v7:$support_library_version"
|
|
compile "com.android.support:cardview-v7:$support_library_version"
|
|
compile "com.android.support:design:$support_library_version"
|
|
compile "com.android.support:recyclerview-v7:$support_library_version"
|
|
compile "com.android.support:support-annotations:$support_library_version"
|
|
compile "com.android.support:customtabs:$support_library_version"
|
|
|
|
compile 'com.android.support.constraint:constraint-layout:1.0.2'
|
|
|
|
compile 'com.android.support:multidex:1.0.1'
|
|
|
|
// ReactiveX
|
|
compile 'io.reactivex:rxandroid:1.2.1'
|
|
compile 'io.reactivex:rxjava:1.3.0'
|
|
compile 'com.jakewharton.rxrelay:rxrelay:1.2.0'
|
|
compile 'com.f2prateek.rx.preferences:rx-preferences:1.0.2'
|
|
compile 'com.github.pwittchen:reactivenetwork:0.7.0'
|
|
|
|
// Network client
|
|
compile "com.squareup.okhttp3:okhttp:3.8.1"
|
|
compile 'com.squareup.okio:okio:1.13.0'
|
|
|
|
// REST
|
|
final retrofit_version = '2.3.0'
|
|
compile "com.squareup.retrofit2:retrofit:$retrofit_version"
|
|
compile "com.squareup.retrofit2:converter-gson:$retrofit_version"
|
|
compile "com.squareup.retrofit2:adapter-rxjava:$retrofit_version"
|
|
|
|
// JSON
|
|
compile 'com.google.code.gson:gson:2.8.1'
|
|
compile 'com.github.salomonbrys.kotson:kotson:2.5.0'
|
|
|
|
// YAML
|
|
compile 'com.github.bmoliveira:snake-yaml:v1.18-android'
|
|
|
|
// JavaScript engine
|
|
compile 'com.squareup.duktape:duktape-android:1.1.0'
|
|
|
|
// Disk
|
|
compile 'com.jakewharton:disklrucache:2.0.2'
|
|
compile 'com.github.seven332:unifile:1.0.0'
|
|
|
|
// HTML parser
|
|
compile 'org.jsoup:jsoup:1.10.2'
|
|
|
|
// Job scheduling
|
|
compile 'com.evernote:android-job:1.1.11'
|
|
compile 'com.google.android.gms:play-services-gcm:11.0.1'
|
|
|
|
// Changelog
|
|
compile 'com.github.gabrielemariotti.changeloglib:changelog:2.1.0'
|
|
|
|
// Database
|
|
compile "com.pushtorefresh.storio:sqlite:1.13.0"
|
|
|
|
// Model View Presenter
|
|
final nucleus_version = '3.0.0'
|
|
compile "info.android15.nucleus:nucleus:$nucleus_version"
|
|
compile "info.android15.nucleus:nucleus-support-v7:$nucleus_version"
|
|
|
|
// Dependency injection
|
|
compile "uy.kohesive.injekt:injekt-core:1.16.1"
|
|
|
|
// Image library
|
|
compile 'com.github.bumptech.glide:glide:3.8.0'
|
|
compile 'com.github.bumptech.glide:okhttp3-integration:1.5.0@aar'
|
|
// Transformations
|
|
compile 'jp.wasabeef:glide-transformations:2.0.2'
|
|
|
|
// Logging
|
|
compile 'com.jakewharton.timber:timber:4.5.1'
|
|
|
|
// Crash reports
|
|
compile 'ch.acra:acra:4.9.2'
|
|
|
|
// Sort
|
|
compile 'com.github.gpanther:java-nat-sort:natural-comparator-1.1'
|
|
|
|
// UI
|
|
compile 'com.dmitrymalkovich.android:material-design-dimens:1.4'
|
|
compile 'com.github.dmytrodanylyk.android-process-button:library:1.0.4'
|
|
compile 'eu.davidea:flexible-adapter:5.0.0-rc1'
|
|
compile 'com.nononsenseapps:filepicker:2.5.2'
|
|
compile 'com.github.amulyakhare:TextDrawable:558677e'
|
|
compile 'com.afollestad.material-dialogs:core:0.9.4.5'
|
|
compile 'me.zhanghai.android.systemuihelper:library:1.0.0'
|
|
compile 'com.nightlynexus.viewstatepageradapter:viewstatepageradapter:1.0.4'
|
|
|
|
// Conductor
|
|
compile "com.bluelinelabs:conductor:2.1.4"
|
|
compile 'com.github.inorichi:conductor-support-preference:9e36460'
|
|
|
|
// RxBindings
|
|
final rxbindings_version = '1.0.1'
|
|
compile "com.jakewharton.rxbinding:rxbinding-kotlin:$rxbindings_version"
|
|
compile "com.jakewharton.rxbinding:rxbinding-appcompat-v7-kotlin:$rxbindings_version"
|
|
compile "com.jakewharton.rxbinding:rxbinding-support-v4-kotlin:$rxbindings_version"
|
|
compile "com.jakewharton.rxbinding:rxbinding-recyclerview-v7-kotlin:$rxbindings_version"
|
|
|
|
//Pin lock view (EXH)
|
|
compile 'com.andrognito.pinlockview:pinlockview:1.0.1'
|
|
|
|
//Reprint (EXH)
|
|
compile 'com.github.ajalt.reprint:core:3.1.0@aar' // required: supports marshmallow devices
|
|
compile 'com.github.ajalt.reprint:rxjava:3.1.0@aar' // optional: the RxJava 1 interface
|
|
|
|
//Swirl (EXH)
|
|
compile 'com.mattprecious.swirl:swirl:1.0.0'
|
|
|
|
// Tests
|
|
//Paper DB screws up tests
|
|
/*testCompile 'junit:junit:4.12'
|
|
testCompile 'org.assertj:assertj-core:1.7.1'
|
|
testCompile 'org.mockito:mockito-core:1.10.19'
|
|
|
|
final robolectric_version = '3.1.4'
|
|
testCompile "org.robolectric:robolectric:$robolectric_version"
|
|
testCompile "org.robolectric:shadows-multidex:$robolectric_version"
|
|
testCompile "org.robolectric:shadows-play-services:$robolectric_version"*/
|
|
|
|
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
}
|
|
|
|
buildscript {
|
|
ext.kotlin_version = '1.1.3'
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
dependencies {
|
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
// Workaround to force a support lib version
|
|
configurations.all {
|
|
resolutionStrategy.eachDependency { details ->
|
|
def requested = details.requested
|
|
if (requested.group == 'com.android.support') {
|
|
if (!requested.name.startsWith("multidex")) {
|
|
details.useVersion '25.4.0'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// add support for placeholders in resource files
|
|
//https://code.google.com/p/android/issues/detail?id=69224
|
|
def replacePlaceholdersInFile(basePath, fileName, placeholders) {
|
|
def file = new File(basePath, fileName);
|
|
|
|
if (!file.exists()) {
|
|
logger.quiet("Unable to replace placeholders in " + file.toString() + ". File cannot be found.")
|
|
return;
|
|
}
|
|
|
|
logger.debug("Replacing placeholders in " + file.toString())
|
|
logger.debug("Placeholders: " + placeholders.toString())
|
|
|
|
def content = file.getText('UTF-8')
|
|
|
|
placeholders.each { entry ->
|
|
content = content.replaceAll("\\\$\\{${entry.key}\\}", entry.value)
|
|
}
|
|
|
|
file.write(content, 'UTF-8')
|
|
}
|
|
|
|
afterEvaluate {
|
|
android.applicationVariants.all { variant ->
|
|
variant.outputs.each { output ->
|
|
output.processResources.doFirst {
|
|
// prepare placeholder map from manifestPlaceholders including applicationId placeholder
|
|
def placeholders = variant.mergedFlavor.manifestPlaceholders + [applicationId: variant.applicationId]
|
|
|
|
replacePlaceholdersInFile(resDir, 'xml-v25/shortcuts.xml', placeholders)
|
|
}
|
|
}
|
|
}
|
|
}
|