From 42c6e2a62b13e870eaee826d7dfe6e4e1860d229 Mon Sep 17 00:00:00 2001 From: evgeny Date: Wed, 28 Oct 2026 21:42:18 +0100 Subject: [PATCH] Keep service loss associated with the call after local resources are released --- .../kotlin/com/utun/chat/data/CallServiceLifecycleTest.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/chatgui-android/call-service-tests/src/test/kotlin/com/utun/chat/data/CallServiceLifecycleTest.kt b/tools/chatgui-android/call-service-tests/src/test/kotlin/com/utun/chat/data/CallServiceLifecycleTest.kt index c0df98fe8..d17eb39c6 100644 --- a/tools/chatgui-android/call-service-tests/src/test/kotlin/com/utun/chat/data/CallServiceLifecycleTest.kt +++ b/tools/chatgui-android/call-service-tests/src/test/kotlin/com/utun/chat/data/CallServiceLifecycleTest.kt @@ -348,4 +348,12 @@ class CallServiceLifecycleTest { assertNull(state); assertFalse(CallService.cleanupPending()); assertTrue(CallController.blocksMedia()) gate.countDown(); await("cancelled media preparation finished") { !CallController.blocksMedia() } } + + @Test fun destroyAfterLocalShutdownStillReportsTheOriginalOwnedCallToTheController() { + val service = active(); val id = requireNotNull(state).callId + assertTrue(service.shutdown().isCompleted) + assertEquals(CallPhase.ACTIVE, state?.phase) // Сигналинг ещё принадлежит контроллеру, не аудиосервису. + service.onDestroy() + assertEquals(id, state?.callId); assertEquals(CallPhase.ENDED, state?.phase) + } }