Change summary
src/main/java/eu/siacs/conversations/ui/RtpSessionActivity.java | 7
src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java | 7
2 files changed, 12 insertions(+), 2 deletions(-)
Detailed changes
@@ -325,7 +325,12 @@ public class RtpSessionActivity extends XmppActivity
retractSessionProposal();
finish();
} else {
- requireRtpConnection().endCall();
+ try {
+ requireRtpConnection().endCall();
+ } catch (final IllegalStateException e) {
+ // No call, already done
+ finish();
+ }
}
}
@@ -719,7 +719,12 @@ public class WebRTCWrapper {
public boolean applyDtmfTone(String tone) {
if (localAudioTrack == null || localAudioTrack.rtpSender == null) return false;
- localAudioTrack.rtpSender.dtmf().insertDtmf(tone, TONE_DURATION, 100);
+ try {
+ localAudioTrack.rtpSender.dtmf().insertDtmf(tone, TONE_DURATION, 100);
+ } catch (final IllegalStateException e) {
+ // Race condition, DtmfSender has been disposed
+ return false;
+ }
final var handler = new android.os.Handler(android.os.Looper.getMainLooper());
handler.post(() -> {
final var toneGenerator = new ToneGenerator(AudioManager.STREAM_VOICE_CALL, DEFAULT_TONE_VOLUME);