- Updated the application namespace and ID from "net.ypchat.app" to "de.ypchat.android" for better alignment with branding. - Increased Gradle heap size settings to optimize build performance. - Disabled dependency constraints to simplify dependency management. - Removed obsolete files related to the previous application structure, including MainActivity, YpChatApp, and various core components, streamlining the codebase. These changes collectively enhance the application's configuration and structure, improving maintainability and performance.
119 lines
3.5 KiB
Kotlin
119 lines
3.5 KiB
Kotlin
import java.util.Properties
|
|
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
|
|
|
plugins {
|
|
id("com.android.application")
|
|
id("org.jetbrains.kotlin.plugin.compose")
|
|
}
|
|
|
|
val localProperties = Properties().apply {
|
|
val file = rootProject.file("local.properties")
|
|
if (file.exists()) {
|
|
file.inputStream().use(::load)
|
|
}
|
|
}
|
|
|
|
val keyProperties = Properties().apply {
|
|
val file = rootProject.file("key.properties")
|
|
if (file.exists()) {
|
|
file.inputStream().use(::load)
|
|
}
|
|
}
|
|
|
|
val releaseStoreFile = keyProperties.getProperty("storeFile")?.let { rootProject.file(it) }
|
|
|
|
val defaultBaseUrl = "https://www.ypchat.net"
|
|
val appBaseUrl = localProperties.getProperty("ypchat.baseUrl", defaultBaseUrl)
|
|
val hasReleaseSigning = releaseStoreFile?.exists() == true
|
|
|
|
android {
|
|
namespace = "de.ypchat.android"
|
|
compileSdk = 36
|
|
|
|
defaultConfig {
|
|
applicationId = "de.ypchat.android"
|
|
minSdk = 26
|
|
targetSdk = 36
|
|
versionCode = 1
|
|
versionName = "1.0.0"
|
|
}
|
|
|
|
lint {
|
|
checkReleaseBuilds = false
|
|
abortOnError = false
|
|
}
|
|
|
|
signingConfigs {
|
|
if (hasReleaseSigning) {
|
|
create("release") {
|
|
storeFile = releaseStoreFile
|
|
storePassword = keyProperties.getProperty("storePassword")
|
|
keyAlias = keyProperties.getProperty("keyAlias")
|
|
keyPassword = keyProperties.getProperty("keyPassword")
|
|
}
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
buildConfigField("String", "BASE_URL", "\"$appBaseUrl\"")
|
|
manifestPlaceholders["usesCleartextTraffic"] = true
|
|
}
|
|
release {
|
|
buildConfigField("String", "BASE_URL", "\"$appBaseUrl\"")
|
|
isMinifyEnabled = true
|
|
isShrinkResources = true
|
|
manifestPlaceholders["usesCleartextTraffic"] = false
|
|
if (hasReleaseSigning) {
|
|
signingConfig = signingConfigs.getByName("release")
|
|
}
|
|
proguardFiles(
|
|
getDefaultProguardFile("proguard-android-optimize.txt"),
|
|
"proguard-rules.pro"
|
|
)
|
|
}
|
|
}
|
|
|
|
buildFeatures {
|
|
compose = true
|
|
buildConfig = true
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
targetCompatibility = JavaVersion.VERSION_17
|
|
}
|
|
}
|
|
|
|
kotlin {
|
|
compilerOptions {
|
|
jvmTarget.set(JvmTarget.JVM_17)
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
val composeBom = platform("androidx.compose:compose-bom:2026.03.01")
|
|
|
|
implementation(composeBom)
|
|
androidTestImplementation(composeBom)
|
|
|
|
implementation("androidx.activity:activity-compose:1.13.0")
|
|
implementation("androidx.compose.foundation:foundation")
|
|
implementation("androidx.compose.material3:material3")
|
|
implementation("androidx.compose.ui:ui")
|
|
implementation("androidx.compose.ui:ui-tooling-preview")
|
|
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.10.0")
|
|
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.10.0")
|
|
|
|
implementation("com.squareup.okhttp3:okhttp:5.3.2")
|
|
implementation("com.squareup.retrofit2:retrofit:3.0.0")
|
|
implementation("com.squareup.retrofit2:converter-gson:3.0.0")
|
|
implementation("io.socket:socket.io-client:2.1.2") {
|
|
exclude(group = "org.json", module = "json")
|
|
}
|
|
implementation("io.coil-kt.coil3:coil-compose:3.4.0")
|
|
implementation("io.coil-kt.coil3:coil-network-okhttp:3.4.0")
|
|
|
|
debugImplementation("androidx.compose.ui:ui-tooling")
|
|
}
|