Simplified call hold and call transfer icon management

This commit is contained in:
Juha Heinanen
2025-11-02 20:23:27 +02:00
parent 776860a07a
commit e583f68c11
5 changed files with 19 additions and 32 deletions

View File

@ -815,9 +815,9 @@ private val showCancelButton = mutableStateOf(false)
private val showAnswerRejectButtons = mutableStateOf(false)
private val showHangupButton = mutableStateOf(false)
private val showOnHoldNotice = mutableStateOf(false)
private var holdIcon = mutableIntStateOf(R.drawable.call_hold)
private var callOnHold = mutableStateOf(false)
private val transferButtonEnabled = mutableStateOf(false)
private val transferIcon = mutableIntStateOf(R.drawable.call_transfer)
private val callTransfer = mutableStateOf(false)
private var dtmfText = mutableStateOf("")
private val dtmfEnabled = mutableStateOf(false)
private val focusDtmf = mutableStateOf(false)
@ -1414,7 +1414,7 @@ private fun CallRow(ctx: Context, viewModel: ViewModel) {
)
call.resume()
call.onhold = false
holdIcon.intValue = R.drawable.call_hold
callOnHold.value = false
} else {
Log.d(
TAG,
@ -1422,15 +1422,18 @@ private fun CallRow(ctx: Context, viewModel: ViewModel) {
)
call.hold()
call.onhold = true
holdIcon.intValue = R.drawable.resume
callOnHold.value = true
}
}
},
) {
Icon(
imageVector = ImageVector.vectorResource(id = holdIcon.intValue),
imageVector = ImageVector.vectorResource(R.drawable.call_hold),
modifier = Modifier.size(48.dp),
tint = Color.Unspecified,
tint = if (callOnHold.value)
MaterialTheme.colorScheme.error
else
MaterialTheme.colorScheme.secondary,
contentDescription = null,
)
}
@ -1455,9 +1458,12 @@ private fun CallRow(ctx: Context, viewModel: ViewModel) {
},
) {
Icon(
imageVector = ImageVector.vectorResource(transferIcon.intValue),
imageVector = ImageVector.vectorResource(R.drawable.call_transfer),
modifier = Modifier.size(48.dp),
tint = Color.Unspecified,
tint = if (callTransfer.value)
MaterialTheme.colorScheme.error
else
MaterialTheme.colorScheme.secondary,
contentDescription = null,
)
}
@ -2037,7 +2043,7 @@ private fun showCall(ctx: Context, viewModel: ViewModel, ua: UserAgent?, showCal
showCallTimer.value = false
securityIcon.intValue = -1
showHangupButton.value = false
transferIcon.intValue = R.drawable.call_transfer
callTransfer.value = false
dtmfText.value = ""
dtmfEnabled.value = false
focusDtmf.value = false
@ -2117,10 +2123,7 @@ private fun showCall(ctx: Context, viewModel: ViewModel, ua: UserAgent?, showCal
}
transferButtonEnabled.value = true
}
transferIcon.intValue = if (call.onHoldCall == null)
R.drawable.call_transfer
else
R.drawable.call_transfer_execute
callTransfer.value = call.onHoldCall != null
callDuration = call.duration()
showCallTimer.value = true
if (ua.account.mediaEnc == "")
@ -2131,10 +2134,7 @@ private fun showCall(ctx: Context, viewModel: ViewModel, ua: UserAgent?, showCal
showCancelButton.value = false
showHangupButton.value = true
showAnswerRejectButtons.value = false
if (call.onhold)
holdIcon.intValue = R.drawable.resume
else
holdIcon.intValue = R.drawable.call_hold
callOnHold.value = call.onhold
Handler(Looper.getMainLooper()).postDelayed({
showOnHoldNotice.value = call.held
}, 100)

View File

@ -4,6 +4,6 @@
android:viewportWidth="960"
android:viewportHeight="960" >
<path
android:fillColor="@color/colorSecondary"
android:fillColor="#FF000000"
android:pathData="M370,640L430,640L430,320L370,320L370,640ZM530,640L590,640L590,320L530,320L530,640ZM480,880Q398,880 325,848.5Q252,817 197.5,762.5Q143,708 111.5,635Q80,562 80,480Q80,397 111.5,324Q143,251 197.5,197Q252,143 325,111.5Q398,80 480,80Q563,80 636,111.5Q709,143 763,197Q817,251 848.5,324Q880,397 880,480Q880,562 848.5,635Q817,708 763,762.5Q709,817 636,848.5Q563,880 480,880ZM480,820Q622,820 721,720.5Q820,621 820,480Q820,338 721,239Q622,140 480,140Q339,140 239.5,239Q140,338 140,480Q140,621 239.5,720.5Q339,820 480,820ZM480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Z"/>
</vector>

View File

@ -4,6 +4,6 @@
android:viewportWidth="960"
android:viewportHeight="960" >
<path
android:fillColor="@color/colorSecondary"
android:fillColor="#FF000000"
android:pathData="M480,626L626,480L480,334L438,376L512,450L330,450L330,510L512,510L438,584L480,626ZM480,880Q398,880 325,848.5Q252,817 197.5,762.5Q143,708 111.5,635Q80,562 80,480Q80,397 111.5,324Q143,251 197.5,197Q252,143 325,111.5Q398,80 480,80Q563,80 636,111.5Q709,143 763,197Q817,251 848.5,324Q880,397 880,480Q880,562 848.5,635Q817,708 763,762.5Q709,817 636,848.5Q563,880 480,880ZM480,820Q622,820 721,720.5Q820,621 820,480Q820,338 721,239Q622,140 480,140Q339,140 239.5,239Q140,338 140,480Q140,621 239.5,720.5Q339,820 480,820ZM480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Z"/>
</vector>

View File

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="960"
android:viewportHeight="960" >
<path
android:fillColor="@color/colorAccent"
android:pathData="M480,626L626,480L480,334L438,376L512,450L330,450L330,510L512,510L438,584L480,626ZM480,880Q398,880 325,848.5Q252,817 197.5,762.5Q143,708 111.5,635Q80,562 80,480Q80,397 111.5,324Q143,251 197.5,197Q252,143 325,111.5Q398,80 480,80Q563,80 636,111.5Q709,143 763,197Q817,251 848.5,324Q880,397 880,480Q880,562 848.5,635Q817,708 763,762.5Q709,817 636,848.5Q563,880 480,880ZM480,820Q622,820 721,720.5Q820,621 820,480Q820,338 721,239Q622,140 480,140Q339,140 239.5,239Q140,338 140,480Q140,621 239.5,720.5Q339,820 480,820ZM480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Z"/>
</vector>

View File

@ -1,4 +0,0 @@
<vector android:height="48dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/colorAccent" android:pathData="M9,16h2L11,8L9,8v8zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM13,16h2L15,8h-2v8z"/>
</vector>