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

Commit 0fd49b6b authored by Alex Yakavenka's avatar Alex Yakavenka Committed by Rika Brooks
Browse files

Telephony: Fix LTE CB Sms for dual-mode devices

Ignore 3gpp location information when it is not available.
This is required to support dual-mode devices such as CDMA/LTE devices
that require support for both 3GPP and 3GPP2 format messages.

Change-Id: Ie5d6372ef7e8da6893800e05a83ba840b7fd31f6
parent 801aa9f3
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -393,9 +393,17 @@ public final class GsmSMSDispatcher extends SMSDispatcher {

            SmsCbHeader header = new SmsCbHeader(receivedPdu);
            String plmn = SystemProperties.get(TelephonyProperties.PROPERTY_OPERATOR_NUMERIC);
            GsmCellLocation cellLocation = (GsmCellLocation) mPhone.getCellLocation();
            int lac = cellLocation.getLac();
            int cid = cellLocation.getCid();
            int lac = -1;
            int cid = -1;
            android.telephony.CellLocation cl = mPhone.getCellLocation();
            // Check if cell location is GsmCellLocation.  This is required to support
            // dual-mode devices such as CDMA/LTE devices that require support for
            // both 3GPP and 3GPP2 format messages
            if (cl instanceof GsmCellLocation) {
                GsmCellLocation cellLocation = (GsmCellLocation)cl;
                lac = cellLocation.getLac();
                cid = cellLocation.getCid();
            }

            SmsCbLocation location;
            switch (header.getGeographicalScope()) {