summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2018-03-30 17:50:11 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-03-30 17:50:11 +0000
commit86021cff1bda56f45d8b217068b0dae49acf83da (patch)
tree01849ca48169ad896f01139aaa28931d4de1f348
parent015f9609a48652814e643c5a293dda89d5805bb2 (diff)
parentdffc226e010a96fc78236fadc63c0dea868a7af1 (diff)
Merge "Workaround HAL 1.1 program list fetching limitation by preferring FM." into pi-dev
-rw-r--r--services/core/jni/BroadcastRadio/BroadcastRadioService.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/services/core/jni/BroadcastRadio/BroadcastRadioService.cpp b/services/core/jni/BroadcastRadio/BroadcastRadioService.cpp
index ecf1a33539e9..f7ca363e54a1 100644
--- a/services/core/jni/BroadcastRadio/BroadcastRadioService.cpp
+++ b/services/core/jni/BroadcastRadio/BroadcastRadioService.cpp
@@ -231,6 +231,13 @@ static jobject nativeOpenTuner(JNIEnv *env, jobject obj, long nativeContext, jin
return nullptr;
}
bandConfigHal = module.bands[0];
+
+ /* Prefer FM to workaround possible program list fetching limitation
+ * (if tuner scans only configured band for programs). */
+ auto fmIt = std::find_if(module.bands.begin(), module.bands.end(),
+ [](const BandConfig & band) { return utils::isFm(band.type); });
+ if (fmIt != module.bands.end()) bandConfigHal = *fmIt;
+
if (bandConfigHal.spacings.size() > 1) {
bandConfigHal.spacings = hidl_vec<uint32_t>({ *std::min_element(
bandConfigHal.spacings.begin(), bandConfigHal.spacings.end()) });