Add triggerImsDeregistration to IRadioImsIndication
Bug: 216387835
Test: build & flash
Change-Id: I1ef313c993816ee86233cdc5f17380ed157c38ee
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioImsIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioImsIndication.aidl
index 06f7fa0..252da50 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioImsIndication.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioImsIndication.aidl
@@ -37,4 +37,5 @@
oneway void onConnectionSetupFailure(in android.hardware.radio.RadioIndicationType type, int token, in android.hardware.radio.ims.ConnectionFailureInfo info);
oneway void onAccessAllowed(in android.hardware.radio.RadioIndicationType type, int token);
oneway void notifyAnbr(in android.hardware.radio.RadioIndicationType type, int qosSessionId, android.hardware.radio.ims.ImsStreamDirection direction, int bitsPerSecond);
+ oneway void triggerImsDeregistration(in android.hardware.radio.RadioIndicationType type);
}
diff --git a/radio/aidl/android/hardware/radio/ims/IRadioImsIndication.aidl b/radio/aidl/android/hardware/radio/ims/IRadioImsIndication.aidl
index 317158c..ae35f21 100644
--- a/radio/aidl/android/hardware/radio/ims/IRadioImsIndication.aidl
+++ b/radio/aidl/android/hardware/radio/ims/IRadioImsIndication.aidl
@@ -57,4 +57,16 @@
*/
void notifyAnbr(in RadioIndicationType type, int qosSessionId, ImsStreamDirection direction,
int bitsPerSecond);
+
+ /**
+ * Fired by radio when a graceful IMS deregistration needs to be performed by telephony
+ * prior to radio performing network detach. Example scenarios are SIM refresh or user
+ * mode preference change which would cause network detach. The radio waits for the
+ * IMS deregistration, which will be notified by telephony via
+ * {@link IRadioIms#updateImsRegistrationInfo()}, or a certain timeout interval to start
+ * the network detach procedure.
+ *
+ * @param type Type of radio indication
+ */
+ void triggerImsDeregistration(in RadioIndicationType type);
}
diff --git a/radio/aidl/vts/radio_ims_indication.cpp b/radio/aidl/vts/radio_ims_indication.cpp
index f9c872f..6f6d4f2 100644
--- a/radio/aidl/vts/radio_ims_indication.cpp
+++ b/radio/aidl/vts/radio_ims_indication.cpp
@@ -31,4 +31,8 @@
ndk::ScopedAStatus RadioImsIndication::notifyAnbr(RadioIndicationType /*type*/,
int /*qosSessionId*/, ImsStreamDirection /*direction*/, int /*bitsPerSecond*/) {
return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus RadioImsIndication::triggerImsDeregistration(RadioIndicationType /*type*/) {
+ return ndk::ScopedAStatus::ok();
}
\ No newline at end of file
diff --git a/radio/aidl/vts/radio_ims_utils.h b/radio/aidl/vts/radio_ims_utils.h
index 61e4254..541077f 100644
--- a/radio/aidl/vts/radio_ims_utils.h
+++ b/radio/aidl/vts/radio_ims_utils.h
@@ -67,6 +67,8 @@
virtual ndk::ScopedAStatus notifyAnbr(RadioIndicationType type, int qosSessionId,
ImsStreamDirection direction, int bitsPerSecond) override;
+
+ virtual ndk::ScopedAStatus triggerImsDeregistration(RadioIndicationType type) override;
};
// The main test class for Radio AIDL Ims.