Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8c1dac86d5 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
+1
-1
File diff suppressed because one or more lines are too long
Binary file not shown.
BIN
Binary file not shown.
+1
-1
@@ -1,4 +1,4 @@
|
||||
#Sun Mar 29 11:54:43 CEST 2026
|
||||
#Sun Mar 29 12:08:20 CEST 2026
|
||||
base.2=/home/duffy/Dokumente/programmierung/ARIA-AGENT/android/android/app/build/intermediates/dex/release/mergeDexRelease/classes2.dex
|
||||
path.2=classes2.dex
|
||||
base.1=/home/duffy/Dokumente/programmierung/ARIA-AGENT/android/android/app/build/intermediates/global_synthetics_dex/release/classes.dex
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
@@ -96,6 +96,24 @@ const ChatScreen: React.FC = () => {
|
||||
// RVS-Nachrichten abonnieren
|
||||
useEffect(() => {
|
||||
const unsubMessage = rvs.onMessage((message: RVSMessage) => {
|
||||
// STT-Ergebnis: Spracheingabe-Placeholder mit transkribiertem Text ersetzen
|
||||
if (message.type === 'stt_result') {
|
||||
const sttText = (message.payload.text as string) || '';
|
||||
if (sttText) {
|
||||
setMessages(prev => prev.map(m =>
|
||||
m.sender === 'user' && m.text.includes('Spracheingabe wird verarbeitet')
|
||||
? { ...m, text: sttText }
|
||||
: m
|
||||
));
|
||||
} else {
|
||||
// Keine Sprache erkannt — Placeholder entfernen
|
||||
setMessages(prev => prev.filter(m =>
|
||||
!(m.sender === 'user' && m.text.includes('Spracheingabe wird verarbeitet'))
|
||||
));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (message.type === 'chat') {
|
||||
// Nur Nachrichten von ARIA anzeigen — eigene Nachrichten werden lokal hinzugefuegt
|
||||
const sender = (message.payload.sender as string) || '';
|
||||
@@ -207,9 +225,14 @@ const ChatScreen: React.FC = () => {
|
||||
// Auto-Scroll bei neuen Nachrichten
|
||||
useEffect(() => {
|
||||
if (messages.length > 0) {
|
||||
// Laengerer Delay damit FlatList fertig gerendert hat
|
||||
setTimeout(() => {
|
||||
flatListRef.current?.scrollToEnd({ animated: false });
|
||||
}, 300);
|
||||
// Nochmal animiert fuer den Fall dass sich die Hoehe geaendert hat
|
||||
setTimeout(() => {
|
||||
flatListRef.current?.scrollToEnd({ animated: true });
|
||||
}, 100);
|
||||
}, 600);
|
||||
}
|
||||
}, [messages]);
|
||||
|
||||
|
||||
@@ -1047,9 +1047,27 @@ class ARIABridge:
|
||||
|
||||
if text.strip():
|
||||
logger.info("[rvs] STT Ergebnis: '%s'", text[:80])
|
||||
# STT-Ergebnis zurueck an die App senden (zur Anzeige, nicht nochmal verarbeiten)
|
||||
await self._send_to_rvs({
|
||||
"type": "stt_result",
|
||||
"payload": {
|
||||
"text": text,
|
||||
"sender": "user",
|
||||
},
|
||||
"timestamp": int(asyncio.get_event_loop().time() * 1000),
|
||||
})
|
||||
await self.send_to_core(text, source="app-voice")
|
||||
else:
|
||||
logger.info("[rvs] Keine Sprache erkannt — ignoriert")
|
||||
await self._send_to_rvs({
|
||||
"type": "stt_result",
|
||||
"payload": {
|
||||
"text": "",
|
||||
"error": "Keine Sprache erkannt",
|
||||
"sender": "user",
|
||||
},
|
||||
"timestamp": int(asyncio.get_event_loop().time() * 1000),
|
||||
})
|
||||
|
||||
except Exception:
|
||||
logger.exception("[rvs] Audio-Verarbeitung fehlgeschlagen")
|
||||
|
||||
@@ -501,7 +501,9 @@
|
||||
}
|
||||
if (msg.type === 'rvs_chat') {
|
||||
const p = msg.msg.payload || {};
|
||||
addChat('received', p.text || '?', `via RVS (${p.sender || '?'})`);
|
||||
const sender = p.sender || '?';
|
||||
const chatType = (sender === 'aria') ? 'received' : 'sent';
|
||||
addChat(chatType, p.text || '?', `via RVS (${sender})`);
|
||||
return;
|
||||
}
|
||||
if (msg.type === 'proxy_result') {
|
||||
|
||||
@@ -338,6 +338,14 @@ function handleGatewayMessage(msg) {
|
||||
log("info", "gateway", `ANTWORT: "${text.slice(0, 200)}"`);
|
||||
if (pipelineActive) pipelineEnd(true, `"${text.slice(0, 120)}"`);
|
||||
broadcast({ type: "chat_final", text, payload });
|
||||
// Antwort auch an RVS weiterleiten → App bekommt ARIAs Antworten
|
||||
if (rvsWs && rvsWs.readyState === WebSocket.OPEN && text) {
|
||||
rvsWs.send(JSON.stringify({
|
||||
type: "chat",
|
||||
payload: { text, sender: "aria" },
|
||||
timestamp: Date.now(),
|
||||
}));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user