Refactor Broadcast Radio 1.1 VTS test.

Also apply some minor fixes and log tweaks to the default implementation.

Bug: b/36864490
Test: VTS
Change-Id: I16558d71c6cdee71854ecae9106b8a1c78032439
diff --git a/broadcastradio/1.1/default/Tuner.cpp b/broadcastradio/1.1/default/Tuner.cpp
index bb07f36..a36ec3f 100644
--- a/broadcastradio/1.1/default/Tuner.cpp
+++ b/broadcastradio/1.1/default/Tuner.cpp
@@ -105,9 +105,14 @@
     return info11;
 }
 
+bool Tuner::isFmLocked() {
+    if (!utils::isAmFm(utils::getType(mCurrentProgram))) return false;
+    return mAmfmConfig.type == Band::FM_HD || mAmfmConfig.type == Band::FM;
+}
+
 void Tuner::tuneInternalLocked(const ProgramSelector& sel) {
     VirtualRadio* virtualRadio = nullptr;
-    if (mAmfmConfig.type == Band::FM_HD || mAmfmConfig.type == Band::FM) {
+    if (isFmLocked()) {
         virtualRadio = &mVirtualFm;
     }
 
@@ -132,11 +137,11 @@
     lock_guard<mutex> lk(mMut);
     vector<VirtualProgram> list;
 
-    if (mAmfmConfig.type == Band::FM_HD || mAmfmConfig.type == Band::FM) {
+    if (isFmLocked()) {
         list = mVirtualFm.getProgramList();
     }
 
-    if (list.size() == 0) {
+    if (list.empty()) {
         mIsTuneCompleted = false;
         auto task = [this, direction]() {
             ALOGI("Performing failed scan %s", toString(direction).c_str());
@@ -288,14 +293,17 @@
 
 Return<void> Tuner::getProgramList(const hidl_string& filter __unused, getProgramList_cb _hidl_cb) {
     ALOGV("%s", __func__);
+    lock_guard<mutex> lk(mMut);
 
     auto& virtualRadio = mVirtualFm;
-    if (mAmfmConfig.type != Band::FM_HD && mAmfmConfig.type != Band::FM) {
+    if (!isFmLocked()) {
+        ALOGI("bands other than FM are not supported yet");
         _hidl_cb(ProgramListResult::OK, {});
         return Void();
     }
 
     auto list = virtualRadio.getProgramList();
+    ALOGD("returning a list of %zu programs", list.size());
     _hidl_cb(ProgramListResult::OK, vector<ProgramInfo>(list.begin(), list.end()));
     return Void();
 }