Files
ts-mobile-go/android/app/build.gradle.kts
T
sansen f27ba9509d 1. 修复真机崩溃:消息 ID 唯一化(LazyColumn 重复 key)+ 消息列表滚动先等布局完成(layout state not idle)
2. 新增 BBCode 解析:服务器欢迎消息/频道描述支持 b/i/u/s/color/size/url,链接可点击,病态输入不崩溃
3. 语音卡成员长按波纹圆角
4. 版本号提升至 1.0.10(versionCode 10)
2026-08-25 13:17:45 +08:00

112 lines
3.4 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("org.jetbrains.kotlin.plugin.compose")
id("org.jetbrains.kotlin.plugin.serialization")
}
android {
namespace = "com.tsmobile.app"
compileSdk = 35
defaultConfig {
applicationId = "com.tsmobile.app"
minSdk = 26
targetSdk = 35
versionCode = 10
versionName = "1.0.10"
}
signingConfigs {
create("release") {
// The release keystore is kept at the repository root by default.
// Gradle properties can still override this path for CI or local setups.
val defaultStoreFile = rootProject.projectDir.parentFile
.resolve("keystore/tsmobile-release.jks")
storeFile = defaultStoreFile
storePassword = providers.gradleProperty("TSMOBILE_STORE_PASSWORD").orNull
keyAlias = providers.gradleProperty("TSMOBILE_KEY_ALIAS")
.orElse("tsmobile-release")
.get()
keyPassword = providers.gradleProperty("TSMOBILE_KEY_PASSWORD").orNull
}
}
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
signingConfig = signingConfigs.getByName("release")
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
buildFeatures {
compose = true
}
// 引入 gomobile 生成的 AAR
// 将 Go 编译产物放到 app/libs/ 目录下
// 文件名: teamspeak.aar
}
dependencies {
// Compose BOM
val composeBom = platform("androidx.compose:compose-bom:2024.12.01")
implementation(composeBom)
// Compose UI
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.compose.material3:material3")
implementation("androidx.compose.material:material-icons-extended")
// Activity & Navigation
implementation("androidx.activity:activity-compose:1.9.3")
implementation("androidx.navigation:navigation-compose:2.8.5")
// Lifecycle & ViewModel
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.7")
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7")
implementation("androidx.lifecycle:lifecycle-service:2.8.7")
implementation("androidx.lifecycle:lifecycle-process:2.8.7")
// DataStore (替代 localStorage)
implementation("androidx.datastore:datastore-preferences:1.1.1")
// Coroutines
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0")
// JSON 序列化
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3")
// HTTP client (更新检测)
implementation("com.squareup.okhttp3:okhttp:4.12.0")
// Coil 图片加载(Compose)
implementation("io.coil-kt.coil3:coil-compose:3.0.4")
// gomobile AAR — 放到 app/libs/teamspeak.aar
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.aar"))))
// Tests
testImplementation("junit:junit:4.13.2")
// Debug
debugImplementation("androidx.compose.ui:ui-tooling")
}