Loading telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java +31 −1 Original line number Diff line number Diff line Loading @@ -592,7 +592,10 @@ final class CdmaServiceStateTracker extends ServiceStateTracker { } mRegistrationState = registrationState; mCdmaRoaming = regCodeIsRoaming(registrationState); // mCdmaRoaming is true when registration state is roaming and TSB58 roaming // indicator is not in the carrier-specified list of ERIs for home system mCdmaRoaming = regCodeIsRoaming(registrationState) && !isRoamIndForHomeSystem(states[10]); newSS.setState (regCodeToServiceState(registrationState)); this.newCdmaDataConnectionState = radioTechnologyToDataServiceState(radioTechnology); Loading Loading @@ -1168,6 +1171,33 @@ final class CdmaServiceStateTracker extends ServiceStateTracker { return 5 == code; } /** * Determine whether a roaming indicator is in the carrier-specified list of ERIs for * home system * * @param roamInd roaming indicator in String * @return true if the roamInd is in the carrier-specified list of ERIs for home network */ private boolean isRoamIndForHomeSystem(String roamInd) { // retrieve the carrier-specified list of ERIs for home system String homeRoamIndcators = SystemProperties.get("ro.cdma.homesystem"); if (!TextUtils.isEmpty(homeRoamIndcators)) { // searches through the comma-separated list for a match, // return true if one is found. for (String homeRoamInd : homeRoamIndcators.split(",")) { if (homeRoamInd.equals(roamInd)) { return true; } } // no matches found against the list! return false; } // no system property found for the roaming indicators for home system return false; } /** * Set roaming state when cdmaRoaming is true and ons is different from spn * @param cdmaRoaming TS 27.007 7.2 CREG registered roaming Loading Loading
telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java +31 −1 Original line number Diff line number Diff line Loading @@ -592,7 +592,10 @@ final class CdmaServiceStateTracker extends ServiceStateTracker { } mRegistrationState = registrationState; mCdmaRoaming = regCodeIsRoaming(registrationState); // mCdmaRoaming is true when registration state is roaming and TSB58 roaming // indicator is not in the carrier-specified list of ERIs for home system mCdmaRoaming = regCodeIsRoaming(registrationState) && !isRoamIndForHomeSystem(states[10]); newSS.setState (regCodeToServiceState(registrationState)); this.newCdmaDataConnectionState = radioTechnologyToDataServiceState(radioTechnology); Loading Loading @@ -1168,6 +1171,33 @@ final class CdmaServiceStateTracker extends ServiceStateTracker { return 5 == code; } /** * Determine whether a roaming indicator is in the carrier-specified list of ERIs for * home system * * @param roamInd roaming indicator in String * @return true if the roamInd is in the carrier-specified list of ERIs for home network */ private boolean isRoamIndForHomeSystem(String roamInd) { // retrieve the carrier-specified list of ERIs for home system String homeRoamIndcators = SystemProperties.get("ro.cdma.homesystem"); if (!TextUtils.isEmpty(homeRoamIndcators)) { // searches through the comma-separated list for a match, // return true if one is found. for (String homeRoamInd : homeRoamIndcators.split(",")) { if (homeRoamInd.equals(roamInd)) { return true; } } // no matches found against the list! return false; } // no system property found for the roaming indicators for home system return false; } /** * Set roaming state when cdmaRoaming is true and ons is different from spn * @param cdmaRoaming TS 27.007 7.2 CREG registered roaming Loading