406f4cb3cc
Bug 1 — Textauswahl in Bubbles ging nicht mehr:
MessageText hatte verschachtelte <Text onPress={...}> fuer Custom-Link-
Styling. Das fing die Long-Press-Geste ab, daher kein Markieren+Kopieren
mehr. Jetzt nur noch ein einzelnes <Text selectable dataDetectorType="all">,
Android macht URLs/Telefonnummern/Emails per System-Detection klickbar.
Bug 2 — VAD erkannte Stille nicht zuverlaessig (Aufnahme lief endlos):
Festwerte (-45dB Stille / -28dB Sprache) passten nicht zu jeder Umgebung.
In lauteren Raeumen lag der Hintergrundpegel ueber der Stille-Schwelle,
lastSpeechTime wurde dauerhaft aktualisiert → VAD feuerte nie, Aufnahme
lief bis 120s Max-Duration.
Jetzt adaptiv: erste 5 Mic-Samples (~500ms) bilden die Baseline; Stille-
Schwelle = baseline+6dB, Sprache-Schwelle = baseline+12dB. Toast zeigt
die kalibrierten Werte beim Aufnahmestart. Fallback auf -38dB/-22dB falls
das Mikro keine Metering-Updates liefert.
Bug 3 — Barge-In ("ach vergiss es"):
Wenn waehrend ARIAs Antwort eine neue Sprachnachricht aufgenommen wird,
wird ARIAs aktuelle Aktivitaet (TTS + thinking/tool) sofort abgebrochen
bevor die neue Message gesendet wird — wie in einem echten Gespraech wo
man den anderen unterbrechen darf.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
27 lines
714 B
TypeScript
27 lines
714 B
TypeScript
/**
|
|
* MessageText — selektierbarer Chat-Text mit Android-Auto-Linkifizierung.
|
|
*
|
|
* Wir nutzen Androids dataDetectorType="all" (System macht Phone/URL/Email
|
|
* automatisch klickbar) und ein einzelnes <Text selectable> ohne nested
|
|
* <Text> mit eigenem onPress. Nested Text mit onPress fingen die Long-Press-
|
|
* Geste ab, damit war Markieren+Kopieren defekt.
|
|
*/
|
|
|
|
import React from 'react';
|
|
import { Text, TextStyle, StyleProp } from 'react-native';
|
|
|
|
interface Props {
|
|
text: string;
|
|
style?: StyleProp<TextStyle>;
|
|
}
|
|
|
|
const MessageText: React.FC<Props> = ({ text, style }) => {
|
|
return (
|
|
<Text style={style} selectable dataDetectorType="all">
|
|
{text}
|
|
</Text>
|
|
);
|
|
};
|
|
|
|
export default MessageText;
|