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
	
	Block a user