summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2020-02-12 14:00:20 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-02-12 14:00:20 +0000
commit7b19135cc58d6cc47478a89df7ff592daeb4e334 (patch)
treecd105a2fa8e5dc2b23bff2e147e52db964b175c0
parentc1e78426b5632271e501bbc91ace4b8a68ee791e (diff)
parentf83594ce422bb487eebc6c2a3627de273a6c8fe7 (diff)
Merge "Don't crash system process on empty onTuneFailed" into qt-qpr1-dev
-rw-r--r--services/core/java/com/android/server/broadcastradio/hal2/Convert.java16
1 files changed, 13 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/broadcastradio/hal2/Convert.java b/services/core/java/com/android/server/broadcastradio/hal2/Convert.java
index 9730c9a1a380..ab5bef8b80a7 100644
--- a/services/core/java/com/android/server/broadcastradio/hal2/Convert.java
+++ b/services/core/java/com/android/server/broadcastradio/hal2/Convert.java
@@ -275,8 +275,18 @@ class Convert {
return hwSel;
}
- static @NonNull ProgramSelector programSelectorFromHal(
+ private static boolean isEmpty(
@NonNull android.hardware.broadcastradio.V2_0.ProgramSelector sel) {
+ if (sel.primaryId.type != 0) return false;
+ if (sel.primaryId.value != 0) return false;
+ if (sel.secondaryIds.size() != 0) return false;
+ return true;
+ }
+
+ static @Nullable ProgramSelector programSelectorFromHal(
+ @NonNull android.hardware.broadcastradio.V2_0.ProgramSelector sel) {
+ if (isEmpty(sel)) return null;
+
ProgramSelector.Identifier[] secondaryIds = sel.secondaryIds.stream().
map(Convert::programIdentifierFromHal).map(Objects::requireNonNull).
toArray(ProgramSelector.Identifier[]::new);
@@ -364,7 +374,7 @@ class Convert {
collect(Collectors.toList());
return new RadioManager.ProgramInfo(
- programSelectorFromHal(info.selector),
+ Objects.requireNonNull(programSelectorFromHal(info.selector)),
programIdentifierFromHal(info.logicallyTunedTo),
programIdentifierFromHal(info.physicallyTunedTo),
relatedContent,
@@ -402,7 +412,7 @@ class Convert {
public static @NonNull android.hardware.radio.Announcement announcementFromHal(
@NonNull Announcement hwAnnouncement) {
return new android.hardware.radio.Announcement(
- programSelectorFromHal(hwAnnouncement.selector),
+ Objects.requireNonNull(programSelectorFromHal(hwAnnouncement.selector)),
hwAnnouncement.type,
vendorInfoFromHal(hwAnnouncement.vendorInfo)
);