169 lines
6.0 KiB
Groovy
169 lines
6.0 KiB
Groovy
import java.text.SimpleDateFormat
|
|
|
|
apply plugin: 'com.android.application'
|
|
apply plugin: 'kotlin-android'
|
|
apply plugin: 'kotlin-kapt'
|
|
// apply plugin: 'kotlin-android-extensions'
|
|
|
|
android {
|
|
|
|
compileSdkVersion target_sdk_version
|
|
|
|
// exoPlayer 2.9.0 以降は Java 8 compiler support を要求する
|
|
// https://github.com/google/ExoPlayer/blob/release-v2/RELEASENOTES.md
|
|
// Invoke-customs are only supported starting with Android O (--min-api 26)
|
|
// Default interface methods are only supported starting with Android N (--min-api 24)
|
|
compileOptions {
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
defaultConfig {
|
|
targetSdkVersion target_sdk_version
|
|
minSdkVersion min_sdk_version
|
|
|
|
versionCode 366
|
|
versionName "3.6.6"
|
|
applicationId "jp.juggler.subwaytooter"
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
|
|
// https://stackoverflow.com/questions/47791227/java-lang-illegalstateexception-dex-archives-setting-dex-extension-only-for
|
|
multiDexEnabled true
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled false
|
|
shrinkResources false
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
|
|
lintOptions {
|
|
disable 'MissingTranslation'
|
|
}
|
|
}
|
|
}
|
|
|
|
// Specifies comma-separated list of flavor dimensions.
|
|
flavorDimensions "rcOrDev"
|
|
|
|
productFlavors {
|
|
rc {
|
|
dimension "rcOrDev"
|
|
}
|
|
}
|
|
|
|
dexOptions {
|
|
jumboMode = true
|
|
preDexLibraries true
|
|
maxProcessCount 10
|
|
javaMaxHeapSize "3g"
|
|
}
|
|
|
|
// Generate Signed APK のファイル名を変更
|
|
android.applicationVariants.all { variant ->
|
|
if (variant.buildType.name == "release") {
|
|
variant.outputs.all {
|
|
// Rename APK
|
|
def versionCode = defaultConfig.versionCode
|
|
def versionName = defaultConfig.versionName
|
|
def flavor = variant.flavorName
|
|
def date = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date())
|
|
outputFileName = "../../SubwayTooter-${flavor}-${versionCode}-${versionName}-${date}.apk"
|
|
}
|
|
}
|
|
}
|
|
|
|
packagingOptions {
|
|
// https://github.com/Kotlin/kotlinx.coroutines/issues/1064
|
|
pickFirst("META-INF/atomicfu.kotlin_module")
|
|
}
|
|
}
|
|
|
|
kapt {
|
|
useBuildCache = true
|
|
}
|
|
|
|
dependencies {
|
|
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
|
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0-alpha4', {
|
|
exclude group: 'com.android.support', module: 'support-annotations'
|
|
})
|
|
|
|
implementation project(':exif')
|
|
implementation project(':colorpicker')
|
|
implementation project(':emoji')
|
|
implementation project(':apng_android')
|
|
|
|
implementation "androidx.appcompat:appcompat:$appcompat_version"
|
|
implementation "androidx.legacy:legacy-support-v4:$androidx_version"
|
|
implementation "androidx.legacy:legacy-support-v13:$androidx_version"
|
|
implementation "androidx.browser:browser:$androidx_version"
|
|
implementation "com.google.android.material:material:$androidx_version"
|
|
|
|
// https://firebase.google.com/support/release-notes/android
|
|
implementation "com.google.firebase:firebase-core:17.0.0"
|
|
implementation "com.google.firebase:firebase-messaging:19.0.1"
|
|
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
|
|
testImplementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinx_coroutines_version"
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinx_coroutines_version"
|
|
|
|
// Anko Layouts
|
|
// sdk15, sdk19, sdk21, sdk23 are also available
|
|
implementation "org.jetbrains.anko:anko-sdk25:$anko_version"
|
|
implementation "org.jetbrains.anko:anko-appcompat-v7:$anko_version"
|
|
|
|
// Coroutine listeners for Anko Layouts
|
|
//implementation "org.jetbrains.anko:anko-sdk25-coroutines:$anko_version"
|
|
//implementation "org.jetbrains.anko:anko-appcompat-v7-coroutines:$anko_version"
|
|
|
|
testImplementation 'junit:junit:4.12' // しばらくはkotlin-testとjunitを併用
|
|
|
|
implementation 'com.squareup.okhttp3:okhttp:3.12.1'
|
|
implementation 'com.squareup.okhttp3:okhttp-urlconnection:3.12.1'
|
|
testImplementation 'com.squareup.okhttp3:mockwebserver:3.12.1'
|
|
androidTestImplementation 'com.squareup.okhttp3:mockwebserver:3.12.1'
|
|
// glideは okhttp 3.9.1を使ってるようだが…
|
|
|
|
// glide 4.8.0 は CustomTarget がないので保留
|
|
implementation 'com.github.bumptech.glide:glide:4.9.0'
|
|
implementation 'com.github.bumptech.glide:okhttp3-integration:4.9.0'
|
|
implementation 'com.github.bumptech.glide:annotations:4.9.0'
|
|
// kotlin では annotationProcessor の代わりに kapt を使う
|
|
kapt 'androidx.annotation:annotation:1.1.0'
|
|
kapt 'com.github.bumptech.glide:compiler:4.9.0'
|
|
|
|
implementation "org.conscrypt:conscrypt-android:2.1.0"
|
|
|
|
implementation 'io.github.inflationx:calligraphy3:3.1.1'
|
|
implementation 'io.github.inflationx:viewpump:2.0.3'
|
|
|
|
implementation 'com.github.woxthebox:draglistview:1.6.6'
|
|
|
|
implementation 'com.github.omadahealth:swipy:1.2.3@aar'
|
|
|
|
implementation 'com.github.kenglxn.QRGen:android:2.5.0'
|
|
|
|
implementation 'commons-io:commons-io:2.6'
|
|
|
|
implementation 'org.hjson:hjson:3.0.0'
|
|
|
|
implementation 'com.google.android:flexbox:1.1.0' // 1.1.0 から AndroidX 依存
|
|
|
|
implementation 'com.astuetz:pagerslidingtabstrip:1.0.1'
|
|
|
|
implementation 'com.google.android.exoplayer:exoplayer:2.10.2'
|
|
|
|
implementation 'me.drakeet.support:toastcompat:1.0.2'
|
|
|
|
implementation 'com.caverock:androidsvg-aar:1.4'
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
apply plugin: 'com.google.gms.google-services'
|
|
|