Keep the Android connection alive in the background
The session moves from the connection screen's ViewModel into an app-wide SessionController, and a foreground service keeps the process running while connected: - Its notification shows the server and status and offers Mute, Deafen and Disconnect. - It declares microphone use only once the microphone is handed to the connection, as Android requires that permission to be granted then. - It holds a low-latency Wi-Fi lock and a CPU wake lock, since voice goes out every 20 ms. - When the system moves to another network, the session reconnects to where it was, as its socket stays bound to the old one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -22,6 +22,7 @@ android {
|
||||
buildTypes {
|
||||
release {
|
||||
isMinifyEnabled = true
|
||||
isShrinkResources = true
|
||||
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
||||
}
|
||||
}
|
||||
@@ -51,5 +52,5 @@ dependencies {
|
||||
implementation(libs.androidx.compose.material3)
|
||||
implementation(libs.androidx.activity.compose)
|
||||
implementation(libs.androidx.lifecycle.runtime.compose)
|
||||
implementation(libs.androidx.lifecycle.viewmodel.compose)
|
||||
implementation(libs.androidx.lifecycle.service)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user