Files
agent-ui/src-tauri/gen/android/app/build.gradle.kts
josedario87 65303df96a feat: Samsung lock screen face widget, voice assistant services, PiP mode and gitignore installers
Add Samsung proprietary Face Widget (lock screen/AOD) with terminal status display.
Add voice interaction services (AgentVoiceInteractionService, RecognitionService) for
digital assistant registration. Add PiP mode with voice/expand actions. Add session-state
proxy, voice transcript routes, window controls component. Ignore installers/ directory.
2026-02-23 20:52:11 -06:00

126 lines
4.6 KiB
Plaintext

import java.util.Properties
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("rust")
}
val tauriProperties = Properties().apply {
val propFile = file("tauri.properties")
if (propFile.exists()) {
propFile.inputStream().use { load(it) }
}
}
android {
signingConfigs {
create("release") {
storeFile = file("../keystore.jks")
storePassword = "agentui123"
keyAlias = "agentui"
keyPassword = "agentui123"
}
}
compileSdk = 36
namespace = "com.agentui.desktop"
defaultConfig {
manifestPlaceholders["usesCleartextTraffic"] = "false"
applicationId = "com.agentui.desktop"
minSdk = 24
targetSdk = 36
versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt()
versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0")
}
buildTypes {
getByName("debug") {
manifestPlaceholders["usesCleartextTraffic"] = "true"
isDebuggable = true
isJniDebuggable = true
isMinifyEnabled = false
packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so")
jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so")
jniLibs.keepDebugSymbols.add("*/x86/*.so")
jniLibs.keepDebugSymbols.add("*/x86_64/*.so")
}
}
getByName("release") {
manifestPlaceholders["usesCleartextTraffic"] = "true"
signingConfig = signingConfigs.getByName("release")
isMinifyEnabled = false
proguardFiles(
*fileTree(".") { include("**/*.pro") }
.plus(getDefaultProguardFile("proguard-android-optimize.txt"))
.toList().toTypedArray()
)
}
}
kotlinOptions {
jvmTarget = "1.8"
}
buildFeatures {
buildConfig = true
}
}
rust {
rootDirRel = "../../../../"
}
dependencies {
implementation("androidx.webkit:webkit:1.14.0")
implementation("androidx.appcompat:appcompat:1.7.1")
implementation("androidx.activity:activity-ktx:1.10.1")
implementation("com.google.android.material:material:1.12.0")
implementation("androidx.work:work-runtime-ktx:2.9.0")
implementation("com.squareup.okhttp3:okhttp:4.12.0")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.4")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0")
}
apply(from = "tauri.build.gradle.kts")
// Copy APK after build: local installers/ + network backup
// Only the universal signed variant gets copied as agent-ui.apk
android.applicationVariants.all {
val variant = this
variant.outputs.all {
val output = this
variant.assembleProvider.get().doLast {
val src = output.outputFile
if (src.exists()) {
val localDir = file("../../../../installers")
localDir.mkdirs()
// Always save versioned copy per variant
val localVersioned = File(localDir, "AgentUI-${variant.versionName}-${variant.name}.apk")
src.copyTo(localVersioned, overwrite = true)
println(">> Copied APK to ${localVersioned.absolutePath}")
// agent-ui.apk = only the universal signed build
val isUniversal = variant.name.contains("universal", ignoreCase = true)
val isSigned = variant.signingConfig != null
if (isUniversal && isSigned) {
val localFixed = File(localDir, "agent-ui.apk")
src.copyTo(localFixed, overwrite = true)
println(">> Copied universal signed APK to ${localFixed.absolutePath}")
// Network backup
val networkDir = File("\\\\Memoria-1\\ActiveBackupforBusiness\\Nucleo v3\\agent-ui-apk")
try {
if (networkDir.exists() || networkDir.mkdirs()) {
val networkFile = File(networkDir, "agent-ui.apk")
src.copyTo(networkFile, overwrite = true)
println(">> Copied APK to network: ${networkFile.absolutePath}")
} else {
println(">> WARNING: Network path not available: $networkDir")
}
} catch (e: Exception) {
println(">> WARNING: Failed to copy to network: ${e.message}")
}
}
}
}
}
}