Verify radio restoration waits for both service and Telecom release
This commit is contained in:
1 parent
e81138e3d1
commit
eaed746934
2 files changed
+11
No files matched your search
+1
@@ -4,6 +4,7 @@ import android.content.Context
|
||||
import java.util.concurrent.CompletableFuture
|
||||
import java.util.concurrent.Future
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.first
|
||||
|
||||
/** Только DSP/camera/Telecom и чужие media. CallService/CallController/CoreActivity компилируются из приложения. */
|
||||
object AppLanguage {
|
||||
|
||||
+10
@@ -270,6 +270,16 @@ class CallServiceLifecycleTest {
|
||||
assertFalse(CallController.blocksMedia())
|
||||
}
|
||||
|
||||
@Test fun radioRestorationAlsoWaitsForTheTelecomConnectionCleanup() {
|
||||
val radio = RadioAudioEngine.instance(); radio.activeGroup.value = 7
|
||||
active(); TelecomCallManager.pending = true; CallController.end(); dispatcher.scheduler.runCurrent()
|
||||
assertEquals(CallPhase.ENDED, state?.phase); assertFalse(CallService.cleanupPending())
|
||||
assertTrue(CallController.blocksMedia()); assertTrue(radio.restored.isEmpty())
|
||||
TelecomCallManager.pending = false
|
||||
await("radio restored after Telecom cleanup") { radio.restored == listOf(7L) }
|
||||
assertFalse(CallController.blocksMedia())
|
||||
}
|
||||
|
||||
@Test fun unexpectedDestroyStillRetainsFailedCleanupAndEndsTheControllerSession() {
|
||||
val service = active(); service.audio.failures = setOf("stop")
|
||||
service.onDestroy()
|
||||
|
||||
Reference in new issue
Block a user