From 7725180c646d1976a2a2097735862a75ec47c544 Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Tue, 24 Apr 2012 10:41:54 -0700 Subject: [PATCH] Prefer the preferred APN for all types it supports We used to only prefer it when connecting for default connection purposes, but it makes sense to use the preference for all apn types it supports. bug:6377793 Change-Id: I8b26b77fc0787121749cce9d32303ab24cc72c75 --- .../gsm/GsmDataConnectionTracker.java | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java index 40ee58c078f78..56dbfb87d50f3 100644 --- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java @@ -2322,27 +2322,26 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { String operator = mPhone.mIccRecords.getOperatorNumeric(); int networkType = mPhone.getServiceState().getNetworkType(); - if (requestedApnType.equals(Phone.APN_TYPE_DEFAULT)) { - if (canSetPreferApn && mPreferredApn != null) { - if (DBG) { - log("buildWaitingApns: Preferred APN:" + operator + ":" + if (canSetPreferApn && mPreferredApn != null && + mPreferredApn.canHandleType(requestedApnType)) { + if (DBG) { + log("buildWaitingApns: Preferred APN:" + operator + ":" + mPreferredApn.numeric + ":" + mPreferredApn); - } - if (mPreferredApn.numeric.equals(operator)) { - if (mPreferredApn.bearer == 0 || mPreferredApn.bearer == networkType) { - apnList.add(mPreferredApn); - if (DBG) log("buildWaitingApns: X added preferred apnList=" + apnList); - return apnList; - } else { - if (DBG) log("buildWaitingApns: no preferred APN"); - setPreferredApn(-1); - mPreferredApn = null; - } + } + if (mPreferredApn.numeric.equals(operator)) { + if (mPreferredApn.bearer == 0 || mPreferredApn.bearer == networkType) { + apnList.add(mPreferredApn); + if (DBG) log("buildWaitingApns: X added preferred apnList=" + apnList); + return apnList; } else { if (DBG) log("buildWaitingApns: no preferred APN"); setPreferredApn(-1); mPreferredApn = null; } + } else { + if (DBG) log("buildWaitingApns: no preferred APN"); + setPreferredApn(-1); + mPreferredApn = null; } } if (mAllApns != null) {