Files
ts-mobile-go/android/app/build.gradle.kts
T
sansen 4d06ff2ade 1. 保活通知状态机:断开/断网时必然清除(stopForeground REMOVE + cancel);断网重连时显示“重连中”,重连成功恢复“已连接”,重连失败/放弃/服务器主动断开则清除
2. 导出崩溃日志改为 .log 文件附件(注册 FileProvider 分享,不再纯文本复制)
3. 版本号提升至 1.0.11(versionCode 11)
2026-08-25 14:11:30 +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 = 11
versionName = "1.0.11"
}
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")
}