Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +9 −9 Original line number Diff line number Diff line Loading @@ -895,7 +895,7 @@ public class ServiceStateTracker extends Handler { if (nrs != null) { int rat = ServiceState.networkTypeToRilRadioTechnology( nrs.getAccessNetworkTechnology()); int drs = regCodeToServiceState(nrs.getRegistrationState()); int drs = regCodeToServiceState(nrs.getInitialRegistrationState()); return new Pair<>(drs, rat); } return null; Loading Loading @@ -2176,14 +2176,14 @@ public class ServiceStateTracker extends Handler { if (wlanPsRegState != null && wlanPsRegState.getAccessNetworkTechnology() == TelephonyManager.NETWORK_TYPE_IWLAN && wlanPsRegState.getRegistrationState() && wlanPsRegState.getInitialRegistrationState() == 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 // to compute reg state and rat. int regState = wwanPsRegState.getRegistrationState(); int regState = wwanPsRegState.getInitialRegistrationState(); serviceState.setDataRegState(regCodeToServiceState(regState)); } if (DBG) { Loading @@ -2199,7 +2199,7 @@ public class ServiceStateTracker extends Handler { VoiceSpecificRegistrationInfo voiceSpecificStates = networkRegState.getVoiceSpecificInfo(); int registrationState = networkRegState.getRegistrationState(); int registrationState = networkRegState.getInitialRegistrationState(); int cssIndicator = voiceSpecificStates.cssSupported ? 1 : 0; int newVoiceRat = ServiceState.networkTypeToRilRadioTechnology( networkRegState.getAccessNetworkTechnology()); Loading Loading @@ -2281,7 +2281,7 @@ public class ServiceStateTracker extends Handler { mNewSS.addNetworkRegistrationInfo(networkRegState); DataSpecificRegistrationInfo dataSpecificStates = networkRegState.getDataSpecificInfo(); int registrationState = networkRegState.getRegistrationState(); int registrationState = networkRegState.getInitialRegistrationState(); int serviceState = regCodeToServiceState(registrationState); int newDataRat = ServiceState.networkTypeToRilRadioTechnology( networkRegState.getAccessNetworkTechnology()); Loading Loading @@ -3521,9 +3521,9 @@ public class ServiceStateTracker extends Handler { anyDataRatChanged = true; } int oldRegState = oldNrs != null ? oldNrs.getRegistrationState() int oldRegState = oldNrs != null ? oldNrs.getInitialRegistrationState() : NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN; int newRegState = newNrs != null ? newNrs.getRegistrationState() int newRegState = newNrs != null ? newNrs.getInitialRegistrationState() : NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN; hasDataRegStateChanged.put(transport, oldRegState != newRegState); if (oldRegState != newRegState) { Loading Loading @@ -4235,7 +4235,7 @@ public class ServiceStateTracker extends Handler { } /** * Do not set roaming state in case of oprators considered non-roaming. * Do not set roaming state in case of operators considered non-roaming. * * Can use mcc or mcc+mnc as item of * {@link CarrierConfigManager#KEY_NON_ROAMING_OPERATOR_STRING_ARRAY}. Loading Loading @@ -5642,7 +5642,7 @@ public class ServiceStateTracker extends Handler { NetworkRegistrationInfo wlanNri = new NetworkRegistrationInfo.Builder() .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WLAN) .setDomain(NetworkRegistrationInfo.DOMAIN_PS) .setRegistrationState(wwanNri.getRegistrationState()) .setRegistrationState(wwanNri.getInitialRegistrationState()) .setAccessNetworkTechnology(TelephonyManager.NETWORK_TYPE_IWLAN) .setRejectCause(wwanNri.getRejectCause()) .setEmergencyOnly(wwanNri.isEmergencyEnabled()) Loading tests/telephonytests/src/com/android/internal/telephony/NetworkRegistrationInfoTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.os.Parcel; import android.telephony.AccessNetworkConstants; import android.telephony.CellIdentityLte; import android.telephony.NetworkRegistrationInfo; import android.telephony.ServiceState; import android.telephony.TelephonyManager; import androidx.test.filters.SmallTest; Loading Loading @@ -68,4 +69,22 @@ public class NetworkRegistrationInfoTest { assertEquals("12345", new NetworkRegistrationInfo.Builder() .setRegisteredPlmn("12345").build().getRegisteredPlmn()); } @Test @SmallTest public void testSetRoamingType() { NetworkRegistrationInfo nri = new NetworkRegistrationInfo.Builder() .setDomain(NetworkRegistrationInfo.DOMAIN_CS) .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN) .setRegistrationState(NetworkRegistrationInfo.REGISTRATION_STATE_ROAMING) .setAccessNetworkTechnology(TelephonyManager.NETWORK_TYPE_LTE) .setAvailableServices(Arrays.asList(NetworkRegistrationInfo.SERVICE_TYPE_DATA)) .setCellIdentity(new CellIdentityLte()) .setRegisteredPlmn("12345") .build(); nri.setRoamingType(ServiceState.ROAMING_TYPE_NOT_ROAMING); assertEquals(NetworkRegistrationInfo.REGISTRATION_STATE_HOME, nri.getRegistrationState()); assertEquals(NetworkRegistrationInfo.REGISTRATION_STATE_ROAMING, nri.getInitialRegistrationState()); } } Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +9 −9 Original line number Diff line number Diff line Loading @@ -895,7 +895,7 @@ public class ServiceStateTracker extends Handler { if (nrs != null) { int rat = ServiceState.networkTypeToRilRadioTechnology( nrs.getAccessNetworkTechnology()); int drs = regCodeToServiceState(nrs.getRegistrationState()); int drs = regCodeToServiceState(nrs.getInitialRegistrationState()); return new Pair<>(drs, rat); } return null; Loading Loading @@ -2176,14 +2176,14 @@ public class ServiceStateTracker extends Handler { if (wlanPsRegState != null && wlanPsRegState.getAccessNetworkTechnology() == TelephonyManager.NETWORK_TYPE_IWLAN && wlanPsRegState.getRegistrationState() && wlanPsRegState.getInitialRegistrationState() == 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 // to compute reg state and rat. int regState = wwanPsRegState.getRegistrationState(); int regState = wwanPsRegState.getInitialRegistrationState(); serviceState.setDataRegState(regCodeToServiceState(regState)); } if (DBG) { Loading @@ -2199,7 +2199,7 @@ public class ServiceStateTracker extends Handler { VoiceSpecificRegistrationInfo voiceSpecificStates = networkRegState.getVoiceSpecificInfo(); int registrationState = networkRegState.getRegistrationState(); int registrationState = networkRegState.getInitialRegistrationState(); int cssIndicator = voiceSpecificStates.cssSupported ? 1 : 0; int newVoiceRat = ServiceState.networkTypeToRilRadioTechnology( networkRegState.getAccessNetworkTechnology()); Loading Loading @@ -2281,7 +2281,7 @@ public class ServiceStateTracker extends Handler { mNewSS.addNetworkRegistrationInfo(networkRegState); DataSpecificRegistrationInfo dataSpecificStates = networkRegState.getDataSpecificInfo(); int registrationState = networkRegState.getRegistrationState(); int registrationState = networkRegState.getInitialRegistrationState(); int serviceState = regCodeToServiceState(registrationState); int newDataRat = ServiceState.networkTypeToRilRadioTechnology( networkRegState.getAccessNetworkTechnology()); Loading Loading @@ -3521,9 +3521,9 @@ public class ServiceStateTracker extends Handler { anyDataRatChanged = true; } int oldRegState = oldNrs != null ? oldNrs.getRegistrationState() int oldRegState = oldNrs != null ? oldNrs.getInitialRegistrationState() : NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN; int newRegState = newNrs != null ? newNrs.getRegistrationState() int newRegState = newNrs != null ? newNrs.getInitialRegistrationState() : NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN; hasDataRegStateChanged.put(transport, oldRegState != newRegState); if (oldRegState != newRegState) { Loading Loading @@ -4235,7 +4235,7 @@ public class ServiceStateTracker extends Handler { } /** * Do not set roaming state in case of oprators considered non-roaming. * Do not set roaming state in case of operators considered non-roaming. * * Can use mcc or mcc+mnc as item of * {@link CarrierConfigManager#KEY_NON_ROAMING_OPERATOR_STRING_ARRAY}. Loading Loading @@ -5642,7 +5642,7 @@ public class ServiceStateTracker extends Handler { NetworkRegistrationInfo wlanNri = new NetworkRegistrationInfo.Builder() .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WLAN) .setDomain(NetworkRegistrationInfo.DOMAIN_PS) .setRegistrationState(wwanNri.getRegistrationState()) .setRegistrationState(wwanNri.getInitialRegistrationState()) .setAccessNetworkTechnology(TelephonyManager.NETWORK_TYPE_IWLAN) .setRejectCause(wwanNri.getRejectCause()) .setEmergencyOnly(wwanNri.isEmergencyEnabled()) Loading
tests/telephonytests/src/com/android/internal/telephony/NetworkRegistrationInfoTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.os.Parcel; import android.telephony.AccessNetworkConstants; import android.telephony.CellIdentityLte; import android.telephony.NetworkRegistrationInfo; import android.telephony.ServiceState; import android.telephony.TelephonyManager; import androidx.test.filters.SmallTest; Loading Loading @@ -68,4 +69,22 @@ public class NetworkRegistrationInfoTest { assertEquals("12345", new NetworkRegistrationInfo.Builder() .setRegisteredPlmn("12345").build().getRegisteredPlmn()); } @Test @SmallTest public void testSetRoamingType() { NetworkRegistrationInfo nri = new NetworkRegistrationInfo.Builder() .setDomain(NetworkRegistrationInfo.DOMAIN_CS) .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN) .setRegistrationState(NetworkRegistrationInfo.REGISTRATION_STATE_ROAMING) .setAccessNetworkTechnology(TelephonyManager.NETWORK_TYPE_LTE) .setAvailableServices(Arrays.asList(NetworkRegistrationInfo.SERVICE_TYPE_DATA)) .setCellIdentity(new CellIdentityLte()) .setRegisteredPlmn("12345") .build(); nri.setRoamingType(ServiceState.ROAMING_TYPE_NOT_ROAMING); assertEquals(NetworkRegistrationInfo.REGISTRATION_STATE_HOME, nri.getRegistrationState()); assertEquals(NetworkRegistrationInfo.REGISTRATION_STATE_ROAMING, nri.getInitialRegistrationState()); } }