apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' def getGitSha = { -> def stdout = new ByteArrayOutputStream() exec { commandLine 'git', 'rev-parse', '--short', 'HEAD' standardOutput = stdout } return stdout.toString().trim() } android { compileSdkVersion 28 defaultConfig { applicationId "com.keylesspalace.tusky" minSdkVersion 21 targetSdkVersion 28 versionCode 67 versionName "9.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true kapt { arguments { arg("room.schemaLocation", "$projectDir/schemas") } } } buildTypes { release { minifyEnabled true shrinkResources true proguardFiles 'proguard-rules.pro' } debug {} } flavorDimensions "color" productFlavors { blue {} green { applicationIdSuffix ".test" versionNameSuffix "-" + getGitSha() } } lintOptions { disable 'MissingTranslation' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } androidExtensions { experimental = true } testOptions { unitTests { includeAndroidResources = true } } sourceSets { androidTest.assets.srcDirs += files("$projectDir/schemas".toString()) } packagingOptions { // Exclude unneeded files added by libraries exclude 'LICENSE_OFL' exclude 'LICENSE_UNICODE' } bundle { language { // bundle all languages in every apk so the dynamic language switching works enableSplit = false } } } project.tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { kotlinOptions { jvmTarget = "1.8" } } ext.daggerVersion = '2.24' ext.retrofitVersion = '2.6.0' // if libraries are changed here, they should also be changed in LicenseActivity dependencies { implementation('com.mikepenz:materialdrawer:6.1.2@aar') { transitive = true } implementation 'androidx.core:core:1.0.2' implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'androidx.browser:browser:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.0.0' implementation 'androidx.legacy:legacy-support-v13:1.0.0' implementation 'com.google.android.material:material:1.1.0-alpha05' implementation 'androidx.exifinterface:exifinterface:1.0.0' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.preference:preference:1.1.0-alpha04' implementation "com.squareup.retrofit2:retrofit:$retrofitVersion" implementation "com.squareup.retrofit2:converter-gson:$retrofitVersion" implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofitVersion" implementation 'com.squareup.okhttp3:okhttp:4.2.0' implementation 'com.squareup.okhttp3:logging-interceptor:4.2.0' implementation 'org.conscrypt:conscrypt-android:2.2.1' implementation 'com.github.connyduck:sparkbutton:2.0.1' implementation 'com.github.chrisbanes:PhotoView:2.3.0' implementation 'com.mikepenz:google-material-typeface:3.0.1.3.original@aar' implementation('com.theartofdev.edmodo:android-image-cropper:2.8.0') { exclude group: 'com.android.support' } implementation 'com.evernote:android-job:1.2.6' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' // EmojiCompat implementation 'androidx.emoji:emoji:1.0.0' implementation 'androidx.emoji:emoji-appcompat:1.0.0' implementation 'de.c1710:filemojicompat:1.0.17' // architecture components implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' //room implementation 'androidx.room:room-runtime:2.1.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' kapt 'androidx.room:room-compiler:2.1.0' implementation 'androidx.room:room-rxjava2:2.1.0' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation "com.google.dagger:dagger:$daggerVersion" kapt "com.google.dagger:dagger-compiler:$daggerVersion" implementation "com.google.dagger:dagger-android:$daggerVersion" implementation "com.google.dagger:dagger-android-support:$daggerVersion" kapt "com.google.dagger:dagger-android-processor:$daggerVersion" testImplementation 'org.robolectric:robolectric:4.3' testImplementation 'org.mockito:mockito-inline:3.0.0' testImplementation 'com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0' androidTestImplementation('androidx.test.espresso:espresso-core:3.1.1', { exclude group: 'com.android.support', module: 'support-annotations' }) androidTestImplementation 'android.arch.persistence.room:testing:1.1.1' androidTestImplementation 'androidx.test.ext:junit:1.1.1' testImplementation 'androidx.test.ext:junit:1.1.1' debugImplementation 'im.dino:dbinspector:3.4.1@aar' implementation 'io.reactivex.rxjava2:rxjava:2.2.12' implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' implementation 'io.reactivex.rxjava2:rxkotlin:2.4.0' implementation 'com.uber.autodispose:autodispose-android-archcomponents:1.3.0' implementation 'com.uber.autodispose:autodispose:1.3.0' implementation 'androidx.paging:paging-runtime-ktx:2.1.0' //Glide implementation 'com.github.bumptech.glide:glide:4.9.0' implementation 'com.github.bumptech.glide:okhttp3-integration:4.9.0' implementation 'jp.wasabeef:glide-transformations:3.1.1' // intentionally use 3.x version because of 2mb smaller apk //Add some useful extensions implementation 'androidx.core:core-ktx:1.2.0-alpha01' }