import java.time.Instant plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-android-extensions' id 'kotlin-kapt' } android { compileSdk 31 defaultConfig { applicationId 'com.github.libretube' minSdk 21 targetSdk 31 versionCode 17 versionName '0.5.0' multiDexEnabled true testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' resValue "string", "app_name", "LibreTube" } buildFeatures { viewBinding true } applicationVariants.all { variant -> // use the date as version for debug builds if (variant.name == 'debug') { variant.outputs.each { output -> output.versionCodeOverride = getUnixTime() output.versionNameOverride = getUnixTime() } } } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } debug { debuggable true applicationIdSuffix ".debug" resValue "string", "app_name", "LibreTube Debug" } } compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } splits { abi { enable true reset() include "armeabi-v7a", "arm64-v8a", "x86", "x86_64" universalApk true } } packagingOptions { jniLibs { excludes += ['lib/armeabi-v7a/*_neon.so'] } } namespace 'com.github.libretube' } dependencies { //debugImplementation libs.square.leakcanary kapt libs.room.compiler implementation libs.androidx.appcompat implementation libs.androidx.constraintlayout implementation libs.androidx.legacySupport implementation libs.androidx.multidex implementation libs.androidx.navigation.fragment implementation libs.androidx.navigation.ui implementation libs.androidx.preference implementation libs.androidx.work.runtime androidTestImplementation libs.androidx.test.junit androidTestImplementation libs.androidx.test.espressoCore implementation libs.circleimageview implementation libs.material implementation libs.exoplayer implementation(libs.exoplayer.extension.cronet) { exclude group: 'com.google.android.gms' } implementation libs.exoplayer.extension.mediasession implementation libs.square.retrofit implementation libs.square.retrofit.converterJackson // Do not update jackson annotations! It does not supports < API 26. implementation libs.jacksonAnnotations coreLibraryDesugaring libs.desugaring implementation libs.cronet.embedded implementation libs.cronet.okhttp implementation libs.coil implementation libs.lifecycle.viewmodel implementation libs.lifecycle.runtime implementation libs.lifecycle.livedata implementation libs.room } static def getUnixTime() { return Instant.now().getEpochSecond() }