apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: "androidx.navigation.safeargs.kotlin" apply plugin: 'kotlin-parcelize' apply plugin: 'com.google.devtools.ksp' android { compileSdk 33 namespace "code.name.monkey.retromusic" defaultConfig { minSdk 21 targetSdk 33 vectorDrawables.useSupportLibrary = true applicationId namespace versionCode 10603 versionName '6.1.0' buildConfigField("String", "GOOGLE_PLAY_LICENSING_KEY", "\"${getProperty(getProperties('../public.properties'), 'GOOGLE_PLAY_LICENSE_KEY')}\"") } def signingProperties = getProperties('retro.properties') def releaseSigning if (signingProperties != null) { releaseSigning = signingConfigs.create("release") { storeFile file(getProperty(signingProperties, 'storeFile')) keyAlias getProperty(signingProperties, 'keyAlias') storePassword getProperty(signingProperties, 'storePassword') keyPassword getProperty(signingProperties, 'keyPassword') } } else { releaseSigning = signingConfigs.debug } buildTypes { release { shrinkResources true minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' signingConfig releaseSigning } debug { signingConfig releaseSigning applicationIdSuffix '.debug' versionNameSuffix ' DEBUG' } } flavorDimensions = ["version"] productFlavors { normal { dimension "version" } fdroid { dimension "version" } } buildFeatures { viewBinding true } packagingOptions { resources { excludes += ['META-INF/LICENSE', 'META-INF/NOTICE', 'META-INF/java.properties'] } } lint { abortOnError true warning 'ImpliedQuantity', 'Instantiatable', 'MissingQuantity', 'MissingTranslation' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } dependenciesInfo { includeInApk = false includeInBundle = false } configurations.configureEach { resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9' } } def getProperties(String fileName) { Properties properties = new Properties() def file = rootProject.file(fileName) if (file.exists()) { file.withInputStream { stream -> properties.load(stream) } } else { properties = null } return properties } static def getProperty(Properties properties, String name) { return properties?.getProperty(name) ?: "$name missing" } dependencies { implementation project(':appthemehelper') implementation libs.gridLayout implementation libs.androidx.appcompat implementation libs.androidx.annotation implementation libs.androidx.constraintLayout implementation libs.androidx.recyclerview implementation libs.androidx.preference.ktx implementation libs.androidx.core.ktx implementation libs.androidx.palette.ktx implementation libs.androidx.mediarouter //Cast Dependencies normalImplementation libs.google.play.services.cast.framework //WebServer by NanoHttpd normalImplementation libs.nanohttpd implementation libs.androidx.navigation.runtime.ktx implementation libs.androidx.navigation.fragment.ktx implementation libs.androidx.navigation.ui.ktx implementation libs.androidx.room.runtime implementation libs.androidx.room.ktx ksp libs.androidx.room.compiler implementation libs.androidx.lifecycle.viewmodel.ktx implementation libs.androidx.lifecycle.livedata.ktx implementation libs.androidx.lifecycle.common.java8 implementation libs.androidx.core.splashscreen normalImplementation libs.google.feature.delivery normalImplementation libs.google.play.review implementation libs.android.material implementation libs.retrofit implementation libs.retrofit.converter.gson implementation libs.okhttp3.logging.interceptor implementation libs.afollestad.material.dialogs.core implementation libs.afollestad.material.dialogs.input implementation libs.afollestad.material.dialogs.color implementation libs.afollestad.material.cab implementation libs.kotlinx.coroutines.android implementation libs.koin.core implementation libs.koin.android implementation libs.glide ksp libs.glide.ksp implementation libs.glide.okhttp3.integration implementation libs.advrecyclerview implementation libs.fadingedgelayout implementation libs.keyboardvisibilityevent implementation libs.jetradarmobile.android.snowfall implementation libs.chrisbanes.insetter implementation libs.org.eclipse.egit.github.core implementation libs.jaudiotagger normalImplementation libs.android.lab.library implementation libs.slidableactivity implementation libs.material.intro implementation libs.dhaval2404.imagepicker implementation libs.fastscroll.library implementation libs.customactivityoncrash implementation libs.tankery.circularSeekBar }