import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { alias(libs.plugins.androidApplication) alias(libs.plugins.composeCompiler) alias(libs.plugins.kotlinSerialization) alias(libs.plugins.koin.compiler) } android { namespace = "dev.anilbeesetti.nextplayer" compileSdk = libs.versions.android.compileSdk.get().toInt() defaultConfig { minSdk = libs.versions.android.minSdk.get().toInt() targetSdk = libs.versions.android.targetSdk.get().toInt() applicationId = "dev.anilbeesetti.nextplayer" versionCode = 75 versionName = "0.19.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildFeatures { compose = true buildConfig = true } compileOptions { sourceCompatibility = JavaVersion.toVersion(libs.versions.android.jvm.get().toInt()) targetCompatibility = JavaVersion.toVersion(libs.versions.android.jvm.get().toInt()) } buildTypes { getByName("release") { isMinifyEnabled = true isShrinkResources = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro", ) } getByName("debug") { isDebuggable = true applicationIdSuffix = ".debug" } create("release-with-debug-signing") { initWith(getByName("release")) signingConfig = signingConfigs.getByName("debug") applicationIdSuffix = ".release" matchingFallbacks.add("release") } } signingConfigs { getByName("debug") { storeFile = file("${project.rootDir}/app/debug.keystore") storePassword = "android" keyAlias = "androiddebugkey" keyPassword = "android" } } splits { abi { //noinspection WrongGradleMethod val isBuildingBundle = gradle.startParameter.taskNames.any { it.lowercase().contains("bundle") } isEnable = !isBuildingBundle reset() include("armeabi-v7a", "arm64-v8a", "x86", "x86_64") isUniversalApk = true } } packaging { resources { excludes.add("/META-INF/{AL2.0,LGPL2.1}") } } dependenciesInfo { // Disables dependency metadata when building APKs. includeInApk = false // Disables dependency metadata when building Android App Bundles. includeInBundle = false } } kotlin { compilerOptions { jvmTarget.set(JvmTarget.fromTarget(libs.versions.android.jvm.get())) } } dependencies { implementation(project(":core:common")) implementation(project(":core:data")) implementation(project(":core:media")) implementation(project(":core:model")) implementation(project(":core:ui")) implementation(project(":feature:network")) implementation(project(":feature:playlist")) implementation(project(":feature:videopicker")) implementation(project(":feature:player")) implementation(project(":feature:settings")) implementation(libs.androidx.core.ktx) implementation(libs.androidx.activity.compose) implementation(libs.androidx.appcompat) // Compose implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.compose.ui) implementation(libs.androidx.compose.ui.tooling.preview) implementation(libs.androidx.compose.material3) implementation(libs.androidx.compose.material3.adaptive) implementation(libs.androidx.navigation3.runtime) implementation(libs.androidx.navigation3.ui) implementation(libs.androidx.lifecycle.viewmodel.navigation3) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.lifecycle.runtimeCompose) implementation(libs.google.android.material) implementation(libs.androidx.core.splashscreen) implementation(libs.coil.compose) implementation(libs.coil.network.okhttp) // Koin implementation(libs.koin.android) implementation(libs.koin.annotations) implementation(libs.koin.compose.viewmodel) implementation(libs.accompanist.permissions) implementation(libs.github.anilbeesetti.nextlib.mediainfo) testImplementation(libs.junit4) testImplementation(libs.kotlinx.coroutines.test) testImplementation(libs.robolectric) androidTestImplementation(project(":core:domain")) androidTestImplementation(libs.androidx.datastore.core) androidTestImplementation(libs.androidx.media3.session) androidTestImplementation(libs.github.anilbeesetti.nextlib.media3ext) androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.test.ext) androidTestImplementation(libs.androidx.test.rules) androidTestImplementation(libs.androidx.test.espresso.core) androidTestImplementation(libs.androidx.compose.ui.test) debugImplementation(libs.androidx.compose.ui.tooling) debugImplementation(libs.androidx.compose.ui.testManifest) }