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

Commit 3e332133 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 in service"

am: 5eb93305

Change-Id: Ia7778aedfd2ac0e72dcc40c88467728884f4b3ab
parents 8a9fb222 5eb93305
Loading
Loading
Loading
Loading
+21 −6
Original line number Original line Diff line number Diff line
@@ -1647,12 +1647,27 @@ public class ServiceStateTracker extends Handler {
                if (mIsSubscriptionFromRuim) {
                if (mIsSubscriptionFromRuim) {
                    mNewSS.setVoiceRoaming(isRoamingBetweenOperators(mNewSS.getVoiceRoaming(), mNewSS));
                    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 =
                    final boolean isVoiceInService =
                            (mNewSS.getVoiceRegState() == ServiceState.STATE_IN_SERVICE);
                            (mNewSS.getVoiceRegState() == ServiceState.STATE_IN_SERVICE);
                final int dataRegType = mNewSS.getRilDataRadioTechnology();
                    if (isVoiceInService) {
                if (isVoiceInService && ServiceState.isCdma(dataRegType)) {
                        mNewSS.setDataRoaming(mNewSS.getVoiceRoaming());
                        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
                // Setting SS CdmaRoamingIndicator and CdmaDefaultRoamingIndicator