back button should not end call if call is connected. fixes #3975

This commit is contained in:
Daniel Gultsch 2021-01-23 18:42:34 +01:00
parent bc97d0b0bb
commit 619af9c6c5
2 changed files with 25 additions and 6 deletions

View File

@ -537,6 +537,7 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
@Override
protected void onNewIntent(final Intent intent) {
super.onNewIntent(intent);
if (isViewOrShareIntent(intent)) {
if (xmppConnectionService != null) {
clearPendingViewIntent();

View File

@ -458,19 +458,22 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
@Override
public void onBackPressed() {
super.onBackPressed();
if (isConnected()) {
if (switchToPictureInPicture()) {
return;
}
} else {
endCall();
}
super.onBackPressed();
}
@Override
public void onUserLeaveHint() {
super.onUserLeaveHint();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && deviceSupportsPictureInPicture()) {
if (shouldBePictureInPicture()) {
startPictureInPicture();
if (switchToPictureInPicture()) {
return;
}
}
//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) {
@ -478,6 +481,21 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
}
}
private boolean isConnected() {
final JingleRtpConnection connection = this.rtpConnectionReference != null ? this.rtpConnectionReference.get() : null;
return connection != null && connection.getEndUserState() == RtpEndUserState.CONNECTED;
}
private boolean switchToPictureInPicture() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && deviceSupportsPictureInPicture()) {
if (shouldBePictureInPicture()) {
startPictureInPicture();
return true;
}
}
return false;
}
@RequiresApi(api = Build.VERSION_CODES.O)
private void startPictureInPicture() {
try {