Allow switching between active call and call on-hold

This commit is contained in:
Juha Heinanen
2026-04-05 09:16:51 +03:00
parent 9a19cce1e6
commit 6c2419dd05
4 changed files with 89 additions and 71 deletions
@@ -1538,33 +1538,14 @@ private fun CallRow(
}
if (!call.conferenceCall)
IconButton(
modifier = Modifier.size(48.dp),
IconButton( modifier = Modifier.size(48.dp),
onClick = {
val connection = ConnectionService.connections[call.callp]
if (call.callOnHold.value) {
if (!Call.isAnyCallActive(ctx)) {
Log.d(
TAG,
"AoR ${call.ua.account.aor} resuming call ${call.callp} with ${call.callUri.value}"
)
if (connection != null)
connection.onUnhold()
else
call.resume()
call.callOnHold.value = false
}
}
else {
Log.d(
TAG,
"AoR ${call.ua.account.aor} holding call ${call.callp} with ${call.callUri.value}"
)
if (connection != null)
connection.onHold()
else
call.hold()
call.callOnHold.value = true
Log.d(TAG, "User requested resume for ${call.callp}")
call.resume() // This now automatically holds other calls
} else {
Log.d(TAG, "User requested hold for ${call.callp}")
call.hold()
}
},
) {