am 89a7180a: Merge "SipService: ignore connect event for non-active networks." into gingerbread

Merge commit '89a7180a242043a0b4d6695bf386c93365bf6797' into gingerbread-plus-aosp

* commit '89a7180a242043a0b4d6695bf386c93365bf6797':
  SipService: ignore connect event for non-active networks.
This commit is contained in:
Hung-ying Tyan
2010-09-14 10:00:14 -07:00
committed by Android Git Automerger
2 changed files with 35 additions and 11 deletions

View File

@@ -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

View File

@@ -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);
}