create rtp end user state for connection lost. fixes #3769
This commit is contained in:
parent
adb3c77d31
commit
644ad99520
|
@ -78,6 +78,7 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
|
||||||
RtpEndUserState.APPLICATION_ERROR,
|
RtpEndUserState.APPLICATION_ERROR,
|
||||||
RtpEndUserState.DECLINED_OR_BUSY,
|
RtpEndUserState.DECLINED_OR_BUSY,
|
||||||
RtpEndUserState.CONNECTIVITY_ERROR,
|
RtpEndUserState.CONNECTIVITY_ERROR,
|
||||||
|
RtpEndUserState.CONNECTIVITY_LOST_ERROR,
|
||||||
RtpEndUserState.RETRACTED
|
RtpEndUserState.RETRACTED
|
||||||
);
|
);
|
||||||
private static final String PROXIMITY_WAKE_LOCK_TAG = "conversations:in-rtp-session";
|
private static final String PROXIMITY_WAKE_LOCK_TAG = "conversations:in-rtp-session";
|
||||||
|
@ -533,6 +534,9 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
|
||||||
case CONNECTIVITY_ERROR:
|
case CONNECTIVITY_ERROR:
|
||||||
setTitle(R.string.rtp_state_connectivity_error);
|
setTitle(R.string.rtp_state_connectivity_error);
|
||||||
break;
|
break;
|
||||||
|
case CONNECTIVITY_LOST_ERROR:
|
||||||
|
setTitle(R.string.rtp_state_connectivity_lost_error);
|
||||||
|
break;
|
||||||
case RETRACTED:
|
case RETRACTED:
|
||||||
setTitle(R.string.rtp_state_retracted);
|
setTitle(R.string.rtp_state_retracted);
|
||||||
break;
|
break;
|
||||||
|
@ -598,7 +602,12 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
|
||||||
this.binding.acceptCall.setOnClickListener(this::recordVoiceMail);
|
this.binding.acceptCall.setOnClickListener(this::recordVoiceMail);
|
||||||
this.binding.acceptCall.setImageResource(R.drawable.ic_voicemail_white_24dp);
|
this.binding.acceptCall.setImageResource(R.drawable.ic_voicemail_white_24dp);
|
||||||
this.binding.acceptCall.setVisibility(View.VISIBLE);
|
this.binding.acceptCall.setVisibility(View.VISIBLE);
|
||||||
} else if (asList(RtpEndUserState.CONNECTIVITY_ERROR, RtpEndUserState.APPLICATION_ERROR, RtpEndUserState.RETRACTED).contains(state)) {
|
} else if (asList(
|
||||||
|
RtpEndUserState.CONNECTIVITY_ERROR,
|
||||||
|
RtpEndUserState.CONNECTIVITY_LOST_ERROR,
|
||||||
|
RtpEndUserState.APPLICATION_ERROR,
|
||||||
|
RtpEndUserState.RETRACTED
|
||||||
|
).contains(state)) {
|
||||||
this.binding.rejectCall.setOnClickListener(this::exit);
|
this.binding.rejectCall.setOnClickListener(this::exit);
|
||||||
this.binding.rejectCall.setImageResource(R.drawable.ic_clear_white_48dp);
|
this.binding.rejectCall.setImageResource(R.drawable.ic_clear_white_48dp);
|
||||||
this.binding.rejectCall.setVisibility(View.VISIBLE);
|
this.binding.rejectCall.setVisibility(View.VISIBLE);
|
||||||
|
|
|
@ -814,7 +814,7 @@ public class JingleRtpConnection extends AbstractJingleConnection implements Web
|
||||||
} else if (state == PeerConnection.PeerConnectionState.CLOSED) {
|
} else if (state == PeerConnection.PeerConnectionState.CLOSED) {
|
||||||
return RtpEndUserState.ENDING_CALL;
|
return RtpEndUserState.ENDING_CALL;
|
||||||
} else {
|
} else {
|
||||||
return RtpEndUserState.CONNECTIVITY_ERROR;
|
return rtpConnectionStarted == 0 ? RtpEndUserState.CONNECTIVITY_ERROR : RtpEndUserState.CONNECTIVITY_LOST_ERROR;
|
||||||
}
|
}
|
||||||
case REJECTED:
|
case REJECTED:
|
||||||
case TERMINATED_DECLINED_OR_BUSY:
|
case TERMINATED_DECLINED_OR_BUSY:
|
||||||
|
@ -831,7 +831,7 @@ public class JingleRtpConnection extends AbstractJingleConnection implements Web
|
||||||
case RETRACTED_RACED:
|
case RETRACTED_RACED:
|
||||||
return RtpEndUserState.RETRACTED;
|
return RtpEndUserState.RETRACTED;
|
||||||
case TERMINATED_CONNECTIVITY_ERROR:
|
case TERMINATED_CONNECTIVITY_ERROR:
|
||||||
return RtpEndUserState.CONNECTIVITY_ERROR;
|
return rtpConnectionStarted == 0 ? RtpEndUserState.CONNECTIVITY_ERROR : RtpEndUserState.CONNECTIVITY_LOST_ERROR;
|
||||||
case TERMINATED_APPLICATION_FAILURE:
|
case TERMINATED_APPLICATION_FAILURE:
|
||||||
return RtpEndUserState.APPLICATION_ERROR;
|
return RtpEndUserState.APPLICATION_ERROR;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ public enum RtpEndUserState {
|
||||||
ENDED, //close UI
|
ENDED, //close UI
|
||||||
DECLINED_OR_BUSY, //other party declined; no retry button
|
DECLINED_OR_BUSY, //other party declined; no retry button
|
||||||
CONNECTIVITY_ERROR, //network error; retry button
|
CONNECTIVITY_ERROR, //network error; retry button
|
||||||
|
CONNECTIVITY_LOST_ERROR, //network error but for call duration > 0
|
||||||
RETRACTED, //user pressed home or power button during 'ringing' - shows retry button
|
RETRACTED, //user pressed home or power button during 'ringing' - shows retry button
|
||||||
APPLICATION_ERROR //something rather bad happened; libwebrtc failed or we got in IQ-error
|
APPLICATION_ERROR //something rather bad happened; libwebrtc failed or we got in IQ-error
|
||||||
}
|
}
|
||||||
|
|
|
@ -903,6 +903,7 @@
|
||||||
<string name="rtp_state_ringing">Ringing</string>
|
<string name="rtp_state_ringing">Ringing</string>
|
||||||
<string name="rtp_state_declined_or_busy">Busy</string>
|
<string name="rtp_state_declined_or_busy">Busy</string>
|
||||||
<string name="rtp_state_connectivity_error">Could not connect call</string>
|
<string name="rtp_state_connectivity_error">Could not connect call</string>
|
||||||
|
<string name="rtp_state_connectivity_lost_error">Connection lost</string>
|
||||||
<string name="rtp_state_retracted">Retracted call</string>
|
<string name="rtp_state_retracted">Retracted call</string>
|
||||||
<string name="rtp_state_application_failure">App failure</string>
|
<string name="rtp_state_application_failure">App failure</string>
|
||||||
<string name="hang_up">Hang up</string>
|
<string name="hang_up">Hang up</string>
|
||||||
|
|
Loading…
Reference in New Issue