apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' apply plugin: 'androidx.navigation.safeargs' android { compileSdkVersion 30 buildToolsVersion "30.0.3" defaultConfig { applicationId "org.oxycblt.auxio" minSdkVersion 21 targetSdkVersion 30 versionCode 1 versionName "1.2.0" buildFeatures { dataBinding true } vectorDrawables.useSupportLibrary = true } buildTypes { debug { debuggable true applicationIdSuffix = '.debug' versionNameSuffix = "-DEBUG" } release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } kotlinOptions { jvmTarget = "1.8" } compileOptions { targetCompatibility JavaVersion.VERSION_1_8 } } configurations { ktlint } afterEvaluate { preDebugBuild.dependsOn ktlintFormat } dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) // Kotlin implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" // --- SUPPORT --- // General implementation 'androidx.core:core-ktx:1.3.2' implementation 'androidx.activity:activity-ktx:1.2.0-rc01' implementation 'androidx.fragment:fragment-ktx:1.3.0-rc02' // Layout implementation 'androidx.constraintlayout:constraintlayout:2.0.4' // Lifecycle implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" // Navigation def navigation_version = "2.3.3" implementation "androidx.navigation:navigation-fragment-ktx:$navigation_version" implementation "androidx.navigation:navigation-ui-ktx:$navigation_version" // Media implementation 'androidx.media:media:1.2.1' // Preferences implementation 'androidx.preference:preference-ktx:1.1.1' // Opening links implementation 'androidx.browser:browser:1.3.0' // --- THIRD PARTY --- // ExoPlayer def exoplayer_version = "2.12.1" implementation "com.google.android.exoplayer:exoplayer-core:$exoplayer_version" implementation "com.google.android.exoplayer:extension-mediasession:$exoplayer_version" // Image loading implementation 'io.coil-kt:coil:1.1.0' // Material implementation 'com.google.android.material:material:1.3.0-rc01' // Fast-Scroll implementation 'com.reddit:indicator-fast-scroll:1.3.0' // Dialogs implementation 'com.afollestad.material-dialogs:core:3.3.0' // --- DEV --- // Lint ktlint "com.pinterest:ktlint:0.40.0" // Memory Leak checking debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.5' } task ktlint(type: JavaExec, group: "verification") { description = "Check Kotlin code style." main = "com.pinterest.ktlint.Main" classpath = configurations.ktlint args "src/**/*.kt" } check.dependsOn ktlint task ktlintFormat(type: JavaExec, group: "formatting") { description = "Fix Kotlin code style deviations." main = "com.pinterest.ktlint.Main" classpath = configurations.ktlint args "-F", "src/**/*.kt" }