From 276f808ca3c9e5577d3cfaab6b9dfae8478ca26c Mon Sep 17 00:00:00 2001 From: Harris Date: Thu, 18 Nov 2021 16:19:09 +1100 Subject: [PATCH] fix: bluetooth auto-connection and re-connection fixes, removing finished todos, allowing self-send call messages for deduping answers --- .../org/thoughtcrime/securesms/service/WebRtcCallService.kt | 2 +- .../java/org/thoughtcrime/securesms/webrtc/CallManager.kt | 2 +- .../securesms/webrtc/audio/SignalAudioManager.kt | 6 +++--- .../libsession/messaging/messages/control/CallMessage.kt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.kt b/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.kt index 112b67d7f1..e62611d8c4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.kt @@ -387,7 +387,7 @@ class WebRtcCallService: Service(), PeerConnection.Observer { val expectedCallId = callManager.callId try { - val answerFuture = callManager.onIncomingCall(this) // add is always turn here + val answerFuture = callManager.onIncomingCall(this) answerFuture.fail { e -> if (isConsistentState(expectedState,expectedCallId, callManager.currentConnectionState, callManager.callId)) { Log.e(TAG, e) diff --git a/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallManager.kt b/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallManager.kt index 8c344fd3fd..2bbf985635 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallManager.kt @@ -407,7 +407,7 @@ class CallManager(context: Context, audioManager: AudioManagerCompat): PeerConne return answerMessage.success { pendingOffer = null pendingOfferTime = -1 - } // TODO: maybe add success state update + } } fun onOutgoingCall(context: Context, isAlwaysTurn: Boolean = false): Promise { diff --git a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt index 5470f35b33..b8b0f4a0c4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt @@ -152,7 +152,7 @@ class SignalAudioManager(private val context: Context, soundPool.play(disconnectedSoundId, volume, volume, 0, 0, 1.0f) } - state = State.UNINITIALIZED + state = State.PREINITIALIZED wiredHeadsetReceiver?.let { receiver -> try { @@ -236,10 +236,10 @@ class SignalAudioManager(private val context: Context, userSelectedAudioDevice = AudioDevice.NONE } - val needBluetoothAudioStart = signalBluetoothManager!!.state == SignalBluetoothManager.State.AVAILABLE && + val needBluetoothAudioStart = signalBluetoothManager!!.state == SignalBluetoothManager.State.AVAILABLE && signalBluetoothManager!!.state != SignalBluetoothManager.State.CONNECTING (userSelectedAudioDevice == AudioDevice.NONE || userSelectedAudioDevice == AudioDevice.BLUETOOTH || autoSwitchToBluetooth) - val needBluetoothAudioStop = (signalBluetoothManager!!.state == SignalBluetoothManager.State.CONNECTED || signalBluetoothManager!!.state == SignalBluetoothManager.State.CONNECTING) && + val needBluetoothAudioStop = (signalBluetoothManager!!.state == SignalBluetoothManager.State.CONNECTED || signalBluetoothManager!!.state != SignalBluetoothManager.State.CONNECTING) && (userSelectedAudioDevice != AudioDevice.NONE && userSelectedAudioDevice != AudioDevice.BLUETOOTH) if (signalBluetoothManager!!.state.hasDevice()) { diff --git a/libsession/src/main/java/org/session/libsession/messaging/messages/control/CallMessage.kt b/libsession/src/main/java/org/session/libsession/messaging/messages/control/CallMessage.kt index 960a536e4e..737701c0e0 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/messages/control/CallMessage.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/messages/control/CallMessage.kt @@ -11,7 +11,7 @@ class CallMessage(): ControlMessage() { var sdpMids: List = listOf() var callId: UUID? = null - override val isSelfSendValid: Boolean = false + override val isSelfSendValid: Boolean = type in arrayOf(SignalServiceProtos.CallMessage.Type.END_CALL,SignalServiceProtos.CallMessage.Type.ANSWER) override val ttl: Long = 300000L // 30s