Cleanup for radioStateChanged.

Test: Basic telephony sanity
Bug: 32020264
Change-Id: I7b7675406409dbb92c3559499665fbe59030573b
diff --git a/libril/ril.cpp b/libril/ril.cpp
index 0323740..a4edf99 100644
--- a/libril/ril.cpp
+++ b/libril/ril.cpp
@@ -4439,9 +4439,7 @@
 {
     int unsolResponseIndex;
     int ret;
-    int64_t timeReceived = 0;
     bool shouldScheduleTimeout = false;
-    RIL_RadioState newState;
     RIL_SOCKET_ID soc_id = RIL_SOCKET_1;
 
 #if defined(ANDROID_MULTI_SIM)
@@ -4501,14 +4499,6 @@
     rwlockRet = pthread_rwlock_unlock(radioServiceRwlockPtr);
     assert(rwlockRet == 0);
 
-    // some things get more payload
-    switch(unsolResponse) {
-        case RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED:
-            newState = CALL_ONSTATEREQUEST(soc_id);
-            appendPrintBuf("%s {%s}", printBuf, radioStateToString(newState));
-            break;
-    }
-
     if (s_callbacks.version < 13) {
         if (shouldScheduleTimeout) {
             UserCallbackInfo *p_info = internalRequestTimedCallback(wakeTimeoutCallback, NULL,
@@ -4531,18 +4521,6 @@
             requestToString(unsolResponse), p.dataSize());
 #endif
 
-    switch (unsolResponse) {
-        case RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED:
-            rwlockRet = pthread_rwlock_rdlock(radioServiceRwlockPtr);
-            assert(rwlockRet == 0);
-
-            radio::radioStateChangedInd(soc_id, responseType, newState);
-
-            rwlockRet = pthread_rwlock_unlock(radioServiceRwlockPtr);
-            assert(rwlockRet == 0);
-            break;
-    }
-
     if (ret != 0 && unsolResponse == RIL_UNSOL_NITZ_TIME_RECEIVED) {
         // Unfortunately, NITZ time is not poll/update like everything
         // else in the system. So, if the upstream client isn't connected,
diff --git a/libril/ril_service.cpp b/libril/ril_service.cpp
index 952b966..c186459 100644
--- a/libril/ril_service.cpp
+++ b/libril/ril_service.cpp
@@ -5785,15 +5785,20 @@
             (RadioIndicationType::UNSOLICITED_ACK_EXP);
 }
 
-void radio::radioStateChangedInd(int slotId, int indicationType, RIL_RadioState radioState) {
+int radio::radioStateChangedInd(android::Parcel &p, int slotId, int requestNumber,
+                                 int indicationType, int token, RIL_Errno e, void *response,
+                                 size_t responseLen) {
     if (radioService[slotId] != NULL && radioService[slotId]->mRadioIndication != NULL) {
+        RadioState radioState = (RadioState) s_vendorFunctions->onStateRequest();
         RLOGD("radio::radioStateChangedInd: radioState %d", radioState);
         Return<void> retStatus = radioService[slotId]->mRadioIndication->radioStateChanged(
-                convertIntToRadioIndicationType(indicationType), (RadioState) radioState);
+                convertIntToRadioIndicationType(indicationType), radioState);
         radioService[slotId]->checkReturnStatus(retStatus);
     } else {
         RLOGE("radio::radioStateChangedInd: radioService[%d]->mRadioIndication == NULL", slotId);
     }
+
+    return 0;
 }
 
 int radio::callStateChangedInd(android::Parcel &p, int slotId, int requestNumber,
@@ -5812,8 +5817,8 @@
 }
 
 int radio::networkStateChangedInd(android::Parcel &p, int slotId, int requestNumber,
-                                       int indicationType, int token, RIL_Errno e, void *response,
-                                       size_t responseLen) {
+                                  int indicationType, int token, RIL_Errno e, void *response,
+                                  size_t responseLen) {
     if (radioService[slotId] != NULL && radioService[slotId]->mRadioIndication != NULL) {
         RLOGD("radio::networkStateChangedInd");
         Return<void> retStatus = radioService[slotId]->mRadioIndication->networkStateChanged(
diff --git a/libril/ril_service.h b/libril/ril_service.h
index 6e8e79c..58a7d13 100644
--- a/libril/ril_service.h
+++ b/libril/ril_service.h
@@ -534,7 +534,9 @@
 
 void acknowledgeRequest(int slotId, int serial);
 
-void radioStateChangedInd(int slotId, int indicationType, RIL_RadioState radioState);
+int radioStateChangedInd(android::Parcel &p, int slotId, int requestNumber,
+                          int indicationType, int token, RIL_Errno e, void *response,
+                          size_t responseLen);
 
 int callStateChangedInd(android::Parcel &p, int slotId, int requestNumber, int indType, int token,
                         RIL_Errno e, void *response, size_t responselen);
diff --git a/libril/ril_unsol_commands.h b/libril/ril_unsol_commands.h
index 3f34a88..a14d7bf 100644
--- a/libril/ril_unsol_commands.h
+++ b/libril/ril_unsol_commands.h
@@ -14,8 +14,7 @@
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
-    {RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED, responseVoid, WAKE_PARTIAL},
-
+    {RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED, radio::radioStateChangedInd, WAKE_PARTIAL},
     {RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED, radio::callStateChangedInd, WAKE_PARTIAL},
     {RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED, radio::networkStateChangedInd, WAKE_PARTIAL},
     {RIL_UNSOL_RESPONSE_NEW_SMS, radio::newSmsInd, WAKE_PARTIAL},