Fixed speakerphone toggling during mobile calls
This commit is contained in:
@ -2434,6 +2434,20 @@ class BaresipService: Service() {
|
||||
handler.postDelayed(runnable, 500)
|
||||
}
|
||||
|
||||
fun toggleSpeakerphone() {
|
||||
speakerPhone = !speakerPhone
|
||||
// Notify the UI to update the icon color
|
||||
postServiceEvent(
|
||||
ServiceEvent(
|
||||
"speaker update,$speakerPhone",
|
||||
arrayListOf(0L, 0L),
|
||||
System.nanoTime()
|
||||
)
|
||||
)
|
||||
// Apply the new audio route
|
||||
ensureCommunicationMode()
|
||||
}
|
||||
|
||||
@SuppressLint("WakelockTimeout", "Wakelock")
|
||||
private fun proximitySensing(enable: Boolean) {
|
||||
if (enable) {
|
||||
|
||||
@ -643,23 +643,8 @@ private fun TopAppBar(
|
||||
.clip(CircleShape)
|
||||
.combinedClickable(
|
||||
onClick = {
|
||||
val aor = viewModel.selectedAor.value
|
||||
val ua = uas.value.find { it.account.aor == aor }
|
||||
val call = ua?.currentCall()
|
||||
val connection =
|
||||
if (call != null) ConnectionService.connections[call.callp] else null
|
||||
if (connection != null) {
|
||||
@Suppress("DEPRECATION")
|
||||
connection.setAudioRoute(
|
||||
if (isSpeakerOn)
|
||||
android.telecom.CallAudioState.ROUTE_EARPIECE
|
||||
else
|
||||
android.telecom.CallAudioState.ROUTE_SPEAKER
|
||||
)
|
||||
} else {
|
||||
BaresipService.speakerPhone = !isSpeakerOn
|
||||
viewModel.updateSpeakerPhoneStatus(BaresipService.speakerPhone)
|
||||
}
|
||||
// Unified toggle via BaresipService
|
||||
BaresipService.instance?.toggleSpeakerphone()
|
||||
},
|
||||
onLongClick = {
|
||||
alertTitle.value = speakerPhoneTitle
|
||||
|
||||
Reference in New Issue
Block a user