android/app/build.gradle

111 lines
4.2 KiB
Groovy

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: "androidx.navigation.safeargs.kotlin"
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "io.annaclemens.xivchat"
minSdkVersion 19
targetSdkVersion 30
versionCode 5
versionName file("../VERSION").readLines()[0]
multiDexEnabled = true
resValue "string", "app_version", versionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildFeatures {
viewBinding true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
applicationVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = "XIVChat-${variant.versionName}.apk"
}
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
coreLibraryDesugaringEnabled true
}
packagingOptions {
exclude 'META-INF/atomicfu.kotlin_module'
}
kotlinOptions {
jvmTarget = '1.8'
freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn"
}
}
dependencies {
ext.commonmark_version = '0.15.2'
ext.markwon_version = '4.6.0'
implementation fileTree(dir: "libs", include: ["*.jar"])
// default kotlin android stuff
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.6.0'
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
// preference ui objects
implementation "androidx.preference:preference-ktx:1.1.1"
// libsodium for android
implementation 'com.goterl.lazycode:lazysodium-android:4.2.0@aar'
implementation 'net.java.dev.jna:jna:5.6.0@aar'
// kotlin serialisation (for xivapi)
implementation "org.jetbrains.kotlinx:kotlinx-serialization-core:1.0.0-RC"
// msgpack for xivchat protocol
implementation 'org.msgpack:msgpack-core:0.8.21'
// ktor is coroutines stuff for connection thread
implementation "io.ktor:ktor-network:$ktor_version"
implementation "io.ktor:ktor-client-core:$ktor_version"
implementation "io.ktor:ktor-client-android:$ktor_version"
// for pull-out nav profile pic
implementation 'de.hdodenhof:circleimageview:3.1.0'
// for markdown mode
implementation "io.noties.markwon:core:$markwon_version"
implementation "io.noties.markwon:ext-strikethrough:$markwon_version"
implementation "com.atlassian.commonmark:commonmark-ext-autolink:$commonmark_version"
// database stuff
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
implementation "androidx.room:room-ktx:$room_version"
androidTestImplementation "androidx.room:room-testing:$room_version"
// parsing latest version
implementation 'net.swiftzer.semver:semver:1.1.1'
// better link handling and phishing check hook
implementation 'me.saket:better-link-movement-method:2.2.0'
// floating action button speed dial
implementation 'com.leinardi.android:speed-dial:3.1.1'
// tests
testImplementation 'junit:junit:4.13'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
// desugaring
implementation 'androidx.multidex:multidex:2.0.1'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
// sentry
implementation 'io.sentry:sentry-android:4.0.0'
}