diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/current/android/hardware/radio/modem/IRadioModemIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/current/android/hardware/radio/modem/IRadioModemIndication.aidl index 20066f852a..3c06877587 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.modem/current/android/hardware/radio/modem/IRadioModemIndication.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/current/android/hardware/radio/modem/IRadioModemIndication.aidl @@ -40,4 +40,5 @@ interface IRadioModemIndication { oneway void radioCapabilityIndication(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.modem.RadioCapability rc); oneway void radioStateChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.modem.RadioState radioState); oneway void rilConnected(in android.hardware.radio.RadioIndicationType type); + oneway void onImeiMappingChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.modem.ImeiInfo imeiInfo); } diff --git a/radio/aidl/android/hardware/radio/modem/IRadioModemIndication.aidl b/radio/aidl/android/hardware/radio/modem/IRadioModemIndication.aidl index 4b98277125..ba3c510589 100644 --- a/radio/aidl/android/hardware/radio/modem/IRadioModemIndication.aidl +++ b/radio/aidl/android/hardware/radio/modem/IRadioModemIndication.aidl @@ -20,6 +20,7 @@ import android.hardware.radio.RadioIndicationType; import android.hardware.radio.modem.HardwareConfig; import android.hardware.radio.modem.RadioCapability; import android.hardware.radio.modem.RadioState; +import android.hardware.radio.modem.ImeiInfo; /** * Interface declaring unsolicited radio indications for modem APIs. @@ -76,4 +77,12 @@ oneway interface IRadioModemIndication { * @param type Type of radio indication */ void rilConnected(in RadioIndicationType type); + + /** + * Indicates when there is a change in the IMEI mapping. + * + * @param type Type of radio indication + * @param imeiInfo IMEI information + */ + void onImeiMappingChanged(in RadioIndicationType type, in ImeiInfo imeiInfo); } diff --git a/radio/aidl/compat/libradiocompat/include/libradiocompat/RadioIndication.h b/radio/aidl/compat/libradiocompat/include/libradiocompat/RadioIndication.h index f042456409..e6f2516cf4 100644 --- a/radio/aidl/compat/libradiocompat/include/libradiocompat/RadioIndication.h +++ b/radio/aidl/compat/libradiocompat/include/libradiocompat/RadioIndication.h @@ -26,6 +26,7 @@ #include #include #include +#include namespace android::hardware::radio::compat { @@ -208,7 +209,8 @@ class RadioIndication : public V1_6::IRadioIndication { Return simPhonebookRecordsReceived( V1_0::RadioIndicationType type, V1_6::PbReceivedStatus status, const hidl_vec& records) override; - + Return onImeiMappingChanged(V1_0::RadioIndicationType type, + ::aidl::android::hardware::radio::modem::ImeiInfo config); public: RadioIndication(std::shared_ptr context); diff --git a/radio/aidl/compat/libradiocompat/modem/RadioIndication-modem.cpp b/radio/aidl/compat/libradiocompat/modem/RadioIndication-modem.cpp index 851c93b921..990ccffc67 100644 --- a/radio/aidl/compat/libradiocompat/modem/RadioIndication-modem.cpp +++ b/radio/aidl/compat/libradiocompat/modem/RadioIndication-modem.cpp @@ -68,4 +68,11 @@ Return RadioIndication::rilConnected(V1_0::RadioIndicationType type) { return {}; } +Return RadioIndication::onImeiMappingChanged(V1_0::RadioIndicationType type, + ::aidl::android::hardware::radio::modem::ImeiInfo imeiInfo) { + LOG_CALL << type; + modemCb()->onImeiMappingChanged(toAidl(type), imeiInfo); + return {}; +} + } // namespace android::hardware::radio::compat diff --git a/radio/aidl/vts/radio_modem_indication.cpp b/radio/aidl/vts/radio_modem_indication.cpp index 0bfcd669c7..9f63cb0270 100644 --- a/radio/aidl/vts/radio_modem_indication.cpp +++ b/radio/aidl/vts/radio_modem_indication.cpp @@ -41,3 +41,8 @@ ndk::ScopedAStatus RadioModemIndication::radioStateChanged(RadioIndicationType / ndk::ScopedAStatus RadioModemIndication::rilConnected(RadioIndicationType /*type*/) { return ndk::ScopedAStatus::ok(); } + +ndk::ScopedAStatus RadioModemIndication::onImeiMappingChanged(RadioIndicationType /*type*/, + const ::aidl::android::hardware::radio::modem::ImeiInfo& /*imeiInfo*/) { + return ndk::ScopedAStatus::ok(); +} diff --git a/radio/aidl/vts/radio_modem_utils.h b/radio/aidl/vts/radio_modem_utils.h index d47bdeb921..aa99ea3a9b 100644 --- a/radio/aidl/vts/radio_modem_utils.h +++ b/radio/aidl/vts/radio_modem_utils.h @@ -109,6 +109,9 @@ class RadioModemIndication : public BnRadioModemIndication { RadioState radioState) override; virtual ndk::ScopedAStatus rilConnected(RadioIndicationType type) override; + + virtual ndk::ScopedAStatus onImeiMappingChanged(RadioIndicationType type, + const ::aidl::android::hardware::radio::modem::ImeiInfo& imeiInfo) override; }; // The main test class for Radio AIDL Modem.