149cff3ca5
Android TTS was silently failing because engine.speak() used the default audio stream, which may be muted while the media stream is not. Changes: - KioskActivity: speak() now passes Bundle with KEY_PARAM_STREAM=STREAM_MUSIC so TTS plays on the same channel as beep/media audio - KioskActivity: add UtteranceProgressListener that calls window._kioskTtsDone() or window._kioskTtsError(uid, code) back into the WebView on completion/failure - app.js testTTS(): kiosk path now shows real result from Android callbacks (success/error) with a 4s fallback timeout showing actionable troubleshooting hints