Added programInfoChanged callback.

Also, updated tuneComplete_1_1 and afSwitch_1_1 to match the new behavior
(not passing the whole ProgramInfo struct).

Bug: b/32621193
Test: VTS (none added)
Change-Id: Ic8aee15b05cb982d97e550fc0806f34fbe112e22
diff --git a/broadcastradio/1.1/default/Tuner.cpp b/broadcastradio/1.1/default/Tuner.cpp
index 3c43c2e..0238f14 100644
--- a/broadcastradio/1.1/default/Tuner.cpp
+++ b/broadcastradio/1.1/default/Tuner.cpp
@@ -126,9 +126,10 @@
     }
     mIsTuneCompleted = true;
 
-    mCallback->tuneComplete(Result::OK, mCurrentProgramInfo.base);
-    if (mCallback1_1 != nullptr) {
-        mCallback1_1->tuneComplete_1_1(Result::OK, mCurrentProgramInfo);
+    if (mCallback1_1 == nullptr) {
+        mCallback->tuneComplete(Result::OK, mCurrentProgramInfo.base);
+    } else {
+        mCallback1_1->tuneComplete_1_1(Result::OK, mCurrentProgramInfo.selector);
     }
 }
 
@@ -146,8 +147,9 @@
         auto task = [this, direction]() {
             ALOGI("Performing failed scan %s", toString(direction).c_str());
 
-            mCallback->tuneComplete(Result::TIMEOUT, {});
-            if (mCallback1_1 != nullptr) {
+            if (mCallback1_1 == nullptr) {
+                mCallback->tuneComplete(Result::TIMEOUT, {});
+            } else {
                 mCallback1_1->tuneComplete_1_1(Result::TIMEOUT, {});
             }
         };