Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 12bec5dd authored by Hung-ying Tyan's avatar Hung-ying Tyan
Browse files

SipService: ignore connect event for non-active networks.

+ sanity check and remove redundant code.

Change-Id: I4d3e226851ad7fc4d88ddcd0a5c58f7e33b6c14a
parent 13f6270e
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -771,6 +771,23 @@ public final class SipService extends ISipService.Stub {
                            b.get(ConnectivityManager.EXTRA_NETWORK_INFO);
                    String type = netInfo.getTypeName();
                    NetworkInfo.State state = netInfo.getState();

                    NetworkInfo activeNetInfo = getActiveNetworkInfo();
                    if (activeNetInfo != null) {
                        Log.v(TAG, "active network: " + activeNetInfo.getTypeName()
                                + ((activeNetInfo.getState() == NetworkInfo.State.CONNECTED)
                                        ? " CONNECTED" : " DISCONNECTED"));
                    } else {
                        Log.v(TAG, "active network: null");
                    }
                    if ((state == NetworkInfo.State.CONNECTED)
                            && (activeNetInfo != null)
                            && (activeNetInfo.getType() != netInfo.getType())) {
                        Log.d(TAG, "ignore connect event: " + type
                                + ", active: " + activeNetInfo.getTypeName());
                        return;
                    }

                    if (state == NetworkInfo.State.CONNECTED) {
                        Log.v(TAG, "Connectivity alert: CONNECTED " + type);
                        onChanged(type, true);
@@ -785,6 +802,12 @@ public final class SipService extends ISipService.Stub {
            }
        }

        private NetworkInfo getActiveNetworkInfo() {
            ConnectivityManager cm = (ConnectivityManager)
                    mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
            return cm.getActiveNetworkInfo();
        }

        private void onChanged(String type, boolean connected) {
            synchronized (SipService.this) {
                // When turning on WIFI, it needs some time for network
+12 −11
Original line number Diff line number Diff line
@@ -184,7 +184,7 @@ public class SipAudioCallImpl extends SipSessionAdapter
        Listener listener = mListener;
        if (listener != null) {
            try {
                listener.onCalling(SipAudioCallImpl.this);
                listener.onCalling(this);
            } catch (Throwable t) {
                Log.e(TAG, "onCalling()", t);
            }
@@ -198,7 +198,7 @@ public class SipAudioCallImpl extends SipSessionAdapter
        Listener listener = mListener;
        if (listener != null) {
            try {
                listener.onRingingBack(SipAudioCallImpl.this);
                listener.onRingingBack(this);
            } catch (Throwable t) {
                Log.e(TAG, "onRingingBack()", t);
            }
@@ -251,9 +251,9 @@ public class SipAudioCallImpl extends SipSessionAdapter
        if (listener != null) {
            try {
                if (mHold) {
                    listener.onCallHeld(SipAudioCallImpl.this);
                    listener.onCallHeld(this);
                } else {
                    listener.onCallEstablished(SipAudioCallImpl.this);
                    listener.onCallEstablished(this);
                }
            } catch (Throwable t) {
                Log.e(TAG, "onCallEstablished()", t);
@@ -268,7 +268,7 @@ public class SipAudioCallImpl extends SipSessionAdapter
        Listener listener = mListener;
        if (listener != null) {
            try {
                listener.onCallEnded(SipAudioCallImpl.this);
                listener.onCallEnded(this);
            } catch (Throwable t) {
                Log.e(TAG, "onCallEnded()", t);
            }
@@ -282,7 +282,7 @@ public class SipAudioCallImpl extends SipSessionAdapter
        Listener listener = mListener;
        if (listener != null) {
            try {
                listener.onCallBusy(SipAudioCallImpl.this);
                listener.onCallBusy(this);
            } catch (Throwable t) {
                Log.e(TAG, "onCallBusy()", t);
            }
@@ -302,7 +302,7 @@ public class SipAudioCallImpl extends SipSessionAdapter
        Listener listener = mListener;
        if (listener != null) {
            try {
                listener.onError(SipAudioCallImpl.this, mErrorCode, message);
                listener.onError(this, mErrorCode, message);
            } catch (Throwable t) {
                Log.e(TAG, "onCallBusy()", t);
            }
@@ -310,9 +310,10 @@ public class SipAudioCallImpl extends SipSessionAdapter
    }

    @Override
    public void onError(ISipSession session, String errorCode, String message) {
        Log.d(TAG, "sip session error: " + errorCode + ": " + message);
        mErrorCode = getErrorCode(errorCode);
    public void onError(ISipSession session, String errorCodeString,
            String message) {
        Log.d(TAG, "sip session error: " + errorCodeString + ": " + message);
        SipErrorCode errorCode = mErrorCode = getErrorCode(errorCodeString);
        mErrorMessage = message;
        synchronized (this) {
            if ((mErrorCode == SipErrorCode.DATA_CONNECTION_LOST)
@@ -323,7 +324,7 @@ public class SipAudioCallImpl extends SipSessionAdapter
        Listener listener = mListener;
        if (listener != null) {
            try {
                listener.onError(SipAudioCallImpl.this, mErrorCode, message);
                listener.onError(this, errorCode, message);
            } catch (Throwable t) {
                Log.e(TAG, "onError()", t);
            }