From c4b87477c076d61062950becc132b7483e3fb198 Mon Sep 17 00:00:00 2001 From: Hung-ying Tyan Date: Sun, 19 Sep 2010 18:23:44 +0800 Subject: [PATCH] SIP: add config flag for wifi-only configuration. http://b/issue?id=2994029 Change-Id: I328da9b0f8b70d660dbcefffdac8250341792101 --- core/res/res/values/config.xml | 2 ++ services/java/com/android/server/sip/SipService.java | 11 +++++++++++ voip/java/android/net/sip/SipManager.java | 8 ++++++++ 3 files changed, 21 insertions(+) diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index d565c68e5c57a..720dc978b95ef 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -342,4 +342,6 @@ 2 + + false diff --git a/services/java/com/android/server/sip/SipService.java b/services/java/com/android/server/sip/SipService.java index d7747fb59f7ed..7e13d653d3bb5 100644 --- a/services/java/com/android/server/sip/SipService.java +++ b/services/java/com/android/server/sip/SipService.java @@ -71,6 +71,7 @@ public final class SipService extends ISipService.Stub { private boolean mConnected; private WakeupTimer mTimer; private WifiManager.WifiLock mWifiLock; + private boolean mWifiOnly; // SipProfile URI --> group private Map mSipGroups = @@ -99,6 +100,7 @@ public final class SipService extends ISipService.Stub { new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); mTimer = new WakeupTimer(context); + mWifiOnly = SipManager.isSipWifiOnly(context); } public synchronized SipProfile[] getListOfProfiles() { @@ -774,6 +776,15 @@ public final class SipService extends ISipService.Stub { String type = netInfo.getTypeName(); NetworkInfo.State state = netInfo.getState(); + if (mWifiOnly && (netInfo.getType() != + ConnectivityManager.TYPE_WIFI)) { + if (DEBUG) { + Log.d(TAG, "Wifi only, other connectivity ignored: " + + type); + } + return; + } + NetworkInfo activeNetInfo = getActiveNetworkInfo(); if (DEBUG) { if (activeNetInfo != null) { diff --git a/voip/java/android/net/sip/SipManager.java b/voip/java/android/net/sip/SipManager.java index 36895cd66ae2c..9ee6f34c407e0 100644 --- a/voip/java/android/net/sip/SipManager.java +++ b/voip/java/android/net/sip/SipManager.java @@ -97,6 +97,14 @@ public class SipManager { */ } + /** + * Returns true if SIP is only available on WIFI. + */ + public static boolean isSipWifiOnly(Context context) { + return context.getResources().getBoolean( + com.android.internal.R.bool.config_sip_wifi_only); + } + private SipManager() { createSipService(); }