
Fix miscellanious issues from the flattened nav graph system. Nowhere near enough, largely counting on the planned bottom sheet menus to eventually be able to ignore most of these issues.
161 lines
5 KiB
Groovy
161 lines
5 KiB
Groovy
plugins {
|
|
id "com.android.application"
|
|
id "kotlin-android"
|
|
id "androidx.navigation.safeargs.kotlin"
|
|
id "com.diffplug.spotless"
|
|
id "kotlin-parcelize"
|
|
id "dagger.hilt.android.plugin"
|
|
id "kotlin-kapt"
|
|
id 'org.jetbrains.kotlin.android'
|
|
}
|
|
|
|
android {
|
|
compileSdk 34
|
|
// NDK is not used in Auxio explicitly (used in the ffmpeg extension), but we need to specify
|
|
// it here so that binary stripping will work.
|
|
// TODO: Eventually you might just want to start vendoring the FFMpeg extension so the
|
|
// NDK use is unified
|
|
ndkVersion = "23.2.8568313"
|
|
namespace "org.oxycblt.auxio"
|
|
|
|
defaultConfig {
|
|
applicationId namespace
|
|
versionName "3.1.3"
|
|
versionCode 33
|
|
|
|
minSdk 24
|
|
targetSdk 34
|
|
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_17
|
|
targetCompatibility JavaVersion.VERSION_17
|
|
}
|
|
|
|
kotlinOptions {
|
|
jvmTarget = "17"
|
|
freeCompilerArgs += "-Xjvm-default=all"
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
applicationIdSuffix ".debug"
|
|
versionNameSuffix "-DEBUG"
|
|
}
|
|
|
|
release {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
|
|
|
|
dependenciesInfo {
|
|
includeInApk = false
|
|
includeInBundle = false
|
|
}
|
|
}
|
|
}
|
|
|
|
packagingOptions {
|
|
jniLibs {
|
|
excludes += ['**/kotlin/**', '**/okhttp3/**']
|
|
}
|
|
resources {
|
|
excludes += ['DebugProbesKt.bin', 'kotlin-tooling-metadata.json', '**/kotlin/**', '**/okhttp3/**', 'META-INF/*.version']
|
|
}
|
|
}
|
|
|
|
buildFeatures {
|
|
viewBinding true
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
// Kotlin
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
|
|
|
def coroutines_version = '1.7.1'
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-guava:$coroutines_version"
|
|
|
|
// --- SUPPORT ---
|
|
|
|
// General
|
|
implementation "androidx.core:core-ktx:1.10.1"
|
|
implementation "androidx.appcompat:appcompat:1.6.1"
|
|
implementation "androidx.activity:activity-ktx:1.7.2"
|
|
implementation "androidx.fragment:fragment-ktx:1.6.0"
|
|
|
|
// Components
|
|
// Deliberately kept on 1.2.1 to prevent a bug where the queue sheet will not collapse on
|
|
// certain upwards scrolling events
|
|
// TODO: Report this issue and hope for a timely fix
|
|
// noinspection GradleDependency
|
|
implementation "androidx.recyclerview:recyclerview:1.2.1"
|
|
implementation "androidx.constraintlayout:constraintlayout:2.1.4"
|
|
implementation "androidx.viewpager2:viewpager2:1.0.0"
|
|
|
|
// Lifecycle
|
|
def lifecycle_version = "2.6.1"
|
|
implementation "androidx.lifecycle:lifecycle-common:$lifecycle_version"
|
|
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
|
|
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
|
|
implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version"
|
|
|
|
// Navigation
|
|
implementation "androidx.navigation:navigation-ui-ktx:$navigation_version"
|
|
implementation "androidx.navigation:navigation-fragment-ktx:$navigation_version"
|
|
|
|
// Media
|
|
implementation "androidx.media:media:1.6.0"
|
|
|
|
// Preferences
|
|
implementation "androidx.preference:preference-ktx:1.2.0"
|
|
|
|
// Database
|
|
def room_version = '2.6.0-alpha02'
|
|
implementation "androidx.room:room-runtime:$room_version"
|
|
kapt "androidx.room:room-compiler:$room_version"
|
|
implementation "androidx.room:room-ktx:$room_version"
|
|
|
|
// --- THIRD PARTY ---
|
|
|
|
// Exoplayer (Vendored)
|
|
implementation project(":media-lib-exoplayer")
|
|
implementation project(":media-lib-decoder-ffmpeg")
|
|
|
|
// Image loading
|
|
implementation 'io.coil-kt:coil-base:2.4.0'
|
|
|
|
// Material
|
|
// TODO: Exactly figure out the conditions that the 1.7.0 ripple bug occurred so you can just
|
|
// PR a fix.
|
|
implementation "com.google.android.material:material:1.10.0-alpha04"
|
|
|
|
// Dependency Injection
|
|
implementation "com.google.dagger:dagger:$hilt_version"
|
|
kapt "com.google.dagger:dagger-compiler:$hilt_version"
|
|
implementation "com.google.dagger:hilt-android:$hilt_version"
|
|
kapt "com.google.dagger:hilt-android-compiler:$hilt_version"
|
|
|
|
// Testing
|
|
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.11'
|
|
testImplementation "junit:junit:4.13.2"
|
|
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
|
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
|
|
}
|
|
|
|
spotless {
|
|
kotlin {
|
|
target "src/**/*.kt"
|
|
ktfmt().dropboxStyle()
|
|
licenseHeaderFile("NOTICE")
|
|
}
|
|
}
|
|
|
|
afterEvaluate {
|
|
preDebugBuild.dependsOn spotlessApply
|
|
}
|