v2.0.14
What's New
This release brings major improvements to TTS functionality with comprehensive Bluetooth and wired headset support, enhanced auto-stop capabilities with screen state detection, and important Android platform fixes. The update also includes legacy backup compatibility for upstream synchronization and adopts multiple EPUB rendering improvements.
✨ Features
- Bluetooth & Headset Media Controls: Full support for Bluetooth and wired headset media buttons with silent audio workaround, enabling seamless TTS control from external devices
- Enhanced Auto-Stop System: Redesigned sleep timer into a comprehensive auto-stop system with screen state detection, configurable triggers (minutes/paragraphs/end of chapter), and smart rewind
- Legacy Backup Support: Added upstream-compatible legacy backup format to maintain compatibility with main LNReader repository
- Volume Button Offset: Configurable volume button scroll offset setting with improved UI controls
- Features Screen: New detailed guidance screen to help users discover and understand app capabilities
🐛 Bug Fixes
- MainActivity Startup Crash: Resolved critical crash on app launch caused by accessing window.insetsController before super.onCreate()
- TTS Progress Persistence: Fixed stale closure bug preventing reliable progress saves across app restarts
- Media Notification Sync: Eliminated notification flicker during TTS seek operations and kept media notification state synchronized
- TTS Position Restore: Fixed position restoration when returning to reader after pausing from notification
- Auto-Stop Bugs: Resolved three critical auto-stop bugs including race conditions and state management issues
🛠️ Core Updates
- EPUB Improvements: Adopted upstream PRs lnreader#1573 (style preservation) and lnreader#1599 (HTML tag stripping in summaries)
- Android Platform Fixes: Resolved Gradle deprecation warnings and API compatibility issues for Android SDK 35+
- Developer Experience: Added
clean:androidscript for quick Android build cleanup and updated documentation - Upstream Synchronization: Merged volume button offset setting from upstream (lnreader#1685)
📜 Commits
- TTS Enhancements: Complete Bluetooth/wired headset media button support implementation (6a1aed1, 823d0c3), redesigned sleep timer into Auto-Stop system with screen state detection (f593fd0, 4d8e340, 0a2756e)
- Bug Fixes: Resolved stale closure in TTS progress save (5bcb6a9), fixed notification state sync and flicker (00f2328, 9ab5b1a, 6af3f6c), restored position on notification return (126363f), fixed three auto-stop bugs (89b8e20), resolved MainActivity startup crash (07f7b42)
- Platform Updates: Fixed Android Gradle and API deprecation warnings (ab193e2), adopted EPUB improvements from upstream PRs lnreader#1573 and lnreader#1599 (200ac43), merged upstream volume button offset setting (a19a0fa, 467a97d)
- Features & UX: Added Features screen with detailed guidance (bf1726b), implemented legacy backup for upstream compatibility (74d16ea), added auto-stop controls to reader bottom sheet (0a2756e)
- Testing & Docs: Implemented comprehensive AutoStopService test coverage (caf796e), added skipped auto-stop mode tests (9cc211d), documented upstream synchronization (8fe0b83), refactored AI agent guidance (953f1ea), preserved feature request docs (bd8bccd), added commit analysis (91cf7f2)
- Chore: Added clean:android script and updated docs (536611b), added MCP server cache ignore rules (7c57b74)
Full Changelog: v2.0.13...v2.0.14