diff --git a/app/src/main/kotlin/com/tutpro/baresip/Call.kt b/app/src/main/kotlin/com/tutpro/baresip/Call.kt index 4518f661..1cd67137 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/Call.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/Call.kt @@ -11,7 +11,7 @@ class Call(val callp: Long, val ua: UserAgent, val peerUri: String, val dir: Str var onhold = false var held = false - var terminated = false + val terminated = mutableStateOf(false) var conferenceCall = false var onHoldCall: Call? = null var newCall: Call? = null diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainScreen.kt b/app/src/main/kotlin/com/tutpro/baresip/MainScreen.kt index 5f70c8a2..cd6dce93 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainScreen.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainScreen.kt @@ -1478,13 +1478,12 @@ private fun CallRow( IconButton( modifier = Modifier.size(48.dp), + enabled = !call.terminated.value, onClick = { - if (!call.terminated) { - call.terminated = true - abandonAudioFocus(ctx) - Log.d(TAG, "AoR ${call.ua.account.aor} hanging up call ${call.callp} with ${call.callUri.value}") - Api.ua_hangup(call.ua.uap, call.callp, 487, "Request Terminated") - } + call.terminated.value = true + abandonAudioFocus(ctx) + Log.d(TAG, "AoR ${call.ua.account.aor} hanging up call ${call.callp} with ${call.callUri.value}") + Api.ua_hangup(call.ua.uap, call.callp, 487, "Request Terminated") } ) { Icon(