telephony: Don't disable an APN type that is not enabled.
Fixes a bad interaction between MMS and SUPL that occurs when they are using
the same APN.
Signed-off-by: Mike Lockwood <lockwood@android.com>
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
index 1b07add..9ca46108d 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
@@ -369,13 +369,15 @@
* The APN of the specified type is no longer needed. Ensure that if
* use of the default APN has not been explicitly disabled, we are connected
* to the default APN.
- * @param type the APN type. The only valid value currently is {@link Phone#APN_TYPE_MMS}.
+ * @param type the APN type. The only valid values are currently
+ * {@link Phone#APN_TYPE_MMS} and {@link Phone#APN_TYPE_SUPL}.
* @return
*/
protected int disableApnType(String type) {
Log.d(LOG_TAG, "disableApnType("+type+")");
- if (TextUtils.equals(type, Phone.APN_TYPE_MMS) ||
- TextUtils.equals(type, Phone.APN_TYPE_SUPL)) {
+ if ((TextUtils.equals(type, Phone.APN_TYPE_MMS) ||
+ TextUtils.equals(type, Phone.APN_TYPE_SUPL))
+ && isEnabled(type)) {
removeMessages(EVENT_RESTORE_DEFAULT_APN);
setEnabled(type, false);
if (isApnTypeActive(Phone.APN_TYPE_DEFAULT)) {