Compare commits

...

3 commits

Author SHA1 Message Date
Peter Cai 3096f859ac Call setActive anyway in CONNECTED state
There is no code that guarantees the state must go through CONNECTING
before being CONNECTED. To avoid potential bugs, call setActive anyway
here.
2022-04-21 21:28:38 -04:00
Peter Cai 9945e4bf09 Add @RequiresApi annotation for dialer integration
to stop the linter complaining every second line of code
2022-04-21 21:24:27 -04:00
Peter Cai 31c627135c Use StatusHint label to signal connecting state 2022-04-21 21:23:14 -04:00

View file

@ -22,6 +22,8 @@ import android.telecom.TelecomManager;
import android.telephony.PhoneNumberUtils;
import android.Manifest;
import androidx.annotation.RequiresApi;
import androidx.core.content.ContextCompat;
import android.content.ComponentName;
import android.content.Context;
@ -53,6 +55,7 @@ import eu.siacs.conversations.xmpp.jingle.JingleRtpConnection;
import eu.siacs.conversations.xmpp.jingle.Media;
import eu.siacs.conversations.xmpp.jingle.RtpEndUserState;
@RequiresApi(Build.VERSION_CODES.M)
public class ConnectionService extends android.telecom.ConnectionService {
public XmppConnectionService xmppConnectionService = null;
protected ServiceConnection mConnection = new ServiceConnection() {
@ -235,7 +238,7 @@ public class ConnectionService extends android.telecom.ConnectionService {
findRtpConnection();
}
setStatusHints(new StatusHints(null, gatewayIcon, null));
String statusLabel = null;
if (state == RtpEndUserState.FINDING_DEVICE) {
setInitialized();
@ -246,7 +249,10 @@ public class ConnectionService extends android.telecom.ConnectionService {
} else if (state == RtpEndUserState.CONNECTING) {
xmppConnectionService.setDiallerIntegrationActive(true);
setActive();
statusLabel = getString(R.string.rtp_state_connecting);
} else if (state == RtpEndUserState.CONNECTED) {
xmppConnectionService.setDiallerIntegrationActive(true);
setActive();
postDial();
} else if (state == RtpEndUserState.DECLINED_OR_BUSY) {
close(new DisconnectCause(DisconnectCause.BUSY));
@ -257,6 +263,8 @@ public class ConnectionService extends android.telecom.ConnectionService {
} else if (RtpSessionActivity.END_CARD.contains(state)) {
close(new DisconnectCause(DisconnectCause.ERROR));
}
setStatusHints(new StatusHints(statusLabel, gatewayIcon, null));
}
@Override