Store ETWS primary information in the database

ETWS primary/secondary flag needs to be saved in the
database in order to perform duplicate check later. Used the
hardcoded database column name because Android R API freezes.
Will remove the hardcode in the next Android release.

Fix: 157699377
Test: CtsTelephonyTestCases & CellBroadcastServiceTests
Change-Id: Iedec92a1f435f60ceb9f36637a1718adbbd7e2ae
This commit is contained in:
Jack Yu
2020-06-02 22:23:45 -07:00
parent 247144d4a2
commit 059be24240
2 changed files with 15 additions and 33 deletions

View File

@@ -4324,6 +4324,15 @@ public final class Telephony {
*/
public static final String ETWS_WARNING_TYPE = "etws_warning_type";
/**
* ETWS (Earthquake and Tsunami Warning System) primary message or not (ETWS alerts only).
* <p>See {@link android.telephony.SmsCbEtwsInfo}</p>
* <P>Type: BOOLEAN</P>
*
* @hide // TODO: Unhide this for S.
*/
public static final String ETWS_IS_PRIMARY = "etws_is_primary";
/**
* CMAS (Commercial Mobile Alert System) message class (CMAS alerts only).
* <p>See {@link android.telephony.SmsCbCmasInfo}</p>
@@ -4464,37 +4473,6 @@ public final class Telephony {
CMAS_URGENCY,
CMAS_CERTAINTY
};
/**
* Query columns for instantiating {@link android.telephony.SmsCbMessage} objects.
* @hide
*/
public static final String[] QUERY_COLUMNS_FWK = {
_ID,
SLOT_INDEX,
SUBSCRIPTION_ID,
GEOGRAPHICAL_SCOPE,
PLMN,
LAC,
CID,
SERIAL_NUMBER,
SERVICE_CATEGORY,
LANGUAGE_CODE,
MESSAGE_BODY,
MESSAGE_FORMAT,
MESSAGE_PRIORITY,
ETWS_WARNING_TYPE,
CMAS_MESSAGE_CLASS,
CMAS_CATEGORY,
CMAS_RESPONSE_TYPE,
CMAS_SEVERITY,
CMAS_URGENCY,
CMAS_CERTAINTY,
RECEIVED_TIME,
MESSAGE_BROADCASTED,
GEOMETRIES,
MAXIMUM_WAIT_TIME
};
}
/**

View File

@@ -594,6 +594,7 @@ public final class SmsCbMessage implements Parcelable {
SmsCbEtwsInfo etwsInfo = getEtwsWarningInfo();
if (etwsInfo != null) {
cv.put(CellBroadcasts.ETWS_WARNING_TYPE, etwsInfo.getWarningType());
cv.put(CellBroadcasts.ETWS_IS_PRIMARY, etwsInfo.isPrimary());
}
SmsCbCmasInfo cmasInfo = getCmasWarningInfo();
@@ -667,9 +668,12 @@ public final class SmsCbMessage implements Parcelable {
SmsCbEtwsInfo etwsInfo;
int etwsWarningTypeColumn = cursor.getColumnIndex(CellBroadcasts.ETWS_WARNING_TYPE);
if (etwsWarningTypeColumn != -1 && !cursor.isNull(etwsWarningTypeColumn)) {
int etwsIsPrimaryColumn = cursor.getColumnIndex(CellBroadcasts.ETWS_IS_PRIMARY);
if (etwsWarningTypeColumn != -1 && !cursor.isNull(etwsWarningTypeColumn)
&& etwsIsPrimaryColumn != -1 && !cursor.isNull(etwsIsPrimaryColumn)) {
int warningType = cursor.getInt(etwsWarningTypeColumn);
etwsInfo = new SmsCbEtwsInfo(warningType, false, false, false, null);
boolean isPrimary = cursor.getInt(etwsIsPrimaryColumn) != 0;
etwsInfo = new SmsCbEtwsInfo(warningType, false, false, isPrimary, null);
} else {
etwsInfo = null;
}