Remove a hack for 1.0/1.1 bitmap compatibility.

Instead, implement it correctly.
This hack was a quick jury-rigging before O MR1 FC.

Bug: b/36864090
Test: VTS
Change-Id: Ia9caff9228518ec573a85437e9070db777057359
diff --git a/broadcastradio/1.1/default/Tuner.cpp b/broadcastradio/1.1/default/Tuner.cpp
index 0723cf7..2af221e 100644
--- a/broadcastradio/1.1/default/Tuner.cpp
+++ b/broadcastradio/1.1/default/Tuner.cpp
@@ -34,6 +34,7 @@
 using V1_0::Band;
 using V1_0::BandConfig;
 using V1_0::Direction;
+using utils::HalRevision;
 
 using std::chrono::milliseconds;
 using std::lock_guard;
@@ -53,10 +54,7 @@
     : mCallback(callback),
       mCallback1_1(ITunerCallback::castFrom(callback).withDefault(nullptr)),
       mVirtualFm(make_fm_radio()),
-      mIsAnalogForced(false) {
-    // TODO (b/36864090): inject this data in a more elegant way
-    setCompatibilityLevel(mCallback1_1 == nullptr ? 1 : 2);
-}
+      mIsAnalogForced(false) {}
 
 void Tuner::forceClose() {
     lock_guard<mutex> lk(mMut);
@@ -111,6 +109,14 @@
     return info11;
 }
 
+HalRevision Tuner::getHalRev() const {
+    if (mCallback1_1 != nullptr) {
+        return HalRevision::V1_1;
+    } else {
+        return HalRevision::V1_0;
+    }
+}
+
 bool Tuner::isFmLocked() {
     if (!utils::isAmFm(utils::getType(mCurrentProgram))) return false;
     return mAmfmConfig.type == Band::FM_HD || mAmfmConfig.type == Band::FM;
@@ -125,7 +131,7 @@
     VirtualProgram virtualProgram;
     if (virtualRadio != nullptr && virtualRadio->getProgram(sel, virtualProgram)) {
         mCurrentProgram = virtualProgram.selector;
-        mCurrentProgramInfo = static_cast<ProgramInfo>(virtualProgram);
+        mCurrentProgramInfo = virtualProgram.getProgramInfo(getHalRev());
     } else {
         mCurrentProgram = sel;
         mCurrentProgramInfo = makeDummyProgramInfo(sel);
@@ -335,7 +341,7 @@
 
     auto list = virtualRadio.getProgramList();
     ALOGD("returning a list of %zu programs", list.size());
-    _hidl_cb(ProgramListResult::OK, hidl_vec<ProgramInfo>(list.begin(), list.end()));
+    _hidl_cb(ProgramListResult::OK, getProgramInfoVector(list, getHalRev()));
     return {};
 }