Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 51759015 authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 6392

* changes:
  Add the condition check of ERI for CDMA roaming.
parents c5ae493b 8e80fd44
Loading
Loading
Loading
Loading
+31 −1
Original line number Diff line number Diff line
@@ -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