Merge "Add language and remove scope in radio alert" into main
diff --git a/core/java/android/hardware/radio/RadioAlert.java b/core/java/android/hardware/radio/RadioAlert.java
index b55dcd8..9b93e73 100644
--- a/core/java/android/hardware/radio/RadioAlert.java
+++ b/core/java/android/hardware/radio/RadioAlert.java
@@ -332,6 +332,7 @@
private final int mCertainty;
private final String mTextualMessage;
private final List<AlertArea> mAreaList;
+ @Nullable private final String mLanguage;
/**
* Constructor for alert info.
@@ -343,17 +344,19 @@
* @param textualMessage Textual descriptions of the subject event
* @param areaList The array of geographic areas to which the alert info segment in which
* it appears applies
+ * @param language The optional language field of the alert info
* @hide
*/
public AlertInfo(@NonNull List<Integer> categoryList, int urgency,
- int severity, int certainty,
- String textualMessage, @NonNull List<AlertArea> areaList) {
+ int severity, int certainty, String textualMessage,
+ @NonNull List<AlertArea> areaList, @Nullable String language) {
mCategoryList = Objects.requireNonNull(categoryList, "Category list can not be null");
mUrgency = urgency;
mSeverity = severity;
mCertainty = certainty;
mTextualMessage = textualMessage;
mAreaList = Objects.requireNonNull(areaList, "Area list can not be null");
+ mLanguage = language;
}
private AlertInfo(Parcel in) {
@@ -364,6 +367,12 @@
mTextualMessage = in.readString8();
mAreaList = new ArrayList<>();
in.readTypedList(mAreaList, AlertArea.CREATOR);
+ boolean hasLanguage = in.readBoolean();
+ if (hasLanguage) {
+ mLanguage = in.readString8();
+ } else {
+ mLanguage = null;
+ }
}
public static final @NonNull Creator<AlertInfo> CREATOR = new Creator<AlertInfo>() {
@@ -391,6 +400,12 @@
dest.writeInt(mCertainty);
dest.writeString8(mTextualMessage);
dest.writeTypedList(mAreaList);
+ if (mLanguage == null) {
+ dest.writeBoolean(false);
+ } else {
+ dest.writeBoolean(true);
+ dest.writeString8(mLanguage);
+ }
}
@NonNull
@@ -398,13 +413,14 @@
public String toString() {
return "AlertInfo [categoryList=" + mCategoryList + ", urgency=" + mUrgency
+ ", severity=" + mSeverity + ", certainty=" + mCertainty
- + ", textualMessage=" + mTextualMessage + ", areaList=" + mAreaList + "]";
+ + ", textualMessage=" + mTextualMessage + ", areaList=" + mAreaList
+ + ", language=" + mLanguage + "]";
}
@Override
public int hashCode() {
return Objects.hash(mCategoryList, mUrgency, mSeverity, mCertainty, mTextualMessage,
- mAreaList);
+ mAreaList, mLanguage);
}
@Override
@@ -419,14 +435,14 @@
return mCategoryList.equals(other.mCategoryList) && mUrgency == other.mUrgency
&& mSeverity == other.mSeverity && mCertainty == other.mCertainty
&& mTextualMessage.equals(other.mTextualMessage)
- && mAreaList.equals(other.mAreaList);
+ && mAreaList.equals(other.mAreaList)
+ && Objects.equals(mLanguage, other.mLanguage);
}
}
private final int mStatus;
private final int mMessageType;
private final List<AlertInfo> mInfoList;
- private final int mScope;
/**
* Constructor of radio alert message.
@@ -434,15 +450,13 @@
* @param status Status of alert message
* @param messageType Message type of alert message
* @param infoList List of alert info
- * @param scope Scope of alert message
* @hide
*/
public RadioAlert(int status, int messageType,
- @NonNull List<AlertInfo> infoList, int scope) {
+ @NonNull List<AlertInfo> infoList) {
mStatus = status;
mMessageType = messageType;
mInfoList = Objects.requireNonNull(infoList, "Alert info list can not be null");
- mScope = scope;
}
private RadioAlert(Parcel in) {
@@ -450,7 +464,6 @@
mMessageType = in.readInt();
mInfoList = in.readParcelableList(new ArrayList<>(), AlertInfo.class.getClassLoader(),
AlertInfo.class);
- mScope = in.readInt();
}
@Override
@@ -458,7 +471,6 @@
dest.writeInt(mStatus);
dest.writeInt(mMessageType);
dest.writeParcelableList(mInfoList, /* flags= */ 0);
- dest.writeInt(mScope);
}
@Override
@@ -470,12 +482,12 @@
@Override
public String toString() {
return "RadioAlert [status=" + mStatus + ", messageType=" + mMessageType
- + ", infoList= " + mInfoList + ", scope=" + mScope + "]";
+ + ", infoList= " + mInfoList + "]";
}
@Override
public int hashCode() {
- return Objects.hash(mStatus, mMessageType, mInfoList, mScope);
+ return Objects.hash(mStatus, mMessageType, mInfoList);
}
@Override
@@ -488,7 +500,7 @@
}
return mStatus == other.mStatus && mMessageType == other.mMessageType
- && mInfoList.equals(other.mInfoList) && mScope == other.mScope;
+ && mInfoList.equals(other.mInfoList);
}
public static final @NonNull Creator<RadioAlert> CREATOR = new Creator<RadioAlert>() {