Loading api/system-current.txt +2 −1 Original line number Original line Diff line number Diff line Loading @@ -8033,7 +8033,7 @@ package android.telephony { } } public final class SmsCbMessage implements android.os.Parcelable { public final class SmsCbMessage implements android.os.Parcelable { ctor public SmsCbMessage(int, int, int, @NonNull android.telephony.SmsCbLocation, int, @Nullable String, @Nullable String, int, @Nullable android.telephony.SmsCbEtwsInfo, @Nullable android.telephony.SmsCbCmasInfo); ctor public SmsCbMessage(int, int, int, @NonNull android.telephony.SmsCbLocation, int, @Nullable String, @Nullable String, int, @Nullable android.telephony.SmsCbEtwsInfo, @Nullable android.telephony.SmsCbCmasInfo, int); method @NonNull public static android.telephony.SmsCbMessage createFromCursor(@NonNull android.database.Cursor); method @NonNull public static android.telephony.SmsCbMessage createFromCursor(@NonNull android.database.Cursor); method public int describeContents(); method public int describeContents(); method @Nullable public android.telephony.SmsCbCmasInfo getCmasWarningInfo(); method @Nullable public android.telephony.SmsCbCmasInfo getCmasWarningInfo(); Loading @@ -8048,6 +8048,7 @@ package android.telephony { method public long getReceivedTime(); method public long getReceivedTime(); method public int getSerialNumber(); method public int getSerialNumber(); method public int getServiceCategory(); method public int getServiceCategory(); method public int getSlotIndex(); method public boolean isCmasMessage(); method public boolean isCmasMessage(); method public boolean isEmergencyMessage(); method public boolean isEmergencyMessage(); method public boolean isEtwsMessage(); method public boolean isEtwsMessage(); telephony/java/android/provider/Telephony.java +11 −2 Original line number Original line Diff line number Diff line Loading @@ -3963,12 +3963,20 @@ public final class Telephony { public static final Uri CONTENT_URI = Uri.parse("content://cellbroadcasts"); public static final Uri CONTENT_URI = Uri.parse("content://cellbroadcasts"); /** /** * The id of the subscription which received this cell broadcast message. * The subscription which received this cell broadcast message. * @deprecated use {@link #SLOT_INDEX} instead. * <P>Type: INTEGER</P> * <P>Type: INTEGER</P> * @hide * @hide */ */ public static final String SUB_ID = "sub_id"; public static final String SUB_ID = "sub_id"; /** * The slot which received this cell broadcast message. * <P>Type: INTEGER</P> * @hide */ public static final String SLOT_INDEX = "slot_index"; /** /** * Message geographical scope. Valid values are: * Message geographical scope. Valid values are: * <ul> * <ul> Loading Loading @@ -4203,7 +4211,7 @@ public final class Telephony { public static final String MAXIMUM_WAIT_TIME = "maximum_wait_time"; public static final String MAXIMUM_WAIT_TIME = "maximum_wait_time"; /** /** * Query columns for instantiating {@link android.telephony.CellBroadcastMessage} objects. * Query columns for instantiating com.android.cellbroadcastreceiver.CellBroadcastMessage. * @hide * @hide */ */ @NonNull @NonNull Loading Loading @@ -4236,6 +4244,7 @@ public final class Telephony { */ */ public static final String[] QUERY_COLUMNS_FWK = { public static final String[] QUERY_COLUMNS_FWK = { _ID, _ID, SLOT_INDEX, GEOGRAPHICAL_SCOPE, GEOGRAPHICAL_SCOPE, PLMN, PLMN, LAC, LAC, Loading telephony/java/android/telephony/SmsCbMessage.java +22 −4 Original line number Original line Diff line number Diff line Loading @@ -207,17 +207,19 @@ public final class SmsCbMessage implements Parcelable { /** CMAS warning area coordinates. */ /** CMAS warning area coordinates. */ private final List<Geometry> mGeometries; private final List<Geometry> mGeometries; private int mSlotIndex = 0; /** /** * Create a new SmsCbMessage with the specified data. * Create a new SmsCbMessage with the specified data. */ */ public SmsCbMessage(int messageFormat, int geographicalScope, int serialNumber, public SmsCbMessage(int messageFormat, int geographicalScope, int serialNumber, @NonNull SmsCbLocation location, int serviceCategory, @Nullable String language, @NonNull SmsCbLocation location, int serviceCategory, @Nullable String language, @Nullable String body, int priority, @Nullable SmsCbEtwsInfo etwsWarningInfo, @Nullable String body, int priority, @Nullable SmsCbEtwsInfo etwsWarningInfo, @Nullable SmsCbCmasInfo cmasWarningInfo) { @Nullable SmsCbCmasInfo cmasWarningInfo, int slotIndex) { this(messageFormat, geographicalScope, serialNumber, location, serviceCategory, language, this(messageFormat, geographicalScope, serialNumber, location, serviceCategory, language, body, priority, etwsWarningInfo, cmasWarningInfo, 0 /* maximumWaitingTime */, body, priority, etwsWarningInfo, cmasWarningInfo, 0 /* maximumWaitingTime */, null /* geometries */, System.currentTimeMillis()); null /* geometries */, System.currentTimeMillis(), slotIndex); } } /** /** Loading @@ -227,7 +229,8 @@ public final class SmsCbMessage implements Parcelable { public SmsCbMessage(int messageFormat, int geographicalScope, int serialNumber, public SmsCbMessage(int messageFormat, int geographicalScope, int serialNumber, SmsCbLocation location, int serviceCategory, String language, String body, SmsCbLocation location, int serviceCategory, String language, String body, int priority, SmsCbEtwsInfo etwsWarningInfo, SmsCbCmasInfo cmasWarningInfo, int priority, SmsCbEtwsInfo etwsWarningInfo, SmsCbCmasInfo cmasWarningInfo, int maximumWaitTimeSec, List<Geometry> geometries, long receivedTimeMillis) { int maximumWaitTimeSec, List<Geometry> geometries, long receivedTimeMillis, int slotIndex) { mMessageFormat = messageFormat; mMessageFormat = messageFormat; mGeographicalScope = geographicalScope; mGeographicalScope = geographicalScope; mSerialNumber = serialNumber; mSerialNumber = serialNumber; Loading @@ -241,6 +244,7 @@ public final class SmsCbMessage implements Parcelable { mReceivedTimeMillis = receivedTimeMillis; mReceivedTimeMillis = receivedTimeMillis; mGeometries = geometries; mGeometries = geometries; mMaximumWaitTimeSec = maximumWaitTimeSec; mMaximumWaitTimeSec = maximumWaitTimeSec; mSlotIndex = slotIndex; } } /** /** Loading Loading @@ -278,6 +282,7 @@ public final class SmsCbMessage implements Parcelable { String geoStr = in.readString(); String geoStr = in.readString(); mGeometries = geoStr != null ? CbGeoUtils.parseGeometriesFromString(geoStr) : null; mGeometries = geoStr != null ? CbGeoUtils.parseGeometriesFromString(geoStr) : null; mMaximumWaitTimeSec = in.readInt(); mMaximumWaitTimeSec = in.readInt(); mSlotIndex = in.readInt(); } } /** /** Loading Loading @@ -312,6 +317,7 @@ public final class SmsCbMessage implements Parcelable { dest.writeString( dest.writeString( mGeometries != null ? CbGeoUtils.encodeGeometriesToString(mGeometries) : null); mGeometries != null ? CbGeoUtils.encodeGeometriesToString(mGeometries) : null); dest.writeInt(mMaximumWaitTimeSec); dest.writeInt(mMaximumWaitTimeSec); dest.writeInt(mSlotIndex); } } @NonNull @NonNull Loading Loading @@ -422,6 +428,14 @@ public final class SmsCbMessage implements Parcelable { return mReceivedTimeMillis; return mReceivedTimeMillis; } } /** * Get the slotIndex associated with this message. * @return the slotIndex associated with this message */ public int getSlotIndex() { return mSlotIndex; } /** /** * Get the message format ({@link #MESSAGE_FORMAT_3GPP} or {@link #MESSAGE_FORMAT_3GPP2}). * Get the message format ({@link #MESSAGE_FORMAT_3GPP} or {@link #MESSAGE_FORMAT_3GPP2}). * @return an integer representing 3GPP or 3GPP2 message format * @return an integer representing 3GPP or 3GPP2 message format Loading Loading @@ -502,6 +516,7 @@ public final class SmsCbMessage implements Parcelable { + (mEtwsWarningInfo != null ? (", " + mEtwsWarningInfo.toString()) : "") + (mEtwsWarningInfo != null ? (", " + mEtwsWarningInfo.toString()) : "") + (mCmasWarningInfo != null ? (", " + mCmasWarningInfo.toString()) : "") + (mCmasWarningInfo != null ? (", " + mCmasWarningInfo.toString()) : "") + ", maximumWaitingTime = " + mMaximumWaitTimeSec + ", maximumWaitingTime = " + mMaximumWaitTimeSec + ", slotIndex = " + mSlotIndex + ", geo=" + (mGeometries != null + ", geo=" + (mGeometries != null ? CbGeoUtils.encodeGeometriesToString(mGeometries) : "null") ? CbGeoUtils.encodeGeometriesToString(mGeometries) : "null") + '}'; + '}'; Loading @@ -522,6 +537,7 @@ public final class SmsCbMessage implements Parcelable { @NonNull @NonNull public ContentValues getContentValues() { public ContentValues getContentValues() { ContentValues cv = new ContentValues(16); ContentValues cv = new ContentValues(16); cv.put(CellBroadcasts.SLOT_INDEX, mSlotIndex); cv.put(CellBroadcasts.GEOGRAPHICAL_SCOPE, mGeographicalScope); cv.put(CellBroadcasts.GEOGRAPHICAL_SCOPE, mGeographicalScope); if (mLocation.getPlmn() != null) { if (mLocation.getPlmn() != null) { cv.put(CellBroadcasts.PLMN, mLocation.getPlmn()); cv.put(CellBroadcasts.PLMN, mLocation.getPlmn()); Loading Loading @@ -563,6 +579,7 @@ public final class SmsCbMessage implements Parcelable { } } cv.put(CellBroadcasts.MAXIMUM_WAIT_TIME, mMaximumWaitTimeSec); cv.put(CellBroadcasts.MAXIMUM_WAIT_TIME, mMaximumWaitTimeSec); cv.put(CellBroadcasts.SLOT_INDEX, mSlotIndex); return cv; return cv; } } Loading @@ -584,6 +601,7 @@ public final class SmsCbMessage implements Parcelable { String body = cursor.getString(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_BODY)); String body = cursor.getString(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_BODY)); int format = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_FORMAT)); int format = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_FORMAT)); int priority = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_PRIORITY)); int priority = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_PRIORITY)); int slotIndex = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.SLOT_INDEX)); String plmn; String plmn; int plmnColumn = cursor.getColumnIndex(CellBroadcasts.PLMN); int plmnColumn = cursor.getColumnIndex(CellBroadcasts.PLMN); Loading Loading @@ -681,7 +699,7 @@ public final class SmsCbMessage implements Parcelable { return new SmsCbMessage(format, geoScope, serialNum, location, category, return new SmsCbMessage(format, geoScope, serialNum, location, category, language, body, priority, etwsInfo, cmasInfo, maximumWaitTimeSec, geometries, language, body, priority, etwsInfo, cmasInfo, maximumWaitTimeSec, geometries, receivedTimeMillis); receivedTimeMillis, slotIndex); } } /** /** Loading telephony/java/com/android/internal/telephony/cdma/SmsMessage.java +3 −2 Original line number Original line Diff line number Diff line Loading @@ -859,8 +859,9 @@ public class SmsMessage extends SmsMessageBase { * Parses a broadcast SMS, possibly containing a CMAS alert. * Parses a broadcast SMS, possibly containing a CMAS alert. * * * @param plmn the PLMN for a broadcast SMS * @param plmn the PLMN for a broadcast SMS * @param subId */ */ public SmsCbMessage parseBroadcastSms(String plmn) { public SmsCbMessage parseBroadcastSms(String plmn, int subId) { BearerData bData = BearerData.decode(mEnvelope.bearerData, mEnvelope.serviceCategory); BearerData bData = BearerData.decode(mEnvelope.bearerData, mEnvelope.serviceCategory); if (bData == null) { if (bData == null) { Rlog.w(LOG_TAG, "BearerData.decode() returned null"); Rlog.w(LOG_TAG, "BearerData.decode() returned null"); Loading @@ -876,7 +877,7 @@ public class SmsMessage extends SmsMessageBase { return new SmsCbMessage(SmsCbMessage.MESSAGE_FORMAT_3GPP2, return new SmsCbMessage(SmsCbMessage.MESSAGE_FORMAT_3GPP2, SmsCbMessage.GEOGRAPHICAL_SCOPE_PLMN_WIDE, bData.messageId, location, SmsCbMessage.GEOGRAPHICAL_SCOPE_PLMN_WIDE, bData.messageId, location, mEnvelope.serviceCategory, bData.getLanguage(), bData.userData.payloadStr, mEnvelope.serviceCategory, bData.getLanguage(), bData.userData.payloadStr, bData.priority, null, bData.cmasWarningInfo); bData.priority, null, bData.cmasWarningInfo, subId); } } /** /** Loading telephony/java/com/android/internal/telephony/gsm/GsmSmsCbMessage.java +5 −4 Original line number Original line Diff line number Diff line Loading @@ -90,9 +90,10 @@ public class GsmSmsCbMessage { * Create a new SmsCbMessage object from a header object plus one or more received PDUs. * Create a new SmsCbMessage object from a header object plus one or more received PDUs. * * * @param pdus PDU bytes * @param pdus PDU bytes * @slotIndex slotIndex for which received sms cb message */ */ public static SmsCbMessage createSmsCbMessage(Context context, SmsCbHeader header, public static SmsCbMessage createSmsCbMessage(Context context, SmsCbHeader header, SmsCbLocation location, byte[][] pdus) SmsCbLocation location, byte[][] pdus, int slotIndex) throws IllegalArgumentException { throws IllegalArgumentException { long receivedTimeMillis = System.currentTimeMillis(); long receivedTimeMillis = System.currentTimeMillis(); if (header.isEtwsPrimaryNotification()) { if (header.isEtwsPrimaryNotification()) { Loading @@ -104,7 +105,7 @@ public class GsmSmsCbMessage { header.getSerialNumber(), location, header.getServiceCategory(), null, header.getSerialNumber(), location, header.getServiceCategory(), null, getEtwsPrimaryMessage(context, header.getEtwsInfo().getWarningType()), getEtwsPrimaryMessage(context, header.getEtwsInfo().getWarningType()), SmsCbMessage.MESSAGE_PRIORITY_EMERGENCY, header.getEtwsInfo(), SmsCbMessage.MESSAGE_PRIORITY_EMERGENCY, header.getEtwsInfo(), header.getCmasInfo(), 0, null /* geometries */, receivedTimeMillis); header.getCmasInfo(), 0, null /* geometries */, receivedTimeMillis, slotIndex); } else if (header.isUmtsFormat()) { } else if (header.isUmtsFormat()) { // UMTS format has only 1 PDU // UMTS format has only 1 PDU byte[] pdu = pdus[0]; byte[] pdu = pdus[0]; Loading Loading @@ -138,7 +139,7 @@ public class GsmSmsCbMessage { header.getGeographicalScope(), header.getSerialNumber(), location, header.getGeographicalScope(), header.getSerialNumber(), location, header.getServiceCategory(), language, body, priority, header.getServiceCategory(), language, body, priority, header.getEtwsInfo(), header.getCmasInfo(), maximumWaitingTimeSec, geometries, header.getEtwsInfo(), header.getCmasInfo(), maximumWaitingTimeSec, geometries, receivedTimeMillis); receivedTimeMillis, slotIndex); } else { } else { String language = null; String language = null; StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder(); Loading @@ -154,7 +155,7 @@ public class GsmSmsCbMessage { header.getGeographicalScope(), header.getSerialNumber(), location, header.getGeographicalScope(), header.getSerialNumber(), location, header.getServiceCategory(), language, sb.toString(), priority, header.getServiceCategory(), language, sb.toString(), priority, header.getEtwsInfo(), header.getCmasInfo(), 0, null /* geometries */, header.getEtwsInfo(), header.getCmasInfo(), 0, null /* geometries */, receivedTimeMillis); receivedTimeMillis, slotIndex); } } } } Loading Loading
api/system-current.txt +2 −1 Original line number Original line Diff line number Diff line Loading @@ -8033,7 +8033,7 @@ package android.telephony { } } public final class SmsCbMessage implements android.os.Parcelable { public final class SmsCbMessage implements android.os.Parcelable { ctor public SmsCbMessage(int, int, int, @NonNull android.telephony.SmsCbLocation, int, @Nullable String, @Nullable String, int, @Nullable android.telephony.SmsCbEtwsInfo, @Nullable android.telephony.SmsCbCmasInfo); ctor public SmsCbMessage(int, int, int, @NonNull android.telephony.SmsCbLocation, int, @Nullable String, @Nullable String, int, @Nullable android.telephony.SmsCbEtwsInfo, @Nullable android.telephony.SmsCbCmasInfo, int); method @NonNull public static android.telephony.SmsCbMessage createFromCursor(@NonNull android.database.Cursor); method @NonNull public static android.telephony.SmsCbMessage createFromCursor(@NonNull android.database.Cursor); method public int describeContents(); method public int describeContents(); method @Nullable public android.telephony.SmsCbCmasInfo getCmasWarningInfo(); method @Nullable public android.telephony.SmsCbCmasInfo getCmasWarningInfo(); Loading @@ -8048,6 +8048,7 @@ package android.telephony { method public long getReceivedTime(); method public long getReceivedTime(); method public int getSerialNumber(); method public int getSerialNumber(); method public int getServiceCategory(); method public int getServiceCategory(); method public int getSlotIndex(); method public boolean isCmasMessage(); method public boolean isCmasMessage(); method public boolean isEmergencyMessage(); method public boolean isEmergencyMessage(); method public boolean isEtwsMessage(); method public boolean isEtwsMessage();
telephony/java/android/provider/Telephony.java +11 −2 Original line number Original line Diff line number Diff line Loading @@ -3963,12 +3963,20 @@ public final class Telephony { public static final Uri CONTENT_URI = Uri.parse("content://cellbroadcasts"); public static final Uri CONTENT_URI = Uri.parse("content://cellbroadcasts"); /** /** * The id of the subscription which received this cell broadcast message. * The subscription which received this cell broadcast message. * @deprecated use {@link #SLOT_INDEX} instead. * <P>Type: INTEGER</P> * <P>Type: INTEGER</P> * @hide * @hide */ */ public static final String SUB_ID = "sub_id"; public static final String SUB_ID = "sub_id"; /** * The slot which received this cell broadcast message. * <P>Type: INTEGER</P> * @hide */ public static final String SLOT_INDEX = "slot_index"; /** /** * Message geographical scope. Valid values are: * Message geographical scope. Valid values are: * <ul> * <ul> Loading Loading @@ -4203,7 +4211,7 @@ public final class Telephony { public static final String MAXIMUM_WAIT_TIME = "maximum_wait_time"; public static final String MAXIMUM_WAIT_TIME = "maximum_wait_time"; /** /** * Query columns for instantiating {@link android.telephony.CellBroadcastMessage} objects. * Query columns for instantiating com.android.cellbroadcastreceiver.CellBroadcastMessage. * @hide * @hide */ */ @NonNull @NonNull Loading Loading @@ -4236,6 +4244,7 @@ public final class Telephony { */ */ public static final String[] QUERY_COLUMNS_FWK = { public static final String[] QUERY_COLUMNS_FWK = { _ID, _ID, SLOT_INDEX, GEOGRAPHICAL_SCOPE, GEOGRAPHICAL_SCOPE, PLMN, PLMN, LAC, LAC, Loading
telephony/java/android/telephony/SmsCbMessage.java +22 −4 Original line number Original line Diff line number Diff line Loading @@ -207,17 +207,19 @@ public final class SmsCbMessage implements Parcelable { /** CMAS warning area coordinates. */ /** CMAS warning area coordinates. */ private final List<Geometry> mGeometries; private final List<Geometry> mGeometries; private int mSlotIndex = 0; /** /** * Create a new SmsCbMessage with the specified data. * Create a new SmsCbMessage with the specified data. */ */ public SmsCbMessage(int messageFormat, int geographicalScope, int serialNumber, public SmsCbMessage(int messageFormat, int geographicalScope, int serialNumber, @NonNull SmsCbLocation location, int serviceCategory, @Nullable String language, @NonNull SmsCbLocation location, int serviceCategory, @Nullable String language, @Nullable String body, int priority, @Nullable SmsCbEtwsInfo etwsWarningInfo, @Nullable String body, int priority, @Nullable SmsCbEtwsInfo etwsWarningInfo, @Nullable SmsCbCmasInfo cmasWarningInfo) { @Nullable SmsCbCmasInfo cmasWarningInfo, int slotIndex) { this(messageFormat, geographicalScope, serialNumber, location, serviceCategory, language, this(messageFormat, geographicalScope, serialNumber, location, serviceCategory, language, body, priority, etwsWarningInfo, cmasWarningInfo, 0 /* maximumWaitingTime */, body, priority, etwsWarningInfo, cmasWarningInfo, 0 /* maximumWaitingTime */, null /* geometries */, System.currentTimeMillis()); null /* geometries */, System.currentTimeMillis(), slotIndex); } } /** /** Loading @@ -227,7 +229,8 @@ public final class SmsCbMessage implements Parcelable { public SmsCbMessage(int messageFormat, int geographicalScope, int serialNumber, public SmsCbMessage(int messageFormat, int geographicalScope, int serialNumber, SmsCbLocation location, int serviceCategory, String language, String body, SmsCbLocation location, int serviceCategory, String language, String body, int priority, SmsCbEtwsInfo etwsWarningInfo, SmsCbCmasInfo cmasWarningInfo, int priority, SmsCbEtwsInfo etwsWarningInfo, SmsCbCmasInfo cmasWarningInfo, int maximumWaitTimeSec, List<Geometry> geometries, long receivedTimeMillis) { int maximumWaitTimeSec, List<Geometry> geometries, long receivedTimeMillis, int slotIndex) { mMessageFormat = messageFormat; mMessageFormat = messageFormat; mGeographicalScope = geographicalScope; mGeographicalScope = geographicalScope; mSerialNumber = serialNumber; mSerialNumber = serialNumber; Loading @@ -241,6 +244,7 @@ public final class SmsCbMessage implements Parcelable { mReceivedTimeMillis = receivedTimeMillis; mReceivedTimeMillis = receivedTimeMillis; mGeometries = geometries; mGeometries = geometries; mMaximumWaitTimeSec = maximumWaitTimeSec; mMaximumWaitTimeSec = maximumWaitTimeSec; mSlotIndex = slotIndex; } } /** /** Loading Loading @@ -278,6 +282,7 @@ public final class SmsCbMessage implements Parcelable { String geoStr = in.readString(); String geoStr = in.readString(); mGeometries = geoStr != null ? CbGeoUtils.parseGeometriesFromString(geoStr) : null; mGeometries = geoStr != null ? CbGeoUtils.parseGeometriesFromString(geoStr) : null; mMaximumWaitTimeSec = in.readInt(); mMaximumWaitTimeSec = in.readInt(); mSlotIndex = in.readInt(); } } /** /** Loading Loading @@ -312,6 +317,7 @@ public final class SmsCbMessage implements Parcelable { dest.writeString( dest.writeString( mGeometries != null ? CbGeoUtils.encodeGeometriesToString(mGeometries) : null); mGeometries != null ? CbGeoUtils.encodeGeometriesToString(mGeometries) : null); dest.writeInt(mMaximumWaitTimeSec); dest.writeInt(mMaximumWaitTimeSec); dest.writeInt(mSlotIndex); } } @NonNull @NonNull Loading Loading @@ -422,6 +428,14 @@ public final class SmsCbMessage implements Parcelable { return mReceivedTimeMillis; return mReceivedTimeMillis; } } /** * Get the slotIndex associated with this message. * @return the slotIndex associated with this message */ public int getSlotIndex() { return mSlotIndex; } /** /** * Get the message format ({@link #MESSAGE_FORMAT_3GPP} or {@link #MESSAGE_FORMAT_3GPP2}). * Get the message format ({@link #MESSAGE_FORMAT_3GPP} or {@link #MESSAGE_FORMAT_3GPP2}). * @return an integer representing 3GPP or 3GPP2 message format * @return an integer representing 3GPP or 3GPP2 message format Loading Loading @@ -502,6 +516,7 @@ public final class SmsCbMessage implements Parcelable { + (mEtwsWarningInfo != null ? (", " + mEtwsWarningInfo.toString()) : "") + (mEtwsWarningInfo != null ? (", " + mEtwsWarningInfo.toString()) : "") + (mCmasWarningInfo != null ? (", " + mCmasWarningInfo.toString()) : "") + (mCmasWarningInfo != null ? (", " + mCmasWarningInfo.toString()) : "") + ", maximumWaitingTime = " + mMaximumWaitTimeSec + ", maximumWaitingTime = " + mMaximumWaitTimeSec + ", slotIndex = " + mSlotIndex + ", geo=" + (mGeometries != null + ", geo=" + (mGeometries != null ? CbGeoUtils.encodeGeometriesToString(mGeometries) : "null") ? CbGeoUtils.encodeGeometriesToString(mGeometries) : "null") + '}'; + '}'; Loading @@ -522,6 +537,7 @@ public final class SmsCbMessage implements Parcelable { @NonNull @NonNull public ContentValues getContentValues() { public ContentValues getContentValues() { ContentValues cv = new ContentValues(16); ContentValues cv = new ContentValues(16); cv.put(CellBroadcasts.SLOT_INDEX, mSlotIndex); cv.put(CellBroadcasts.GEOGRAPHICAL_SCOPE, mGeographicalScope); cv.put(CellBroadcasts.GEOGRAPHICAL_SCOPE, mGeographicalScope); if (mLocation.getPlmn() != null) { if (mLocation.getPlmn() != null) { cv.put(CellBroadcasts.PLMN, mLocation.getPlmn()); cv.put(CellBroadcasts.PLMN, mLocation.getPlmn()); Loading Loading @@ -563,6 +579,7 @@ public final class SmsCbMessage implements Parcelable { } } cv.put(CellBroadcasts.MAXIMUM_WAIT_TIME, mMaximumWaitTimeSec); cv.put(CellBroadcasts.MAXIMUM_WAIT_TIME, mMaximumWaitTimeSec); cv.put(CellBroadcasts.SLOT_INDEX, mSlotIndex); return cv; return cv; } } Loading @@ -584,6 +601,7 @@ public final class SmsCbMessage implements Parcelable { String body = cursor.getString(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_BODY)); String body = cursor.getString(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_BODY)); int format = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_FORMAT)); int format = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_FORMAT)); int priority = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_PRIORITY)); int priority = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_PRIORITY)); int slotIndex = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.SLOT_INDEX)); String plmn; String plmn; int plmnColumn = cursor.getColumnIndex(CellBroadcasts.PLMN); int plmnColumn = cursor.getColumnIndex(CellBroadcasts.PLMN); Loading Loading @@ -681,7 +699,7 @@ public final class SmsCbMessage implements Parcelable { return new SmsCbMessage(format, geoScope, serialNum, location, category, return new SmsCbMessage(format, geoScope, serialNum, location, category, language, body, priority, etwsInfo, cmasInfo, maximumWaitTimeSec, geometries, language, body, priority, etwsInfo, cmasInfo, maximumWaitTimeSec, geometries, receivedTimeMillis); receivedTimeMillis, slotIndex); } } /** /** Loading
telephony/java/com/android/internal/telephony/cdma/SmsMessage.java +3 −2 Original line number Original line Diff line number Diff line Loading @@ -859,8 +859,9 @@ public class SmsMessage extends SmsMessageBase { * Parses a broadcast SMS, possibly containing a CMAS alert. * Parses a broadcast SMS, possibly containing a CMAS alert. * * * @param plmn the PLMN for a broadcast SMS * @param plmn the PLMN for a broadcast SMS * @param subId */ */ public SmsCbMessage parseBroadcastSms(String plmn) { public SmsCbMessage parseBroadcastSms(String plmn, int subId) { BearerData bData = BearerData.decode(mEnvelope.bearerData, mEnvelope.serviceCategory); BearerData bData = BearerData.decode(mEnvelope.bearerData, mEnvelope.serviceCategory); if (bData == null) { if (bData == null) { Rlog.w(LOG_TAG, "BearerData.decode() returned null"); Rlog.w(LOG_TAG, "BearerData.decode() returned null"); Loading @@ -876,7 +877,7 @@ public class SmsMessage extends SmsMessageBase { return new SmsCbMessage(SmsCbMessage.MESSAGE_FORMAT_3GPP2, return new SmsCbMessage(SmsCbMessage.MESSAGE_FORMAT_3GPP2, SmsCbMessage.GEOGRAPHICAL_SCOPE_PLMN_WIDE, bData.messageId, location, SmsCbMessage.GEOGRAPHICAL_SCOPE_PLMN_WIDE, bData.messageId, location, mEnvelope.serviceCategory, bData.getLanguage(), bData.userData.payloadStr, mEnvelope.serviceCategory, bData.getLanguage(), bData.userData.payloadStr, bData.priority, null, bData.cmasWarningInfo); bData.priority, null, bData.cmasWarningInfo, subId); } } /** /** Loading
telephony/java/com/android/internal/telephony/gsm/GsmSmsCbMessage.java +5 −4 Original line number Original line Diff line number Diff line Loading @@ -90,9 +90,10 @@ public class GsmSmsCbMessage { * Create a new SmsCbMessage object from a header object plus one or more received PDUs. * Create a new SmsCbMessage object from a header object plus one or more received PDUs. * * * @param pdus PDU bytes * @param pdus PDU bytes * @slotIndex slotIndex for which received sms cb message */ */ public static SmsCbMessage createSmsCbMessage(Context context, SmsCbHeader header, public static SmsCbMessage createSmsCbMessage(Context context, SmsCbHeader header, SmsCbLocation location, byte[][] pdus) SmsCbLocation location, byte[][] pdus, int slotIndex) throws IllegalArgumentException { throws IllegalArgumentException { long receivedTimeMillis = System.currentTimeMillis(); long receivedTimeMillis = System.currentTimeMillis(); if (header.isEtwsPrimaryNotification()) { if (header.isEtwsPrimaryNotification()) { Loading @@ -104,7 +105,7 @@ public class GsmSmsCbMessage { header.getSerialNumber(), location, header.getServiceCategory(), null, header.getSerialNumber(), location, header.getServiceCategory(), null, getEtwsPrimaryMessage(context, header.getEtwsInfo().getWarningType()), getEtwsPrimaryMessage(context, header.getEtwsInfo().getWarningType()), SmsCbMessage.MESSAGE_PRIORITY_EMERGENCY, header.getEtwsInfo(), SmsCbMessage.MESSAGE_PRIORITY_EMERGENCY, header.getEtwsInfo(), header.getCmasInfo(), 0, null /* geometries */, receivedTimeMillis); header.getCmasInfo(), 0, null /* geometries */, receivedTimeMillis, slotIndex); } else if (header.isUmtsFormat()) { } else if (header.isUmtsFormat()) { // UMTS format has only 1 PDU // UMTS format has only 1 PDU byte[] pdu = pdus[0]; byte[] pdu = pdus[0]; Loading Loading @@ -138,7 +139,7 @@ public class GsmSmsCbMessage { header.getGeographicalScope(), header.getSerialNumber(), location, header.getGeographicalScope(), header.getSerialNumber(), location, header.getServiceCategory(), language, body, priority, header.getServiceCategory(), language, body, priority, header.getEtwsInfo(), header.getCmasInfo(), maximumWaitingTimeSec, geometries, header.getEtwsInfo(), header.getCmasInfo(), maximumWaitingTimeSec, geometries, receivedTimeMillis); receivedTimeMillis, slotIndex); } else { } else { String language = null; String language = null; StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder(); Loading @@ -154,7 +155,7 @@ public class GsmSmsCbMessage { header.getGeographicalScope(), header.getSerialNumber(), location, header.getGeographicalScope(), header.getSerialNumber(), location, header.getServiceCategory(), language, sb.toString(), priority, header.getServiceCategory(), language, sb.toString(), priority, header.getEtwsInfo(), header.getCmasInfo(), 0, null /* geometries */, header.getEtwsInfo(), header.getCmasInfo(), 0, null /* geometries */, receivedTimeMillis); receivedTimeMillis, slotIndex); } } } } Loading