Add the condition check of ERI for CDMA roaming.
With this fix, phone will not show that it is roaming when it is not, and there is no need to enable the "Data Roaming" in order to get the data to work.
This commit is contained in:
@@ -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);
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user