From bab9dd48932f4a78b8b3710c29b121afeafd462a Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 10 Jul 2020 16:10:40 +0200 Subject: [PATCH] make sure intent is only set to retracted if something was retracted. fixes #3826 --- .../eu/siacs/conversations/ui/RtpSessionActivity.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/siacs/conversations/ui/RtpSessionActivity.java b/src/main/java/eu/siacs/conversations/ui/RtpSessionActivity.java index 9bff9ff98..cf0e01db4 100644 --- a/src/main/java/eu/siacs/conversations/ui/RtpSessionActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/RtpSessionActivity.java @@ -308,6 +308,7 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe return; } final Account account = extractAccount(intent); + final String action = intent.getAction(); final Jid with = Jid.ofEscaped(intent.getStringExtra(EXTRA_WITH)); final String sessionId = intent.getStringExtra(EXTRA_SESSION_ID); if (sessionId != null) { @@ -320,6 +321,9 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe requestPermissionsAndAcceptCall(); resetIntent(intent.getExtras()); } + } else if (asList(ACTION_MAKE_VIDEO_CALL, ACTION_MAKE_VOICE_CALL).contains(action)) { + proposeJingleRtpSession(account, with, actionToMedia(action)); + binding.with.setText(account.getRoster().getContact(with).getDisplayName()); } else { throw new IllegalStateException("received onNewIntent without sessionId"); } @@ -437,7 +441,11 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe return; } } - retractSessionProposal(); + //TODO apparently this method is not getting called on Android 10 when using the task switcher + final boolean emptyReference = rtpConnectionReference == null || rtpConnectionReference.get() == null; + if (emptyReference && xmppConnectionService != null) { + retractSessionProposal(); + } } @RequiresApi(api = Build.VERSION_CODES.O)