apply plugin: 'com.android.application' apply plugin: 'com.mikepenz.aboutlibraries.plugin' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 29 buildToolsVersion '29.0.3' defaultConfig { applicationId "de.christinecoenen.code.zapp" minSdkVersion 21 targetSdkVersion 29 versionCode 41 versionName "3.5.0-beta.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kapt { arguments { arg("room.schemaLocation", "$projectDir/schemas") } } packagingOptions { exclude 'META-INF/library-core_release.kotlin_module' } buildFeatures { viewBinding { enabled = true } } buildTypes { debug { shrinkResources false } release { shrinkResources true minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } testOptions { unitTests { includeAndroidResources = true all { testLogging { events 'passed', 'skipped', 'failed', 'standardError' exceptionFormat 'full' } if (project.hasProperty('ci')) { // tests that should *not* run on ci machines: exclude '**/JsonChannelListConnectionTest*' } } } } } configurations { cleanedAnnotations compile.exclude group: 'org.jetbrains', module: 'annotations' } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') // kotlin implementation 'androidx.core:core-ktx:1.3.1' implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72' // tests debugImplementation 'androidx.test:core:1.2.0' debugImplementation 'androidx.fragment:fragment-testing:1.2.5' // device tests androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test:rules:1.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.2.0' // unit tests testImplementation 'androidx.test.ext:junit:1.1.1' testImplementation 'org.robolectric:robolectric:4.3.1' // support implementation 'androidx.fragment:fragment:1.2.5' implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'com.google.android.material:material:1.2.0' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.annotation:annotation:1.1.0' implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'androidx.preference:preference:1.1.1' // room database def room_version = "2.2.5" implementation "androidx.room:room-runtime:$room_version" kapt "androidx.room:room-compiler:$room_version" implementation "androidx.room:room-ktx:$room_version" implementation "androidx.room:room-rxjava2:$room_version" // helper implementation 'com.google.code.gson:gson:2.8.6' implementation 'commons-io:commons-io:2.7' // sortable list implementation 'com.github.woxthebox:draglistview:1.7.2' // markdown implementation 'ru.noties:markwon:2.0.2' // fetch download manager implementation 'androidx.tonyodev.fetch2:xfetch2:3.1.4' // exo player implementation 'com.google.android.exoplayer:exoplayer-core:2.9.2' implementation 'com.google.android.exoplayer:exoplayer-hls:2.9.2' implementation 'com.google.android.exoplayer:exoplayer-ui:2.9.2' implementation 'com.google.android.exoplayer:extension-mediasession:2.9.2' // retrofit rest client implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' implementation 'com.squareup.retrofit2:adapter-rxjava2:2.9.0' // ACRA crash reporting releaseImplementation 'ch.acra:acra:4.11.1' // timber logging implementation 'com.jakewharton.timber:timber:4.7.1' // joda time implementation 'joda-time:joda-time:2.10.6' // rxjava implementation 'io.reactivex.rxjava2:rxjava:2.2.19' implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' // about libraries view implementation 'com.mikepenz:aboutlibraries:8.3.0' implementation 'org.jetbrains:annotations-java5:20.0.0' }