Files
Polly/app/build.gradle.kts
2026-02-15 17:55:06 +01:00

181 lines
5.7 KiB
Kotlin

@file:Suppress("HardCodedStringLiteral")
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.hilt.android)
id("kotlin-parcelize")
id("org.jetbrains.kotlin.plugin.serialization")
id("com.google.devtools.ksp")
}
android {
namespace = "eu.gaudian.translator"
compileSdk = 36
defaultConfig {
applicationId = "eu.gaudian.translator"
minSdk = 28
targetSdk = 36
versionCode = 23
versionName = "0.5.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
testOptions {
execution = "ANDROIDX_TEST_ORCHESTRATOR"
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
val buildTime = SimpleDateFormat("dd.MM.yyyy HH:mm", Locale.getDefault()).format(Date())
buildConfigField("String", "BUILD_TIME", "\"$buildTime\"")
signingConfig = signingConfigs.getByName("debug")
}
debug {
val buildTime = SimpleDateFormat("dd.MM.yyyy HH:mm", Locale.getDefault()).format(Date())
buildConfigField("String", "BUILD_TIME", "\"$buildTime\"")
}
}
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
compilerOptions.freeCompilerArgs.addAll(
"-opt-in=kotlin.time.ExperimentalTime",
"-opt-in=androidx.compose.material3.ExperimentalMaterial3Api",
"-opt-in=androidx.compose.ui.ExperimentalComposeUiApi"
)
}
kotlin {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11)
}
}
buildFeatures {
compose = true
viewBinding = false
dataBinding = false
buildConfig = true
}
packaging {
// This keeps your original resource exclusions
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
excludes += "**/dump_syms.bin"
}
jniLibs {
useLegacyPackaging = true
}
}
configurations.all {
exclude(group = "com.intellij", module = "annotations")
}
buildToolsVersion = "36.0.0"
}
dependencies {
implementation(platform(libs.androidx.compose.bom))
// Core & UI
implementation(libs.androidx.core.ktx)
implementation(libs.material)
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.core.splashscreen)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.lifecycle.viewmodel.compose)
implementation(libs.androidx.lifecycle.viewmodel.ktx)
implementation(libs.timber)
// Compose
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.foundation)
implementation(libs.androidx.foundation.layout)
implementation(libs.androidx.animation)
implementation(libs.androidx.animation.core)
implementation(libs.androidx.material3)
implementation(libs.androidx.material.icons.extended)
implementation(libs.reorderable)
// Navigation
implementation(libs.androidx.navigation.compose)
// Data
implementation(libs.androidx.datastore.preferences)
implementation(libs.androidx.paging.runtime.ktx)
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.coroutines.android)
implementation(libs.kotlinx.datetime)
implementation(libs.kotlinx.serialization.json)
// Room Database
implementation(libs.androidx.room.runtime) // ADDED: Explicitly add runtime
implementation(libs.androidx.room.ktx)
implementation(libs.core.ktx)
ksp(libs.room.compiler) // CHANGED: Use ksp instead of implementation
// Networking
implementation(libs.retrofit)
implementation(libs.converter.gson)
implementation(libs.logging.interceptor)
implementation(libs.androidx.annotation)
implementation(libs.kotlin.stdlib)
implementation(libs.jsoup)
implementation(libs.core)
// Hilt
implementation(libs.hilt.android)
implementation(libs.hilt.navigation.compose)
ksp(libs.hilt.android.compiler)
// Debug and Test
debugImplementation(libs.ui.tooling)
debugImplementation(libs.ui.test.manifest)
testImplementation(libs.junit)
testImplementation(libs.kotlinx.coroutines.test)
testImplementation(libs.androidx.core.testing)
testImplementation(libs.hilt.android.testing)
testAnnotationProcessor(libs.hilt.android.compiler)
testImplementation(libs.mockito.core)
testImplementation(libs.mockito.kotlin)
testImplementation(libs.mockk)
testImplementation(libs.truth)
testImplementation(libs.androidx.runner)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.ui.test.junit4)
androidTestImplementation(libs.androidx.navigation.testing)
//noinspection UseTomlInstead
implementation("com.pierfrancescosoffritti.androidyoutubeplayer:core:13.0.0")
// Markdown rendering
implementation(libs.compose.markdown)
// Compression
testImplementation (libs.zstd.jni)
implementation(libs.zstd.jni.get().toString() + "@aar")
}