retract call when user presses home button or back; not on stop. fixes #3802
This commit is contained in:
parent
57135e1a59
commit
a5430d5ce1
|
@ -276,11 +276,15 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
|
||||||
private void releaseProximityWakeLock() {
|
private void releaseProximityWakeLock() {
|
||||||
if (this.mProximityWakeLock != null && mProximityWakeLock.isHeld()) {
|
if (this.mProximityWakeLock != null && mProximityWakeLock.isHeld()) {
|
||||||
Log.d(Config.LOGTAG, "releasing proximity wake lock");
|
Log.d(Config.LOGTAG, "releasing proximity wake lock");
|
||||||
this.mProximityWakeLock.release(PowerManager.RELEASE_FLAG_WAIT_FOR_NO_PROXIMITY);
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
|
this.mProximityWakeLock.release(PowerManager.RELEASE_FLAG_WAIT_FOR_NO_PROXIMITY);
|
||||||
|
} else {
|
||||||
|
this.mProximityWakeLock.release();
|
||||||
|
}
|
||||||
this.mProximityWakeLock = null;
|
this.mProximityWakeLock = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void putProximityWakeLockInProperState(final AppRTCAudioManager.AudioDevice audioDevice) {
|
private void putProximityWakeLockInProperState(final AppRTCAudioManager.AudioDevice audioDevice) {
|
||||||
if (audioDevice == AppRTCAudioManager.AudioDevice.EARPIECE) {
|
if (audioDevice == AppRTCAudioManager.AudioDevice.EARPIECE) {
|
||||||
acquireProximityWakeLock();
|
acquireProximityWakeLock();
|
||||||
|
@ -402,10 +406,6 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
|
||||||
final JingleRtpConnection jingleRtpConnection = weakReference == null ? null : weakReference.get();
|
final JingleRtpConnection jingleRtpConnection = weakReference == null ? null : weakReference.get();
|
||||||
if (jingleRtpConnection != null) {
|
if (jingleRtpConnection != null) {
|
||||||
releaseVideoTracks(jingleRtpConnection);
|
releaseVideoTracks(jingleRtpConnection);
|
||||||
} else if (!isChangingConfigurations()) {
|
|
||||||
if (xmppConnectionService != null) {
|
|
||||||
retractSessionProposal();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
releaseProximityWakeLock();
|
releaseProximityWakeLock();
|
||||||
super.onStop();
|
super.onStop();
|
||||||
|
@ -424,17 +424,20 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBackPressed() {
|
public void onBackPressed() {
|
||||||
endCall();
|
|
||||||
super.onBackPressed();
|
super.onBackPressed();
|
||||||
|
endCall();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUserLeaveHint() {
|
public void onUserLeaveHint() {
|
||||||
|
super.onUserLeaveHint();
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && deviceSupportsPictureInPicture()) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && deviceSupportsPictureInPicture()) {
|
||||||
if (shouldBePictureInPicture()) {
|
if (shouldBePictureInPicture()) {
|
||||||
startPictureInPicture();
|
startPictureInPicture();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
retractSessionProposal();
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.O)
|
@RequiresApi(api = Build.VERSION_CODES.O)
|
||||||
|
@ -445,7 +448,7 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
|
||||||
.setAspectRatio(new Rational(10, 16))
|
.setAspectRatio(new Rational(10, 16))
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
} catch (IllegalStateException e) {
|
} catch (final IllegalStateException e) {
|
||||||
//this sometimes happens on Samsung phones (possibly when Knox is enabled)
|
//this sometimes happens on Samsung phones (possibly when Knox is enabled)
|
||||||
Log.w(Config.LOGTAG, "unable to enter picture in picture mode", e);
|
Log.w(Config.LOGTAG, "unable to enter picture in picture mode", e);
|
||||||
}
|
}
|
||||||
|
@ -467,7 +470,7 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
|
||||||
RtpEndUserState.CONNECTING,
|
RtpEndUserState.CONNECTING,
|
||||||
RtpEndUserState.CONNECTED
|
RtpEndUserState.CONNECTED
|
||||||
).contains(rtpConnection.getEndUserState());
|
).contains(rtpConnection.getEndUserState());
|
||||||
} catch (IllegalStateException e) {
|
} catch (final IllegalStateException e) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue