Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +6 −1 Original line number Diff line number Diff line Loading @@ -1996,11 +1996,16 @@ public class ServiceStateTracker extends Handler { NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WLAN); NetworkRegistrationInfo wwanPsRegState = serviceState.getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN); // Check if any APN is preferred on IWLAN. boolean isIwlanPreferred = mTransportManager.isAnyApnPreferredOnIwlan(); serviceState.setIwlanPreferred(isIwlanPreferred); if (wlanPsRegState != null && wlanPsRegState.getAccessNetworkTechnology() == TelephonyManager.NETWORK_TYPE_IWLAN && wlanPsRegState.getRegistrationState() == NetworkRegistrationInfo.REGISTRATION_STATE_HOME) { == NetworkRegistrationInfo.REGISTRATION_STATE_HOME && isIwlanPreferred) { serviceState.setDataRegState(ServiceState.STATE_IN_SERVICE); } else if (wwanPsRegState != null) { // If the device is not camped on IWLAN, then we use cellular PS registration state Loading src/java/com/android/internal/telephony/dataconnection/TransportManager.java +15 −0 Original line number Diff line number Diff line Loading @@ -423,6 +423,21 @@ public class TransportManager extends Handler { ? AccessNetworkConstants.TRANSPORT_TYPE_WWAN : mCurrentTransports.get(apnType); } /** * Check if there is any APN type of network preferred on IWLAN. * * @return {@code true} if there is any APN preferred on IWLAN, otherwise {@code false}. */ public boolean isAnyApnPreferredOnIwlan() { for (int i = 0; i < mCurrentAvailableNetworks.size(); i++) { int[] networkList = mCurrentAvailableNetworks.valueAt(i); if (networkList.length > 0 && networkList[0] == AccessNetworkType.IWLAN) { return true; } } return false; } /** * Register for data handover needed event * Loading Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +6 −1 Original line number Diff line number Diff line Loading @@ -1996,11 +1996,16 @@ public class ServiceStateTracker extends Handler { NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WLAN); NetworkRegistrationInfo wwanPsRegState = serviceState.getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN); // Check if any APN is preferred on IWLAN. boolean isIwlanPreferred = mTransportManager.isAnyApnPreferredOnIwlan(); serviceState.setIwlanPreferred(isIwlanPreferred); if (wlanPsRegState != null && wlanPsRegState.getAccessNetworkTechnology() == TelephonyManager.NETWORK_TYPE_IWLAN && wlanPsRegState.getRegistrationState() == NetworkRegistrationInfo.REGISTRATION_STATE_HOME) { == NetworkRegistrationInfo.REGISTRATION_STATE_HOME && isIwlanPreferred) { serviceState.setDataRegState(ServiceState.STATE_IN_SERVICE); } else if (wwanPsRegState != null) { // If the device is not camped on IWLAN, then we use cellular PS registration state Loading
src/java/com/android/internal/telephony/dataconnection/TransportManager.java +15 −0 Original line number Diff line number Diff line Loading @@ -423,6 +423,21 @@ public class TransportManager extends Handler { ? AccessNetworkConstants.TRANSPORT_TYPE_WWAN : mCurrentTransports.get(apnType); } /** * Check if there is any APN type of network preferred on IWLAN. * * @return {@code true} if there is any APN preferred on IWLAN, otherwise {@code false}. */ public boolean isAnyApnPreferredOnIwlan() { for (int i = 0; i < mCurrentAvailableNetworks.size(); i++) { int[] networkList = mCurrentAvailableNetworks.valueAt(i); if (networkList.length > 0 && networkList[0] == AccessNetworkType.IWLAN) { return true; } } return false; } /** * Register for data handover needed event * Loading