summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorRobert Greenwalt <rgreenwalt@google.com>2012-04-24 10:41:54 -0700
committerRobert Greenwalt <rgreenwalt@google.com>2012-04-25 09:44:53 -0700
commit7725180c646d1976a2a2097735862a75ec47c544 (patch)
tree52c6602f78eb746a46bb9f61d6590db838d93cf4 /telephony
parent867b96bd153aa8672e4e9557c12e39949139864d (diff)
downloadframeworks_base-7725180c646d1976a2a2097735862a75ec47c544.zip
frameworks_base-7725180c646d1976a2a2097735862a75ec47c544.tar.gz
frameworks_base-7725180c646d1976a2a2097735862a75ec47c544.tar.bz2
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
Diffstat (limited to 'telephony')
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java29
1 files 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 40ee58c..56dbfb8 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) {