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

Commit c6645cd8 authored by Amit Mahajan's avatar Amit Mahajan Committed by Gerrit Code Review
Browse files

Merge "Use correct PLMN info for an incoming CB-SMS"

parents 6d52d692 ad88bee9
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.content.res.Resources;
import android.os.Message;
import android.provider.Telephony.Sms.Intents;
import android.telephony.SmsCbMessage;
import android.telephony.TelephonyManager;

import com.android.internal.telephony.CellBroadcastHandler;
import com.android.internal.telephony.CommandsInterface;
@@ -110,7 +111,9 @@ public class CdmaInboundSmsHandler extends InboundSmsHandler {
        // Handle CMAS emergency broadcast messages.
        if (isBroadcastType) {
            log("Broadcast type message");
            SmsCbMessage cbMessage = sms.parseBroadcastSms();
            String plmn =
                    TelephonyManager.from(mContext).getNetworkOperatorForPhone(mPhone.getPhoneId());
            SmsCbMessage cbMessage = sms.parseBroadcastSms(plmn);
            if (cbMessage != null) {
                mCellBroadcastHandler.dispatchSmsMessage(cbMessage);
            } else {
+10 −10
Original line number Diff line number Diff line
@@ -353,7 +353,7 @@ public class CdmaSmsCbTest extends AndroidTestCase {
        SmsMessage msg = createBroadcastSmsMessage(123, 456, BearerData.PRIORITY_NORMAL,
                BearerData.LANGUAGE_ENGLISH, encoding, TEST_TEXT);

        SmsCbMessage cbMessage = msg.parseBroadcastSms();
        SmsCbMessage cbMessage = msg.parseBroadcastSms("");
        verifyCbValues(cbMessage);
        assertEquals(123, cbMessage.getServiceCategory());
        assertEquals(456, cbMessage.getSerialNumber());
@@ -385,7 +385,7 @@ public class CdmaSmsCbTest extends AndroidTestCase {
        SmsMessage msg = createBroadcastSmsMessage(987, 654, -1, -1,
                UserData.ENCODING_IS91_EXTENDED_PROTOCOL, IS91_TEXT);

        SmsCbMessage cbMessage = msg.parseBroadcastSms();
        SmsCbMessage cbMessage = msg.parseBroadcastSms("");
        verifyCbValues(cbMessage);
        assertEquals(987, cbMessage.getServiceCategory());
        assertEquals(654, cbMessage.getSerialNumber());
@@ -402,7 +402,7 @@ public class CdmaSmsCbTest extends AndroidTestCase {
                serviceCategory, 1234, BearerData.PRIORITY_EMERGENCY, BearerData.LANGUAGE_ENGLISH,
                UserData.ENCODING_7BIT_ASCII, body, -1, -1, -1, -1, -1);

        SmsCbMessage cbMessage = msg.parseBroadcastSms();
        SmsCbMessage cbMessage = msg.parseBroadcastSms("");
        verifyCbValues(cbMessage);
        assertEquals(serviceCategory, cbMessage.getServiceCategory());
        assertEquals(1234, cbMessage.getSerialNumber());
@@ -458,7 +458,7 @@ public class CdmaSmsCbTest extends AndroidTestCase {
                SmsCbCmasInfo.CMAS_RESPONSE_TYPE_MONITOR, SmsCbCmasInfo.CMAS_SEVERITY_SEVERE,
                SmsCbCmasInfo.CMAS_URGENCY_EXPECTED, SmsCbCmasInfo.CMAS_CERTAINTY_LIKELY);

        SmsCbMessage cbMessage = msg.parseBroadcastSms();
        SmsCbMessage cbMessage = msg.parseBroadcastSms("");
        verifyCbValues(cbMessage);
        assertEquals(SmsEnvelope.SERVICE_CATEGORY_CMAS_EXTREME_THREAT,
                cbMessage.getServiceCategory());
@@ -488,7 +488,7 @@ public class CdmaSmsCbTest extends AndroidTestCase {
                12345, BearerData.PRIORITY_EMERGENCY, BearerData.LANGUAGE_ENGLISH,
                0x1F, EXTREME_ALERT, -1, -1, -1, -1, -1);

        SmsCbMessage cbMessage = msg.parseBroadcastSms();
        SmsCbMessage cbMessage = msg.parseBroadcastSms("");
        assertNull("expected null for unsupported charset", cbMessage);
    }

@@ -500,7 +500,7 @@ public class CdmaSmsCbTest extends AndroidTestCase {
                67890, BearerData.PRIORITY_EMERGENCY, BearerData.LANGUAGE_ENGLISH,
                UserData.ENCODING_KOREAN, EXTREME_ALERT, -1, -1, -1, -1, -1);

        SmsCbMessage cbMessage = msg.parseBroadcastSms();
        SmsCbMessage cbMessage = msg.parseBroadcastSms("");
        assertNull("expected null for unsupported charset", cbMessage);
    }

@@ -513,7 +513,7 @@ public class CdmaSmsCbTest extends AndroidTestCase {
                BearerData.PRIORITY_EMERGENCY, BearerData.LANGUAGE_ENGLISH,
                UserData.ENCODING_7BIT_ASCII, null, -1, -1, -1, -1, -1);

        SmsCbMessage cbMessage = msg.parseBroadcastSms();
        SmsCbMessage cbMessage = msg.parseBroadcastSms("");
        verifyCbValues(cbMessage);
        assertEquals(SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT,
                cbMessage.getServiceCategory());
@@ -547,7 +547,7 @@ public class CdmaSmsCbTest extends AndroidTestCase {
                int category = 0x0ff0 + r.nextInt(32);  // half CMAS, half non-CMAS
                CdmaSmsMessage cdmaSmsMessage = createBroadcastParcel(category);
                SmsMessage msg = createMessageFromParcel(cdmaSmsMessage, data);
                SmsCbMessage cbMessage = msg.parseBroadcastSms();
                SmsCbMessage cbMessage = msg.parseBroadcastSms("");
                // with random input, cbMessage will almost always be null (log when it isn't)
                if (cbMessage != null) {
                    Rlog.d("CdmaSmsCbTest", "success: " + cbMessage);
@@ -581,7 +581,7 @@ public class CdmaSmsCbTest extends AndroidTestCase {
                }

                SmsMessage msg = createMessageFromParcel(cdmaSmsMessage, bos.toByteArray());
                SmsCbMessage cbMessage = msg.parseBroadcastSms();
                SmsCbMessage cbMessage = msg.parseBroadcastSms("");
            } catch (Exception e) {
                Rlog.d("CdmaSmsCbTest", "exception thrown", e);
                fail("Exception in decoder at run " + run + " length " + len + ": " + e);
@@ -744,7 +744,7 @@ public class CdmaSmsCbTest extends AndroidTestCase {
        CdmaSmsMessage cdmaSmsMessage = createBroadcastParcel(SmsEnvelope.SERVICE_CATEGORY_CMAS_TEST_MESSAGE);
        SmsMessage msg = createMessageFromParcel(cdmaSmsMessage, CMAS_TEST_BEARER_DATA);

        SmsCbMessage cbMessage = msg.parseBroadcastSms();
        SmsCbMessage cbMessage = msg.parseBroadcastSms("");
        assertNotNull("expected non-null for bearer data", cbMessage);
        assertEquals("geoScope", cbMessage.getGeographicalScope(), 1);
        assertEquals("serialNumber", cbMessage.getSerialNumber(), 51072);