Files
aiturk-mobil/app/src
M57 7ea8698db9 Fix unbound CoroutineScope in NotificationReplyReceiver (#265) (#331)
This commit addresses issue #265 where the NotificationReplyReceiver
used an unbound CoroutineScope when handling asynchronous reply saves
to the Room database. If the DAO operation hangs, the PendingResult.finish()
method is never called, which could lead to an Application Not Responding (ANR)
error.

Changes made:
- Wrapped the Room upsert operation inside a `withTimeout(5000L)` block
  within the IO coroutine in `NotificationReplyReceiver.kt`.
- Ensures that if the operation exceeds 5 seconds, a TimeoutCancellationException
  is thrown and caught, allowing `pendingResult.finish()` to execute in the
  `finally` block.
- Added a unit test in `NotificationReplyReceiverTest.kt` to verify that
  if the mock DAO hangs indefinitely, the PendingResult is still correctly finished
  after the timeout.

Impact:
- Prevents potential ANRs caused by stuck local DB transactions during inline
  notification replies.
2026-06-23 11:56:10 +03:00
..