diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2019-06-24 22:34:53 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-06-24 22:34:53 +0000 |
commit | 087fa1974ced19ffcafc6a1e8f79312a908885af (patch) | |
tree | eed462dce67a380b68b3be56092a5acb6659d420 | |
parent | 18354af0c2973a0e1b58f99e1ec7c190afa9fd88 (diff) | |
parent | 389afecf5229edab07d1f041268ca29a2077cc5e (diff) | |
download | android_frameworks_opt_telephony-087fa1974ced19ffcafc6a1e8f79312a908885af.tar.gz android_frameworks_opt_telephony-087fa1974ced19ffcafc6a1e8f79312a908885af.tar.bz2 android_frameworks_opt_telephony-087fa1974ced19ffcafc6a1e8f79312a908885af.zip |
Merge "Reverted to the old logic for APN selection" into qt-dev
-rw-r--r-- | src/java/com/android/internal/telephony/dataconnection/DcTracker.java | 16 | ||||
-rw-r--r-- | tests/telephonytests/src/com/android/internal/telephony/dataconnection/ApnSettingTest.java | 72 |
2 files changed, 81 insertions, 7 deletions
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java index 1e04223f6..7a4bfd8d3 100644 --- a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java +++ b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java @@ -73,6 +73,7 @@ import android.telephony.NetworkRegistrationInfo; import android.telephony.PcoData; import android.telephony.Rlog; import android.telephony.ServiceState; +import android.telephony.ServiceState.RilRadioTechnology; import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener; import android.telephony.TelephonyManager; @@ -1757,8 +1758,8 @@ public class DcTracker extends Handler { } for (ApnSetting dunSetting : dunCandidates) { - if (!ServiceState.networkBitmaskHasAccessNetworkType(dunSetting.getNetworkTypeBitmask(), - ServiceState.rilRadioTechnologyToAccessNetworkType(bearer))) { + if (!dunSetting.canSupportNetworkType( + ServiceState.rilRadioTechnologyToNetworkType(bearer))) { continue; } retDunSettings.add(dunSetting); @@ -3270,9 +3271,8 @@ public class DcTracker extends Handler { + mPreferredApn.getOperatorNumeric() + ":" + mPreferredApn); } if (mPreferredApn.getOperatorNumeric().equals(operator)) { - if (ServiceState.networkBitmaskHasAccessNetworkType( - mPreferredApn.getNetworkTypeBitmask(), - ServiceState.rilRadioTechnologyToAccessNetworkType(radioTech))) { + if (mPreferredApn.canSupportNetworkType( + ServiceState.rilRadioTechnologyToNetworkType(radioTech))) { apnList.add(mPreferredApn); apnList = sortApnListByPreferred(apnList); if (DBG) log("buildWaitingApns: X added preferred apnList=" + apnList); @@ -3292,8 +3292,8 @@ public class DcTracker extends Handler { if (DBG) log("buildWaitingApns: mAllApnSettings=" + mAllApnSettings); for (ApnSetting apn : mAllApnSettings) { if (apn.canHandleType(requestedApnTypeBitmask)) { - if (ServiceState.networkBitmaskHasAccessNetworkType(apn.getNetworkTypeBitmask(), - ServiceState.rilRadioTechnologyToAccessNetworkType(radioTech))) { + if (apn.canSupportNetworkType( + ServiceState.rilRadioTechnologyToNetworkType(radioTech))) { if (VDBG) log("buildWaitingApns: adding apn=" + apn); apnList.add(apn); } else { @@ -4816,6 +4816,7 @@ public class DcTracker extends Handler { return "UNKNOWN"; } + @RilRadioTechnology private int getDataRat() { ServiceState ss = mPhone.getServiceState(); NetworkRegistrationInfo nrs = ss.getNetworkRegistrationInfo( @@ -4826,6 +4827,7 @@ public class DcTracker extends Handler { return ServiceState.RIL_RADIO_TECHNOLOGY_UNKNOWN; } + @RilRadioTechnology private int getVoiceRat() { ServiceState ss = mPhone.getServiceState(); NetworkRegistrationInfo nrs = ss.getNetworkRegistrationInfo( diff --git a/tests/telephonytests/src/com/android/internal/telephony/dataconnection/ApnSettingTest.java b/tests/telephonytests/src/com/android/internal/telephony/dataconnection/ApnSettingTest.java index 7e271427e..977b45ab2 100644 --- a/tests/telephonytests/src/com/android/internal/telephony/dataconnection/ApnSettingTest.java +++ b/tests/telephonytests/src/com/android/internal/telephony/dataconnection/ApnSettingTest.java @@ -27,6 +27,7 @@ import android.net.Uri; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; import android.telephony.ServiceState; +import android.telephony.TelephonyManager; import android.telephony.data.ApnSetting; import android.test.suitebuilder.annotation.SmallTest; @@ -684,4 +685,75 @@ public class ApnSettingTest extends TelephonyTest { assertTrue(apn1.equals(apn2, false)); assertFalse(apn1.equals(apn2, true)); } + + @Test + @SmallTest + public void testCanHandleNetwork() throws Exception { + ApnSetting apn1 = ApnSetting.makeApnSetting( + 1234, + "310260", + "", + "ims", + null, + -1, + null, + null, + -1, + "", + "", + -1, + ApnSetting.TYPE_IMS, + ApnSetting.PROTOCOL_IPV6, + -1, + true, + (int) (TelephonyManager.NETWORK_TYPE_BITMASK_LTE + | TelephonyManager.NETWORK_TYPE_BITMASK_UMTS), + 0, + false, + 0, + 0, + 0, + 1440, + -1, + ""); + + ApnSetting apn2 = ApnSetting.makeApnSetting( + 1235, + "310260", + "", + "ims", + null, + -1, + null, + null, + -1, + "", + "", + -1, + ApnSetting.TYPE_IMS, + ApnSetting.PROTOCOL_IPV6, + ApnSetting.PROTOCOL_IPV6, + true, + (int) (TelephonyManager.NETWORK_TYPE_BITMASK_EDGE + | TelephonyManager.NETWORK_TYPE_BITMASK_GPRS), + 0, + false, + 0, + 0, + 0, + 1440, + -1, + ""); + + assertFalse(apn1.canSupportNetworkType(TelephonyManager.NETWORK_TYPE_1xRTT)); + assertTrue(apn1.canSupportNetworkType(TelephonyManager.NETWORK_TYPE_LTE)); + assertTrue(apn1.canSupportNetworkType(TelephonyManager.NETWORK_TYPE_UMTS)); + + assertFalse(apn2.canSupportNetworkType(TelephonyManager.NETWORK_TYPE_1xRTT)); + assertFalse(apn2.canSupportNetworkType(TelephonyManager.NETWORK_TYPE_LTE)); + assertTrue(apn2.canSupportNetworkType(TelephonyManager.NETWORK_TYPE_GPRS)); + assertTrue(apn2.canSupportNetworkType(TelephonyManager.NETWORK_TYPE_EDGE)); + + assertTrue(apn2.canSupportNetworkType(TelephonyManager.NETWORK_TYPE_GSM)); + } } |