diff --git a/app/(tabs)/_layout.tsx b/app/(tabs)/_layout.tsx index fcf4c00..6e690e6 100644 --- a/app/(tabs)/_layout.tsx +++ b/app/(tabs)/_layout.tsx @@ -122,6 +122,27 @@ export default function TabLayout() { } }, [sttIsListening, startListening]); + // Track previous status to detect transition from speaking to listening + const prevStatusRef = useRef('idle'); + + // Auto-restart STT when TTS finishes (status changes from 'speaking' to 'listening') + useEffect(() => { + const prevStatus = prevStatusRef.current; + prevStatusRef.current = status; + + // When transitioning from speaking to listening, restart STT + if (prevStatus === 'speaking' && status === 'listening' && sessionActiveRef.current) { + console.log('[TabLayout] TTS finished - auto-restarting STT'); + // Small delay to ensure TTS cleanup is complete + const timer = setTimeout(() => { + if (sessionActiveRef.current && !sttIsListening) { + startListening(); + } + }, 200); + return () => clearTimeout(timer); + } + }, [status, sttIsListening, startListening]); + // Handle voice FAB press - toggle listening mode const handleVoiceFABPress = useCallback(() => { if (isListening) {