From 187fc7fee86f057174257957d7f3a48507a11b64 Mon Sep 17 00:00:00 2001 From: evgeny Date: Mon, 19 Oct 2026 15:20:25 +0200 Subject: [PATCH] Handle Telecom presentation and pending caller choice notifications --- .../app/src/main/java/com/utun/chat/data/CallService.kt | 1 + .../app/src/main/java/com/utun/chat/data/UtunConnection.kt | 1 + .../main/java/com/utun/chat/ui/components/ActiveCallBanner.kt | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/CallService.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/CallService.kt index d7cf377b..cbcc85cd 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/CallService.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/CallService.kt @@ -185,6 +185,7 @@ class CallService : Service() { .setContentText(when (st?.phase) { CallPhase.ACTIVE -> AppLanguage.text(R.string.call_talking) CallPhase.RINGING -> AppLanguage.text(R.string.call_ringing) + CallPhase.WAIT_DECISION -> AppLanguage.text(R.string.phone_busy_warning) else -> AppLanguage.text(R.string.call_setup) }) .setCategory(NotificationCompat.CATEGORY_CALL) diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/UtunConnection.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/UtunConnection.kt index 07722438..3602d8ec 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/UtunConnection.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/UtunConnection.kt @@ -65,6 +65,7 @@ class UtunConnection( override fun onDisconnect() = TelecomCallManager.notifyDisconnect(callId) override fun onAbort() = TelecomCallManager.notifyAbort(callId) + override fun onShowIncomingCallUi() = TelecomCallManager.notifyIncomingUiAllowed(callId) override fun onStateChanged(state: Int) { LogManager.addLog("DEBUG", "UtunConn", "state -> %s".format(Connection.stateToString(state))) diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/components/ActiveCallBanner.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/components/ActiveCallBanner.kt index e761acc3..fa19cc55 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/components/ActiveCallBanner.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/components/ActiveCallBanner.kt @@ -41,12 +41,13 @@ fun ActiveCallBanner( ) { val st = viewModel.callState.collectAsState().value ?: return val phase = st.phase - if (phase != CallPhase.OUTGOING && phase != CallPhase.RINGING && phase != CallPhase.ACTIVE) return + if (phase != CallPhase.OUTGOING && phase != CallPhase.RINGING && phase != CallPhase.ACTIVE && phase != CallPhase.WAIT_DECISION) return val name = st.peerName.ifEmpty { "0x%016x".format(st.peerNodeId) } val status = when (phase) { CallPhase.ACTIVE -> stringResource(R.string.call_talking_prefix) + fmtDuration(st.durationSeconds) CallPhase.RINGING -> stringResource(R.string.call_ringing) + CallPhase.WAIT_DECISION -> stringResource(R.string.phone_busy_warning) else -> stringResource(R.string.call_connecting) }