Fix audio recording content stuck in 'held' state (XML)#6078
Fix audio recording content stuck in 'held' state (XML)#6078VelikovPetar merged 9 commits intodevelopfrom
Conversation
…tart recording completes.
…rt recording completes.
…rt recording completes.
SDK Size Comparison 📏
|
…held_xml # Conflicts: # CHANGELOG.md
WalkthroughChanges add a bug fix entry to the changelog regarding audio recording being stuck in a held state, and modify gesture event handling in the message composer to allow gesture-end actions (ACTION_UP/ACTION_CANCEL) to proceed during recording state transitions. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
📜 Recent review detailsConfiguration used: Repository UI Review profile: CHILL Plan: Pro Disabled knowledge base sources:
📒 Files selected for processing (2)
🧰 Additional context used📓 Path-based instructions (2)**/*.{kt,kts}📄 CodeRabbit inference engine (AGENTS.md)
Files:
**/*.kt📄 CodeRabbit inference engine (AGENTS.md)
Files:
🧠 Learnings (5)📓 Common learnings📚 Learning: 2025-12-17T15:00:07.506ZApplied to files:
📚 Learning: 2025-12-17T15:00:07.506ZApplied to files:
📚 Learning: 2025-12-17T15:00:07.506ZApplied to files:
📚 Learning: 2025-12-17T15:00:07.506ZApplied to files:
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
🔇 Additional comments (3)
✏️ Tip: You can disable this entire section by setting Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…held_xml # Conflicts: # CHANGELOG.md
|



🎯 Goal
Deferring the IO operations done in the
AudioRecordingControllerto the IO dispatcher (to resolve the StrictMode violations) introduced a race condition, where theMotionEvent.ACTION_UPis ignored, and the UI is not reset properly. (easily observable when the user taps the record button instead of holding it)Merge after: #6077
🛠 Implementation details
Add detection for the intermediate state of the
AudioRecordingController, where thestartRecordingmethod is suspended by the file creation, but the user cancels the started recording🎨 UI Changes
short_tap_xml_before.mp4
short_tap_xml_after.mp4
🧪 Testing
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.