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

Commit 4e46c7a5 authored by Jayachandran C's avatar Jayachandran C Committed by android-build-merger
Browse files

Merge "Set CDMA data roaming based on TSB58 roaming indicator if voice is not...

Merge "Set CDMA data roaming based on TSB58 roaming indicator if voice is not in service" am: 5eb93305
am: 3e332133

Change-Id: Ie8fb2c315834e8e735a3713afe02fa2dbecbd6e4
parents 5a2527e9 3e332133
Loading
Loading
Loading
Loading
+21 −6
Original line number Diff line number Diff line
@@ -1647,12 +1647,27 @@ public class ServiceStateTracker extends Handler {
                if (mIsSubscriptionFromRuim) {
                    mNewSS.setVoiceRoaming(isRoamingBetweenOperators(mNewSS.getVoiceRoaming(), mNewSS));
                }
                // For CDMA, voice and data should have the same roaming status
                /**
                 * For CDMA, voice and data should have the same roaming status.
                 * If voice is not in service, use TSB58 roaming indicator to set
                 * data roaming status. If TSB58 roaming indicator is not in the
                 * carrier-specified list of ERIs for home system then set roaming.
                 */
                final int dataRat = mNewSS.getRilDataRadioTechnology();
                if (ServiceState.isCdma(dataRat)) {
                    final boolean isVoiceInService =
                            (mNewSS.getVoiceRegState() == ServiceState.STATE_IN_SERVICE);
                final int dataRegType = mNewSS.getRilDataRadioTechnology();
                if (isVoiceInService && ServiceState.isCdma(dataRegType)) {
                    if (isVoiceInService) {
                        mNewSS.setDataRoaming(mNewSS.getVoiceRoaming());
                    } else {
                        /**
                         * As per VoiceRegStateResult from radio types.hal the TSB58
                         * Roaming Indicator shall be sent if device is registered
                         * on a CDMA or EVDO system.
                         */
                        mNewSS.setDataRoaming(
                                !isRoamIndForHomeSystem(Integer.toString(mRoamingIndicator)));
                    }
                }

                // Setting SS CdmaRoamingIndicator and CdmaDefaultRoamingIndicator