Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a0494e90ee | ||
|
|
2b48e5cac6 |
@@ -79,8 +79,8 @@ android {
|
|||||||
applicationId "com.ariacockpit"
|
applicationId "com.ariacockpit"
|
||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode 20008
|
versionCode 20009
|
||||||
versionName "0.2.0.8"
|
versionName "0.2.0.9"
|
||||||
// Fallback fuer Libraries mit Product Flavors
|
// Fallback fuer Libraries mit Product Flavors
|
||||||
missingDimensionStrategy 'react-native-camera', 'general'
|
missingDimensionStrategy 'react-native-camera', 'general'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "aria-cockpit",
|
"name": "aria-cockpit",
|
||||||
"version": "0.2.0.8",
|
"version": "0.2.0.9",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"android": "react-native run-android",
|
"android": "react-native run-android",
|
||||||
|
|||||||
@@ -1203,6 +1203,21 @@ const ChatScreen: React.FC = () => {
|
|||||||
clearAckTimer(cmid);
|
clearAckTimer(cmid);
|
||||||
pendingPayloads.current.delete(cmid);
|
pendingPayloads.current.delete(cmid);
|
||||||
}
|
}
|
||||||
|
// Stille Antwort (speak=false, z.B. Fast-Path „nächster Titel") → es
|
||||||
|
// kommt KEIN TTS, also feuert onPlaybackFinished nie. Genau daran haengt
|
||||||
|
// aber das Wake-Word-Re-Arm — sonst bleibt das Ohr nach dem Steuerbefehl
|
||||||
|
// grau haengen (Reproduktion Stefan im Auto). Hier dieselbe Logik wie
|
||||||
|
// bei TTS-Ende anstossen: aktiv → Konversations-Fenster (resume),
|
||||||
|
// sonst → Konversation beenden (re-arm).
|
||||||
|
const _isSilent = (message.payload as any).speak === false
|
||||||
|
|| ((message.payload as any).answeredBy === 'fast-path');
|
||||||
|
if (_isSilent && wakeWordService.isConversing()) {
|
||||||
|
if (AppState.currentState === 'active') {
|
||||||
|
wakeWordService.resume();
|
||||||
|
} else {
|
||||||
|
wakeWordService.endConversation().catch(() => {});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TTS-Audio abspielen wenn vorhanden — respektiert geraetelokalen Mute/Disable
|
// TTS-Audio abspielen wenn vorhanden — respektiert geraetelokalen Mute/Disable
|
||||||
|
|||||||
@@ -1366,6 +1366,11 @@ class ARIABridge:
|
|||||||
"projectId": (payload.get("projectId") or "") if isinstance(payload, dict) else "",
|
"projectId": (payload.get("projectId") or "") if isinstance(payload, dict) else "",
|
||||||
# Quell-Backend (local/claude/fast-path) fuer den Diagnostic-Badge.
|
# Quell-Backend (local/claude/fast-path) fuer den Diagnostic-Badge.
|
||||||
"answeredBy": (payload.get("answeredBy") or "") if isinstance(payload, dict) else "",
|
"answeredBy": (payload.get("answeredBy") or "") if isinstance(payload, dict) else "",
|
||||||
|
# Wird diese Antwort vorgelesen? Fast-Path/Steuerbefehl = False.
|
||||||
|
# Die App braucht das: ohne TTS feuert onPlaybackFinished nie,
|
||||||
|
# und daran haengt das Wake-Word-Re-Arm — sonst bleibt das Ohr
|
||||||
|
# nach einem Fast-Path-Befehl grau haengen.
|
||||||
|
"speak": bool(payload.get("speak", True)) if isinstance(payload, dict) else True,
|
||||||
},
|
},
|
||||||
"timestamp": int(asyncio.get_event_loop().time() * 1000),
|
"timestamp": int(asyncio.get_event_loop().time() * 1000),
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user