libminradio: fix other cases of calls before rilConnected

- ResponseTrackerResult doesn't drop RadioError
- RESPOND_ERROR_IF_NOT_CONNECTED accepts varargs
- added getCellInfoList rilConnected guard

Bug: 405108602
Test: VtsHalRadioTargetTest
Flag: EXEMPT vendor HAL changes only
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:7495932c5ca997e8191d33f2f2c5c4127eb6b5e7)
Merged-In: I86af8af17011cdf18279c6e3a7d37a928920acc0
Change-Id: I86af8af17011cdf18279c6e3a7d37a928920acc0
diff --git a/radio/aidl/minradio/libminradio/include/libminradio/ResponseTracker.h b/radio/aidl/minradio/libminradio/include/libminradio/ResponseTracker.h
index 978d64c..a8f564e 100644
--- a/radio/aidl/minradio/libminradio/include/libminradio/ResponseTracker.h
+++ b/radio/aidl/minradio/libminradio/include/libminradio/ResponseTracker.h
@@ -56,14 +56,10 @@
 
   public:
     ResponseTrackerResult() : ResponseTrackerResultBase(ResultData::descriptor) {}
-    ResponseTrackerResult(::aidl::android::hardware::radio::RadioError error)
-        : ResponseTrackerResultBase(ResultData::descriptor, error) {}
     ResponseTrackerResult(::ndk::ScopedAStatus st)
         : ResponseTrackerResultBase(ResultData::descriptor, std::move(st)) {}
-    ResponseTrackerResult(ResultData data)
-        : ResponseTrackerResultBase(ResultData::descriptor,
-                                    ::aidl::android::hardware::radio::RadioError::NONE),
-          mResultData(data) {}
+    ResponseTrackerResult(ResultData data, ::aidl::android::hardware::radio::RadioError error)
+        : ResponseTrackerResultBase(ResultData::descriptor, error), mResultData(data) {}
 
     const ResultData& get() const {
         CHECK(expectOk()) << "Request failed";
@@ -126,7 +122,7 @@
     ::ndk::ScopedAStatus handle(const ::aidl::android::hardware::radio::RadioResponseInfo& info,
                                 const ResultData& data) {
         std::unique_ptr<ResponseTrackerResultBase> result =
-                std::make_unique<ResponseTrackerResult<ResultData>>(data);
+                std::make_unique<ResponseTrackerResult<ResultData>>(data, info.error);
         return handle(info, std::move(result));
     }
 
diff --git a/radio/aidl/minradio/libminradio/include/libminradio/response.h b/radio/aidl/minradio/libminradio/include/libminradio/response.h
index f101a04..57cf4a7 100644
--- a/radio/aidl/minradio/libminradio/include/libminradio/response.h
+++ b/radio/aidl/minradio/libminradio/include/libminradio/response.h
@@ -25,15 +25,15 @@
 aidl::android::hardware::radio::RadioResponseInfo errorResponse(
         int32_t serial, aidl::android::hardware::radio::RadioError error);
 
-#define RESPOND_ERROR_IF_NOT_CONNECTED(responseMethod) \
-    if (!mContext->isConnected()) RESPOND_NOT_CONNECTED(responseMethod);
+#define RESPOND_ERROR_IF_NOT_CONNECTED(responseMethod, ...) \
+    if (!mContext->isConnected()) RESPOND_NOT_CONNECTED(responseMethod, __VA_ARGS__);
 
-#define RESPOND_NOT_CONNECTED(responseMethod)                                               \
+#define RESPOND_NOT_CONNECTED(responseMethod, ...)                                          \
     {                                                                                       \
         LOG(WARNING) << (RADIO_MODULE ".") << __func__ << " called before rilConnected";    \
         const auto responseInfo = ::android::hardware::radio::minimal::errorResponse(       \
                 serial, ::aidl::android::hardware::radio::RadioError::RADIO_NOT_AVAILABLE); \
-        respond()->responseMethod(responseInfo, {});                                        \
+        respond()->responseMethod(responseInfo __VA_OPT__(, ) __VA_ARGS__);                 \
         return ok();                                                                        \
     }
 
diff --git a/radio/aidl/minradio/libminradio/network/RadioNetwork.cpp b/radio/aidl/minradio/libminradio/network/RadioNetwork.cpp
index ce3a17e..c6214cf 100644
--- a/radio/aidl/minradio/libminradio/network/RadioNetwork.cpp
+++ b/radio/aidl/minradio/libminradio/network/RadioNetwork.cpp
@@ -76,6 +76,7 @@
 
 ScopedAStatus RadioNetwork::getCellInfoList(int32_t serial) {
     LOG_CALL;
+    RESPOND_ERROR_IF_NOT_CONNECTED(getCellInfoListResponse, {});
     respond()->getCellInfoListResponse(noError(serial), getCellInfoListBase());
     return ok();
 }