mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
fix: address Copilot review (ABI check, feature flag default, recorder crash)
This commit is contained in:
parent
bf4e318753
commit
b885f728a2
3 changed files with 14 additions and 11 deletions
|
|
@ -22,15 +22,18 @@ plugins {
|
|||
alias(libs.plugins.meshtastic.kotlinx.serialization)
|
||||
}
|
||||
|
||||
// ─── Codec2 JNI detection ─────────────────────────────────────────
|
||||
val codec2SoArm64 = File(projectDir, "src/androidMain/jniLibs/arm64-v8a/libcodec2.so")
|
||||
val codec2JniArm64 = File(projectDir, "src/androidMain/jniLibs/arm64-v8a/libcodec2_jni.so")
|
||||
val codec2Available = codec2SoArm64.exists() && codec2JniArm64.exists()
|
||||
// --- Codec2 JNI detection ---------------------------------------------------
|
||||
val codec2SoArm64 = File(projectDir, "src/androidMain/jniLibs/arm64-v8a/libcodec2.so")
|
||||
val codec2JniArm64 = File(projectDir, "src/androidMain/jniLibs/arm64-v8a/libcodec2_jni.so")
|
||||
val codec2SoX86_64 = File(projectDir, "src/androidMain/jniLibs/x86_64/libcodec2.so")
|
||||
val codec2JniX86_64 = File(projectDir, "src/androidMain/jniLibs/x86_64/libcodec2_jni.so")
|
||||
val codec2Available = (codec2SoArm64.exists() && codec2JniArm64.exists()) ||
|
||||
(codec2SoX86_64.exists() && codec2JniX86_64.exists())
|
||||
|
||||
if (codec2Available) {
|
||||
logger.lifecycle(":feature:voiceburst — libcodec2.so + libcodec2_jni.so trovate")
|
||||
logger.lifecycle(":feature:voiceburst -- libcodec2.so + libcodec2_jni.so found")
|
||||
} else {
|
||||
logger.lifecycle(":feature:voiceburst — .so assenti → stub mode (esegui scripts/build_codec2.sh)")
|
||||
logger.lifecycle(":feature:voiceburst -- .so not found -> stub mode (run scripts/build_codec2.sh)")
|
||||
}
|
||||
|
||||
kotlin {
|
||||
|
|
@ -73,6 +76,6 @@ kotlin {
|
|||
}
|
||||
}
|
||||
|
||||
// ─── NESSUN externalNativeBuild ───────────────────────────────────
|
||||
// Le .so prebuilt in jniLibs/ vengono incluse automaticamente da AGP.
|
||||
// Il JNI wrapper è compilato da scripts/build_codec2.sh.
|
||||
// No externalNativeBuild block needed.
|
||||
// Prebuilt .so files in jniLibs/ are packaged automatically by AGP.
|
||||
// The JNI wrapper is compiled separately via scripts/build_codec2.sh.
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ class AndroidAudioRecorder(
|
|||
Logger.e(e, tag = TAG) { "Error during recording" }
|
||||
onError(e)
|
||||
} finally {
|
||||
record.stop()
|
||||
runCatching { record.stop() } // guard against IllegalStateException on early-stop
|
||||
record.release()
|
||||
audioRecord = null
|
||||
keepRecording = false
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ class AndroidVoiceBurstRepository(
|
|||
// ─── Feature flag ─────────────────────────────────────────────────────────
|
||||
|
||||
private val featureEnabledFlow = dataStore.data
|
||||
.map { prefs -> prefs[KEY_FEATURE_ENABLED] ?: true } // Default ON
|
||||
.map { prefs -> prefs[KEY_FEATURE_ENABLED] ?: false } // Default OFF (experimental opt-in)
|
||||
|
||||
override val isFeatureEnabled: StateFlow<Boolean> =
|
||||
featureEnabledFlow.stateIn(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue