Loading api/system-current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -8033,7 +8033,7 @@ package android.telephony { } 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 public int describeContents(); method @Nullable public android.telephony.SmsCbCmasInfo getCmasWarningInfo(); Loading @@ -8048,6 +8048,7 @@ package android.telephony { method public long getReceivedTime(); method public int getSerialNumber(); method public int getServiceCategory(); method public int getSlotIndex(); method public boolean isCmasMessage(); method public boolean isEmergencyMessage(); method public boolean isEtwsMessage(); telephony/java/android/provider/Telephony.java +11 −2 Original line number Diff line number Diff line Loading @@ -3963,12 +3963,20 @@ public final class Telephony { 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> * @hide */ 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: * <ul> Loading Loading @@ -4203,7 +4211,7 @@ public final class Telephony { 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 */ @NonNull Loading Loading @@ -4236,6 +4244,7 @@ public final class Telephony { */ public static final String[] QUERY_COLUMNS_FWK = { _ID, SLOT_INDEX, GEOGRAPHICAL_SCOPE, PLMN, LAC, Loading telephony/java/android/telephony/SmsCbMessage.java +22 −4 Original line number Diff line number Diff line Loading @@ -207,17 +207,19 @@ public final class SmsCbMessage implements Parcelable { /** CMAS warning area coordinates. */ private final List<Geometry> mGeometries; private int mSlotIndex = 0; /** * Create a new SmsCbMessage with the specified data. */ public SmsCbMessage(int messageFormat, int geographicalScope, int serialNumber, @NonNull SmsCbLocation location, int serviceCategory, @Nullable String language, @Nullable String body, int priority, @Nullable SmsCbEtwsInfo etwsWarningInfo, @Nullable SmsCbCmasInfo cmasWarningInfo) { @Nullable SmsCbCmasInfo cmasWarningInfo, int slotIndex) { this(messageFormat, geographicalScope, serialNumber, location, serviceCategory, language, 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, SmsCbLocation location, int serviceCategory, String language, String body, int priority, SmsCbEtwsInfo etwsWarningInfo, SmsCbCmasInfo cmasWarningInfo, int maximumWaitTimeSec, List<Geometry> geometries, long receivedTimeMillis) { int maximumWaitTimeSec, List<Geometry> geometries, long receivedTimeMillis, int slotIndex) { mMessageFormat = messageFormat; mGeographicalScope = geographicalScope; mSerialNumber = serialNumber; Loading @@ -241,6 +244,7 @@ public final class SmsCbMessage implements Parcelable { mReceivedTimeMillis = receivedTimeMillis; mGeometries = geometries; mMaximumWaitTimeSec = maximumWaitTimeSec; mSlotIndex = slotIndex; } /** Loading Loading @@ -278,6 +282,7 @@ public final class SmsCbMessage implements Parcelable { String geoStr = in.readString(); mGeometries = geoStr != null ? CbGeoUtils.parseGeometriesFromString(geoStr) : null; mMaximumWaitTimeSec = in.readInt(); mSlotIndex = in.readInt(); } /** Loading Loading @@ -312,6 +317,7 @@ public final class SmsCbMessage implements Parcelable { dest.writeString( mGeometries != null ? CbGeoUtils.encodeGeometriesToString(mGeometries) : null); dest.writeInt(mMaximumWaitTimeSec); dest.writeInt(mSlotIndex); } @NonNull Loading Loading @@ -422,6 +428,14 @@ public final class SmsCbMessage implements Parcelable { 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}). * @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()) : "") + (mCmasWarningInfo != null ? (", " + mCmasWarningInfo.toString()) : "") + ", maximumWaitingTime = " + mMaximumWaitTimeSec + ", slotIndex = " + mSlotIndex + ", geo=" + (mGeometries != null ? CbGeoUtils.encodeGeometriesToString(mGeometries) : "null") + '}'; Loading @@ -522,6 +537,7 @@ public final class SmsCbMessage implements Parcelable { @NonNull public ContentValues getContentValues() { ContentValues cv = new ContentValues(16); cv.put(CellBroadcasts.SLOT_INDEX, mSlotIndex); cv.put(CellBroadcasts.GEOGRAPHICAL_SCOPE, mGeographicalScope); if (mLocation.getPlmn() != null) { 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.SLOT_INDEX, mSlotIndex); return cv; } Loading @@ -584,6 +601,7 @@ public final class SmsCbMessage implements Parcelable { String body = cursor.getString(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_BODY)); int format = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_FORMAT)); int priority = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_PRIORITY)); int slotIndex = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.SLOT_INDEX)); String 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, 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 Diff line number Diff line Loading @@ -859,8 +859,9 @@ public class SmsMessage extends SmsMessageBase { * Parses a broadcast SMS, possibly containing a CMAS alert. * * @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); if (bData == 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, SmsCbMessage.GEOGRAPHICAL_SCOPE_PLMN_WIDE, bData.messageId, location, 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 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. * * @param pdus PDU bytes * @slotIndex slotIndex for which received sms cb message */ public static SmsCbMessage createSmsCbMessage(Context context, SmsCbHeader header, SmsCbLocation location, byte[][] pdus) SmsCbLocation location, byte[][] pdus, int slotIndex) throws IllegalArgumentException { long receivedTimeMillis = System.currentTimeMillis(); if (header.isEtwsPrimaryNotification()) { Loading @@ -104,7 +105,7 @@ public class GsmSmsCbMessage { header.getSerialNumber(), location, header.getServiceCategory(), null, getEtwsPrimaryMessage(context, header.getEtwsInfo().getWarningType()), SmsCbMessage.MESSAGE_PRIORITY_EMERGENCY, header.getEtwsInfo(), header.getCmasInfo(), 0, null /* geometries */, receivedTimeMillis); header.getCmasInfo(), 0, null /* geometries */, receivedTimeMillis, slotIndex); } else if (header.isUmtsFormat()) { // UMTS format has only 1 PDU byte[] pdu = pdus[0]; Loading Loading @@ -138,7 +139,7 @@ public class GsmSmsCbMessage { header.getGeographicalScope(), header.getSerialNumber(), location, header.getServiceCategory(), language, body, priority, header.getEtwsInfo(), header.getCmasInfo(), maximumWaitingTimeSec, geometries, receivedTimeMillis); receivedTimeMillis, slotIndex); } else { String language = null; StringBuilder sb = new StringBuilder(); Loading @@ -154,7 +155,7 @@ public class GsmSmsCbMessage { header.getGeographicalScope(), header.getSerialNumber(), location, header.getServiceCategory(), language, sb.toString(), priority, header.getEtwsInfo(), header.getCmasInfo(), 0, null /* geometries */, receivedTimeMillis); receivedTimeMillis, slotIndex); } } Loading Loading
api/system-current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -8033,7 +8033,7 @@ package android.telephony { } 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 public int describeContents(); method @Nullable public android.telephony.SmsCbCmasInfo getCmasWarningInfo(); Loading @@ -8048,6 +8048,7 @@ package android.telephony { method public long getReceivedTime(); method public int getSerialNumber(); method public int getServiceCategory(); method public int getSlotIndex(); method public boolean isCmasMessage(); method public boolean isEmergencyMessage(); method public boolean isEtwsMessage();
telephony/java/android/provider/Telephony.java +11 −2 Original line number Diff line number Diff line Loading @@ -3963,12 +3963,20 @@ public final class Telephony { 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> * @hide */ 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: * <ul> Loading Loading @@ -4203,7 +4211,7 @@ public final class Telephony { 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 */ @NonNull Loading Loading @@ -4236,6 +4244,7 @@ public final class Telephony { */ public static final String[] QUERY_COLUMNS_FWK = { _ID, SLOT_INDEX, GEOGRAPHICAL_SCOPE, PLMN, LAC, Loading
telephony/java/android/telephony/SmsCbMessage.java +22 −4 Original line number Diff line number Diff line Loading @@ -207,17 +207,19 @@ public final class SmsCbMessage implements Parcelable { /** CMAS warning area coordinates. */ private final List<Geometry> mGeometries; private int mSlotIndex = 0; /** * Create a new SmsCbMessage with the specified data. */ public SmsCbMessage(int messageFormat, int geographicalScope, int serialNumber, @NonNull SmsCbLocation location, int serviceCategory, @Nullable String language, @Nullable String body, int priority, @Nullable SmsCbEtwsInfo etwsWarningInfo, @Nullable SmsCbCmasInfo cmasWarningInfo) { @Nullable SmsCbCmasInfo cmasWarningInfo, int slotIndex) { this(messageFormat, geographicalScope, serialNumber, location, serviceCategory, language, 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, SmsCbLocation location, int serviceCategory, String language, String body, int priority, SmsCbEtwsInfo etwsWarningInfo, SmsCbCmasInfo cmasWarningInfo, int maximumWaitTimeSec, List<Geometry> geometries, long receivedTimeMillis) { int maximumWaitTimeSec, List<Geometry> geometries, long receivedTimeMillis, int slotIndex) { mMessageFormat = messageFormat; mGeographicalScope = geographicalScope; mSerialNumber = serialNumber; Loading @@ -241,6 +244,7 @@ public final class SmsCbMessage implements Parcelable { mReceivedTimeMillis = receivedTimeMillis; mGeometries = geometries; mMaximumWaitTimeSec = maximumWaitTimeSec; mSlotIndex = slotIndex; } /** Loading Loading @@ -278,6 +282,7 @@ public final class SmsCbMessage implements Parcelable { String geoStr = in.readString(); mGeometries = geoStr != null ? CbGeoUtils.parseGeometriesFromString(geoStr) : null; mMaximumWaitTimeSec = in.readInt(); mSlotIndex = in.readInt(); } /** Loading Loading @@ -312,6 +317,7 @@ public final class SmsCbMessage implements Parcelable { dest.writeString( mGeometries != null ? CbGeoUtils.encodeGeometriesToString(mGeometries) : null); dest.writeInt(mMaximumWaitTimeSec); dest.writeInt(mSlotIndex); } @NonNull Loading Loading @@ -422,6 +428,14 @@ public final class SmsCbMessage implements Parcelable { 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}). * @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()) : "") + (mCmasWarningInfo != null ? (", " + mCmasWarningInfo.toString()) : "") + ", maximumWaitingTime = " + mMaximumWaitTimeSec + ", slotIndex = " + mSlotIndex + ", geo=" + (mGeometries != null ? CbGeoUtils.encodeGeometriesToString(mGeometries) : "null") + '}'; Loading @@ -522,6 +537,7 @@ public final class SmsCbMessage implements Parcelable { @NonNull public ContentValues getContentValues() { ContentValues cv = new ContentValues(16); cv.put(CellBroadcasts.SLOT_INDEX, mSlotIndex); cv.put(CellBroadcasts.GEOGRAPHICAL_SCOPE, mGeographicalScope); if (mLocation.getPlmn() != null) { 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.SLOT_INDEX, mSlotIndex); return cv; } Loading @@ -584,6 +601,7 @@ public final class SmsCbMessage implements Parcelable { String body = cursor.getString(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_BODY)); int format = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_FORMAT)); int priority = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.MESSAGE_PRIORITY)); int slotIndex = cursor.getInt(cursor.getColumnIndexOrThrow(CellBroadcasts.SLOT_INDEX)); String 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, 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 Diff line number Diff line Loading @@ -859,8 +859,9 @@ public class SmsMessage extends SmsMessageBase { * Parses a broadcast SMS, possibly containing a CMAS alert. * * @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); if (bData == 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, SmsCbMessage.GEOGRAPHICAL_SCOPE_PLMN_WIDE, bData.messageId, location, 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 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. * * @param pdus PDU bytes * @slotIndex slotIndex for which received sms cb message */ public static SmsCbMessage createSmsCbMessage(Context context, SmsCbHeader header, SmsCbLocation location, byte[][] pdus) SmsCbLocation location, byte[][] pdus, int slotIndex) throws IllegalArgumentException { long receivedTimeMillis = System.currentTimeMillis(); if (header.isEtwsPrimaryNotification()) { Loading @@ -104,7 +105,7 @@ public class GsmSmsCbMessage { header.getSerialNumber(), location, header.getServiceCategory(), null, getEtwsPrimaryMessage(context, header.getEtwsInfo().getWarningType()), SmsCbMessage.MESSAGE_PRIORITY_EMERGENCY, header.getEtwsInfo(), header.getCmasInfo(), 0, null /* geometries */, receivedTimeMillis); header.getCmasInfo(), 0, null /* geometries */, receivedTimeMillis, slotIndex); } else if (header.isUmtsFormat()) { // UMTS format has only 1 PDU byte[] pdu = pdus[0]; Loading Loading @@ -138,7 +139,7 @@ public class GsmSmsCbMessage { header.getGeographicalScope(), header.getSerialNumber(), location, header.getServiceCategory(), language, body, priority, header.getEtwsInfo(), header.getCmasInfo(), maximumWaitingTimeSec, geometries, receivedTimeMillis); receivedTimeMillis, slotIndex); } else { String language = null; StringBuilder sb = new StringBuilder(); Loading @@ -154,7 +155,7 @@ public class GsmSmsCbMessage { header.getGeographicalScope(), header.getSerialNumber(), location, header.getServiceCategory(), language, sb.toString(), priority, header.getEtwsInfo(), header.getCmasInfo(), 0, null /* geometries */, receivedTimeMillis); receivedTimeMillis, slotIndex); } } Loading