mirror of
https://github.com/mihonapp/mihon.git
synced 2025-03-13 16:20:08 +01:00
Migrate login UI to conductor Fix batch add controller not saving EditText content onResume Prevent double-locking of lock UI Remove back button from lock UI Fix login preference not updating
308 lines
9.5 KiB
Groovy
Executable File
308 lines
9.5 KiB
Groovy
Executable File
import java.text.SimpleDateFormat
|
|
|
|
apply plugin: 'com.android.application'
|
|
apply plugin: 'kotlin-android'
|
|
apply plugin: 'kotlin-android-extensions'
|
|
|
|
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 6101
|
|
versionName "v6.1.1-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"
|
|
|
|
//Firebase (EH)
|
|
final firebase_version = '10.0.1'
|
|
releaseCompile "com.google.firebase:firebase-core:$firebase_version"
|
|
releaseCompile "com.google.firebase:firebase-messaging:$firebase_version"
|
|
releaseCompile "com.google.firebase:firebase-crash:$firebase_version"
|
|
|
|
//SnappyDB (EH)
|
|
compile 'io.paperdb:paperdb:2.1'
|
|
|
|
//JVE (Regex) (EH)
|
|
compile 'ru.lanwen.verbalregex:java-verbal-expressions:1.4'
|
|
|
|
//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)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//Firebase (EH)
|
|
apply plugin: 'com.google.gms.google-services'
|