Update status notification when new call is added

Improved status notification content text
This commit is contained in:
Juha Heinanen
2026-04-06 15:56:58 +03:00
parent 45497e8868
commit 7d81a32f0a
2 changed files with 15 additions and 3 deletions

View File

@ -894,7 +894,7 @@ class BaresipService: Service() {
else -> false
}
val connection = ConnectionService.connections[callp]
if (call!!.held && !newHeldState) {
if (call.held && !newHeldState) {
Log.d(TAG, "Call ${call.callp} un-held by peer.")
call.onhold = false
// Use a Coroutine with a small delay to let the SIP
@ -1346,6 +1346,7 @@ class BaresipService: Service() {
call.onHoldCall = onHoldCall
call.conferenceCall = conferenceCall
call.add()
updateStatusNotification()
if (onHoldCall != null)
onHoldCall.newCall = call
if (!call.connect(uri)) {
@ -1353,6 +1354,7 @@ class BaresipService: Service() {
ConnectionService.onCallClosed(callp)
call.remove()
call.destroy()
updateStatusNotification()
}
}
else
@ -1464,6 +1466,7 @@ class BaresipService: Service() {
}
fun updateStatusNotification() {
val activeCall = Call.calls().find {
it.status.value == "connected" || it.status.value == "outgoing" || it.status.value == "answered"
}
@ -1499,9 +1502,17 @@ class BaresipService: Service() {
.setPriority(NotificationCompat.PRIORITY_LOW)
.setWhen(activeCall.startTime?.timeInMillis ?: System.currentTimeMillis())
.setUsesChronometer(true)
.setContentText(if (activeCall.onhold) getString(R.string.call_is_on_hold) else getString(R.string.call_is_connected))
.setContentText(
if (activeCall.onhold)
getString(R.string.call_is_on_hold)
else
when (activeCall.status.value) {
"outgoing", "incoming" -> getString(R.string.call_is_ringing)
"connected", "answered" -> getString(R.string.call_is_connected)
else -> getString(R.string.call)
}
)
} else {
// IMPORTANT: Explicitly clear the style first to ensure CallStyle is removed
builder.setStyle(null)
builder.setStyle(NotificationCompat.DecoratedCustomViewStyle())
.setCategory(Notification.CATEGORY_SERVICE)

View File

@ -504,6 +504,7 @@
<string name="allow_video">Accept sending and receiving video with \'%1$s\'\?</string>
<string name="allow_video_send">Accept sending of video to \'%1$s\'\?</string>
<string name="allow_video_recv">Accept receiving video from \'%1$s\'\?</string>
<string name="call_is_ringing">Call is ringing</string>
<string name="call_is_on_hold">Call is on hold</string>
<string name="call_is_connected">Call is connected</string>
<string name="rec_in_call">Recording can be turned on or off only when call is not