Files
aiagent/android/app/build.gradle.kts
renjianbo 21a06e8664 feat: complete P0-2 Token Refresh, P0-4 Android ProGuard, P0-5 App Update
- P0-2: Refresh token with Redis storage (UUID tokens, 30-day TTL, rotation on refresh)
- P0-2: Backend POST /auth/refresh and /auth/revoke endpoints
- P0-2: Android AuthInterceptor refresh-before-re-login flow
- P0-2: AuthRepository saves refresh_token on login, revokes on logout
- P0-4: Enable R8 minification (isMinifyEnabled=true) with comprehensive keep rules
- P0-5: Backend GET /api/v1/app/check-update with force_update support
- P0-5: Android AppUpdateManager with force/optional update dialogs on startup

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-01 22:20:47 +08:00

130 lines
3.1 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 {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.hilt)
alias(libs.plugins.kotlin.kapt)
alias(libs.plugins.google.services)
}
android {
namespace = "com.tiangong.aiagent"
compileSdk = 34
defaultConfig {
applicationId = "com.tiangong.aiagent"
minSdk = 26
targetSdk = 34
versionCode = 1
versionName = "1.0.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
// 真机调试用本机 WiFi IP模拟器用 10.0.2.2
buildConfigField("String", "BASE_URL", "\"http://192.168.31.135:8037/\"")
}
buildTypes {
release {
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
buildFeatures {
compose = true
buildConfig = true
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}
dependencies {
// Compose
implementation(platform(libs.compose.bom))
implementation(libs.compose.material3)
implementation(libs.compose.ui)
implementation(libs.compose.ui.graphics)
implementation(libs.compose.ui.tooling.preview)
implementation(libs.compose.material.icons)
debugImplementation(libs.compose.ui.tooling)
// Navigation
implementation(libs.navigation.compose)
// Lifecycle
implementation(libs.lifecycle.viewmodel.compose)
implementation(libs.lifecycle.runtime.compose)
// Activity
implementation(libs.activity.compose)
// Core
implementation(libs.core.ktx)
// Network
implementation(libs.retrofit)
implementation(libs.retrofit.converter.gson)
implementation(libs.okhttp)
implementation(libs.okhttp.logging)
implementation(libs.gson)
// Room
implementation(libs.room.runtime)
implementation(libs.room.ktx)
kapt(libs.room.compiler)
// DataStore
implementation(libs.datastore.preferences)
// Hilt
implementation(libs.hilt.android)
kapt(libs.hilt.compiler)
implementation(libs.hilt.navigation.compose)
// Coil
implementation(libs.coil.compose)
// Media3
implementation(libs.media3.exoplayer)
// Splash Screen
implementation("androidx.core:core-splashscreen:1.0.1")
// Security
implementation(libs.security.crypto)
// Markdown
implementation(libs.markwon.core)
implementation(libs.markwon.image)
implementation(libs.markwon.linkify)
// Firebase (requires google-services.json in app/ to function at runtime)
implementation(platform(libs.firebase.bom))
implementation(libs.firebase.messaging)
// Bugly (Tencent crash reporting)
implementation(libs.bugly.crashreport)
implementation(libs.bugly.native)
}