Cross SIM configuration API
Provide Cross SIM calling configuration API
Bug: 173250451
Test: CTS
Change-Id: Iead68e909eaaeeb5861c64edc9b975f43fbe33ae
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index c0f2816..8b33593 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -3924,6 +3924,50 @@
}
/**
+ * @return true if the user's setting for Voice over Cross SIM is enabled and false if it is not
+ * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+ * @param subId The subscription to use to check the configuration.
+ */
+ @Override
+ public boolean isCrossSimCallingEnabledByUser(int subId) {
+ TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+ mApp, subId, "isCrossSimCallingEnabledByUser");
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
+ return ImsManager.getInstance(mApp,
+ getSlotIndexOrException(subId)).isCrossSimCallingEnabledByUser();
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ /**
+ * Sets the user's setting for whether or not Voice over Cross SIM is enabled.
+ * Requires MODIFY_PHONE_STATE permission.
+ * @param subId The subscription to use to check the configuration.
+ * @param isEnabled true if the user's setting for Voice over Cross SIM is enabled,
+ * false otherwise
+ */
+ @Override
+ public void setCrossSimCallingEnabled(int subId, boolean isEnabled) {
+ TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp, subId,
+ "setCrossSimCallingEnabled");
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
+ ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
+ .setCrossSimCallingEnabled(isEnabled);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ /**
* Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
* @param subId The subscription to use to check the configuration.
*/