wallabag / wallabag/android-app
[Bug] App freezes/crashes when initializing TTS (Text-to-Speech) on Android 16 / One UI 8.5
- Dominant language
- Java
- Stars
- 587
- Forks
- 276
- PR merge metrics
- No merged PRs in 30d
Description
### Describe the bug
After updating the device to Samsung One UI 8.5 (which is based on Android 16 / API 36), attempting to use the built-in Text-to-Speech (TTS) feature causes the app to freeze or crash immediately upon tapping the TTS icon.
Initially, switching third-party TTS engines (like RHVoice or Tetsy) caused a complete loop crash inside the article view. After a full factory reset of the app data, articles can be opened normally again, but triggering the TTS engine (even with stock Google Speech Services) instantly bricks the audio initialization.
### Expected behavior
Tapping the TTS/audio icon should initialize the foreground service, load the speech interface, and allow the article content to be read aloud.
### Steps to reproduce
1. Open any article in the wallabag Android app.
2. Tap on the TTS / audio playback icon.
3. The app either freezes instantly, closes unexpectedly, or fails to open the audio control panel entirely.
### Environment
- **Wallabag Android App Version:** 2.5.1 (or latest available)
- **Android Version:** Android 16
- **Device / OS:** Samsung Galaxy (One UI 8.5)
- **TTS Engine used:** Google Speech Services / RHVoice
### Context / Technical Guess
This looks highly related to the existing Foreground Service permission issues (like #1391), but amplified by the stricter API limitations for background media playback services introduced in Android 16. The `TtsService.java` likely triggers a `SecurityException` or a missing explicit permission handler when trying to bind to the system audio output under One UI 8.5.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with TtsService.java and reproduce the failure by opening an article on Android 16 / Samsung One UI 8.5, then tapping the TTS icon with Google Speech Services or RHVoice. Trace the foreground-service and audio initialization path, checking the suspected permission or SecurityException failure. Done means the service starts, the audio controls open, and the article can be read aloud without freezing or crashing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, java
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 64/100