Introduce IMS Cross SIM registration
Introduce IMS Cross SIM registration
Bug: 171391883
Test: Build
Change-Id: Idd79a0a1f453a36587b89257e88437c96bf6ff4e
diff --git a/core/api/current.txt b/core/api/current.txt
index 2c095eb..99790b5 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -38764,6 +38764,7 @@
field public static final int DIRECTION_UNKNOWN = -1; // 0xffffffff
field public static final int PROPERTY_ASSISTED_DIALING = 512; // 0x200
field public static final int PROPERTY_CONFERENCE = 1; // 0x1
+ field public static final int PROPERTY_CROSS_SIM = 16384; // 0x4000
field public static final int PROPERTY_EMERGENCY_CALLBACK_MODE = 4; // 0x4
field public static final int PROPERTY_ENTERPRISE_CALL = 32; // 0x20
field public static final int PROPERTY_GENERIC_CONFERENCE = 2; // 0x2
@@ -39057,6 +39058,7 @@
field public static final String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER";
field public static final String EXTRA_SIP_INVITE = "android.telecom.extra.SIP_INVITE";
field public static final int PROPERTY_ASSISTED_DIALING = 512; // 0x200
+ field public static final int PROPERTY_CROSS_SIM = 8192; // 0x2000
field public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 32; // 0x20
field public static final int PROPERTY_HIGH_DEF_AUDIO = 4; // 0x4
field public static final int PROPERTY_IS_ADHOC_CONFERENCE = 4096; // 0x1000
@@ -42577,6 +42579,7 @@
method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getRegistrationTransportType(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void registerImsRegistrationCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RegistrationManager.RegistrationCallback) throws android.telephony.ims.ImsException;
method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void unregisterImsRegistrationCallback(@NonNull android.telephony.ims.RegistrationManager.RegistrationCallback);
+ field public static final int ATTR_EPDG_OVER_CELL_INTERNET = 1; // 0x1
field public static final int REGISTRATION_STATE_NOT_REGISTERED = 0; // 0x0
field public static final int REGISTRATION_STATE_REGISTERED = 2; // 0x2
field public static final int REGISTRATION_STATE_REGISTERING = 1; // 0x1
@@ -42584,8 +42587,10 @@
public static class RegistrationManager.RegistrationCallback {
ctor public RegistrationManager.RegistrationCallback();
- method public void onRegistered(int);
- method public void onRegistering(int);
+ method @Deprecated public void onRegistered(int);
+ method public void onRegistered(int, int);
+ method @Deprecated public void onRegistering(int);
+ method public void onRegistering(int, int);
method public void onTechnologyChangeFailed(int, @NonNull android.telephony.ims.ImsReasonInfo);
method public void onUnregistered(@NonNull android.telephony.ims.ImsReasonInfo);
}
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index 370751c..a562721 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -12150,6 +12150,7 @@
field public static final String EXTRA_EXTENDING_TO_CONFERENCE_SUPPORTED = "android.telephony.ims.extra.EXTENDING_TO_CONFERENCE_SUPPORTED";
field public static final String EXTRA_FORWARDED_NUMBER = "android.telephony.ims.extra.FORWARDED_NUMBER";
field public static final String EXTRA_IS_CALL_PULL = "CallPull";
+ field public static final String EXTRA_IS_CROSS_SIM_CALL = "android.telephony.ims.extra.IS_CROSS_SIM_CALL";
field public static final String EXTRA_LOCATION = "android.telephony.ims.extra.LOCATION";
field public static final String EXTRA_OI = "oi";
field public static final String EXTRA_OIR = "oir";
@@ -12292,6 +12293,8 @@
@Deprecated public static class ImsMmTelManager.RegistrationCallback extends android.telephony.ims.RegistrationManager.RegistrationCallback {
ctor @Deprecated public ImsMmTelManager.RegistrationCallback();
+ method @Deprecated public void onRegistered(int);
+ method @Deprecated public void onRegistering(int);
}
public final class ImsReasonInfo implements android.os.Parcelable {
@@ -12931,6 +12934,7 @@
method public void triggerFullNetworkRegistration(@IntRange(from=100, to=699) int, @Nullable String);
method public void triggerSipDelegateDeregistration();
method public void updateSipDelegateRegistration();
+ field public static final int REGISTRATION_TECH_CROSS_SIM = 2; // 0x2
field public static final int REGISTRATION_TECH_IWLAN = 1; // 0x1
field public static final int REGISTRATION_TECH_LTE = 0; // 0x0
field public static final int REGISTRATION_TECH_NONE = -1; // 0xffffffff
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 3a593b9..5715b31 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -292,6 +292,17 @@
<!-- WFC, summary for Wi-Fi Only -->
<string name="wfc_mode_wifi_only_summary">Wi-Fi only</string>
+ <!-- Template for showing mobile network operator name while Cross SIM calling is active -->
+ <string-array name="crossSimSpnFormats" translatable="false">
+ <item>@string/crossSimFormat_spn</item>
+ <item>@string/crossSimFormat_spn_cross_sim_calling</item>
+ </string-array>
+
+ <!-- Spn during Cross-SIM Calling: "<operator> " [CHAR LIMIT=NONE] -->
+ <string name="crossSimFormat_spn"><xliff:g id="spn" example="Operator">%s</xliff:g></string>
+ <!-- Spn during Cross SIM Calling: "<operator> Cross-SIM Calling" [CHAR LIMIT=NONE] -->
+ <string name="crossSimFormat_spn_cross_sim_calling"><xliff:g id="spn" example="Operator">%s</xliff:g> Cross-SIM Calling</string>
+
<!--
{0} is one of "bearerServiceCode*"
{1} is dialing number
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 31b4edd..c2a3951 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -874,6 +874,7 @@
<java-symbol type="string" name="wfc_mode_wifi_preferred_summary" />
<java-symbol type="string" name="wfc_mode_cellular_preferred_summary" />
<java-symbol type="string" name="wfc_mode_wifi_only_summary" />
+ <java-symbol type="array" name="crossSimSpnFormats" />
<java-symbol type="string" name="policydesc_disableCamera" />
<java-symbol type="string" name="policydesc_encryptedStorage" />
<java-symbol type="string" name="policydesc_expirePassword" />
diff --git a/telecomm/java/android/telecom/Call.java b/telecomm/java/android/telecom/Call.java
index 1238e7b..044ea80 100755
--- a/telecomm/java/android/telecom/Call.java
+++ b/telecomm/java/android/telecom/Call.java
@@ -607,6 +607,11 @@
*/
public static final int PROPERTY_IS_ADHOC_CONFERENCE = 0x00002000;
+ /**
+ * Connection is using Cross SIM Calling.
+ */
+ public static final int PROPERTY_CROSS_SIM = 0x00004000;
+
//******************************************************************************************
// Next PROPERTY value: 0x00004000
//******************************************************************************************
@@ -798,6 +803,9 @@
if (hasProperty(properties, PROPERTY_IS_ADHOC_CONFERENCE)) {
builder.append(" PROPERTY_IS_ADHOC_CONFERENCE");
}
+ if (hasProperty(properties, PROPERTY_CROSS_SIM)) {
+ builder.append(" PROPERTY_CROSS_SIM");
+ }
builder.append("]");
return builder.toString();
}
diff --git a/telecomm/java/android/telecom/Connection.java b/telecomm/java/android/telecom/Connection.java
index 724a9e4..7a21b3a 100644
--- a/telecomm/java/android/telecom/Connection.java
+++ b/telecomm/java/android/telecom/Connection.java
@@ -527,9 +527,17 @@
*/
public static final int PROPERTY_IS_ADHOC_CONFERENCE = 1 << 12;
+ /**
+ * Connection is using cross sim technology.
+ * <p>
+ * Indicates that the {@link Connection} is using a cross sim technology which would
+ * register IMS over internet APN of default data subscription.
+ * <p>
+ */
+ public static final int PROPERTY_CROSS_SIM = 1 << 13;
//**********************************************************************************************
- // Next PROPERTY value: 1<<13
+ // Next PROPERTY value: 1<<14
//**********************************************************************************************
/**
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index a6e870f..e96c5bdc 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -9953,6 +9953,8 @@
* Valid return results are:
* - {@link ImsRegistrationImplBase#REGISTRATION_TECH_LTE} for LTE registration,
* - {@link ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN} for IWLAN registration, or
+ * - {@link ImsRegistrationImplBase#REGISTRATION_TECH_CROSS_SIM} for registration over
+ * other sim's internet, or
* - {@link ImsRegistrationImplBase#REGISTRATION_TECH_NONE} if we are not registered or the
* result is unavailable.
* Use {@link ImsMmTelManager.RegistrationCallback} instead.
diff --git a/telephony/java/android/telephony/ims/ImsCallProfile.java b/telephony/java/android/telephony/ims/ImsCallProfile.java
index b15f4ed..1faae42 100644
--- a/telephony/java/android/telephony/ims/ImsCallProfile.java
+++ b/telephony/java/android/telephony/ims/ImsCallProfile.java
@@ -445,6 +445,15 @@
public static final String EXTRA_FORWARDED_NUMBER =
"android.telephony.ims.extra.FORWARDED_NUMBER";
+ /**
+ * Extra key with an {@code boolean} value which can be set in
+ * {@link #setCallExtraBoolean(String, boolean)} to indicate whether call is a cross sim call.
+ * <p>
+ * Valid values are true if call is cross sim call else false.
+ */
+ public static final String EXTRA_IS_CROSS_SIM_CALL =
+ "android.telephony.ims.extra.IS_CROSS_SIM_CALL";
+
/** @hide */
public int mServiceType;
/** @hide */
diff --git a/telephony/java/android/telephony/ims/ImsMmTelManager.java b/telephony/java/android/telephony/ims/ImsMmTelManager.java
index fe443f8..fcb4782 100644
--- a/telephony/java/android/telephony/ims/ImsMmTelManager.java
+++ b/telephony/java/android/telephony/ims/ImsMmTelManager.java
@@ -716,6 +716,7 @@
*
* @param imsRegTech The IMS registration technology, can be one of the following:
* {@link ImsRegistrationImplBase#REGISTRATION_TECH_LTE},
+ * {@link ImsRegistrationImplBase#REGISTRATION_TECH_CROSS_SIM},
* {@link ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN}
* @param capability The IMS MmTel capability to query, can be one of the following:
* {@link MmTelFeature.MmTelCapabilities#CAPABILITY_TYPE_VOICE},
@@ -750,6 +751,7 @@
*
* @param imsRegTech The IMS registration technology, can be one of the following:
* {@link ImsRegistrationImplBase#REGISTRATION_TECH_LTE},
+ * {@link ImsRegistrationImplBase#REGISTRATION_TECH_CROSS_SIM},
* {@link ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN}
* @param capability The IMS MmTel capability to query, can be one of the following:
* {@link MmTelFeature.MmTelCapabilities#CAPABILITY_TYPE_VOICE},
diff --git a/telephony/java/android/telephony/ims/ImsRcsManager.java b/telephony/java/android/telephony/ims/ImsRcsManager.java
index ad461c0..f39e30b 100644
--- a/telephony/java/android/telephony/ims/ImsRcsManager.java
+++ b/telephony/java/android/telephony/ims/ImsRcsManager.java
@@ -390,6 +390,7 @@
* @param capability The RCS capability to query.
* @param radioTech The radio tech that this capability failed for, defined as
* {@link ImsRegistrationImplBase#REGISTRATION_TECH_LTE} or
+ * {@link ImsRegistrationImplBase#REGISTRATION_TECH_CROSS_SIM} or
* {@link ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN}.
* @return true if the RCS capability is capable for this subscription, false otherwise. This
* does not necessarily mean that we are registered for IMS and the capability is available, but
diff --git a/telephony/java/android/telephony/ims/RegistrationManager.java b/telephony/java/android/telephony/ims/RegistrationManager.java
index 1a78e16..8ed4838 100644
--- a/telephony/java/android/telephony/ims/RegistrationManager.java
+++ b/telephony/java/android/telephony/ims/RegistrationManager.java
@@ -24,6 +24,7 @@
import android.annotation.RequiresPermission;
import android.net.Uri;
import android.os.Binder;
+import android.os.Bundle;
import android.telephony.AccessNetworkConstants;
import android.telephony.ims.aidl.IImsRegistrationCallback;
import android.telephony.ims.feature.ImsFeature;
@@ -70,6 +71,29 @@
*/
int REGISTRATION_STATE_REGISTERED = 2;
+ /**
+ * @hide
+ */
+ // Defines the underlying radio technology type that we have registered for IMS over.
+ @IntDef(prefix = "ATTR_",
+ value = {
+ ATTR_EPDG_OVER_CELL_INTERNET,
+ },
+ flag = true)
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface ImsAttributes {}
+
+ /**
+ * Attribute to specify if EPDG tunnel is setup over cellular internet.
+ * if EPDG tunnel is setup over cellular internet then this bit will be set else the same will
+ * not be set.
+ */
+ int ATTR_EPDG_OVER_CELL_INTERNET = 0x00000001;
+
+ //******************************************************************************************
+ // Next attribute value: 0x00000002
+ //******************************************************************************************
+
/**@hide*/
// Translate ImsRegistrationImplBase API to new AccessNetworkConstant because WLAN
@@ -83,6 +107,11 @@
AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
put(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN,
AccessNetworkConstants.TRANSPORT_TYPE_WLAN);
+ /* As the cross sim will be using ePDG tunnel over internet, it behaves
+ like IWLAN in most cases. Hence setting the access type as IWLAN
+ */
+ put(ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM,
+ AccessNetworkConstants.TRANSPORT_TYPE_WLAN);
}};
/**
@@ -96,6 +125,7 @@
private final RegistrationCallback mLocalCallback;
private Executor mExecutor;
+ private Bundle mBundle = new Bundle();
RegistrationBinder(RegistrationCallback localCallback) {
mLocalCallback = localCallback;
@@ -107,8 +137,18 @@
final long callingIdentity = Binder.clearCallingIdentity();
try {
+ mExecutor.execute(() -> {
+ mLocalCallback.onRegistered(getAccessType(imsRadioTech));
+ });
+ int attributes = 0;
+ if (imsRadioTech == ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM) {
+ attributes = changeBitmask(attributes, ATTR_EPDG_OVER_CELL_INTERNET,
+ true);
+ }
+ final int finalattributes = attributes;
mExecutor.execute(() ->
- mLocalCallback.onRegistered(getAccessType(imsRadioTech)));
+ mLocalCallback.onRegistered(getAccessType(imsRadioTech),
+ finalattributes));
} finally {
restoreCallingIdentity(callingIdentity);
}
@@ -122,6 +162,15 @@
try {
mExecutor.execute(() ->
mLocalCallback.onRegistering(getAccessType(imsRadioTech)));
+ int attributes = 0;
+ if (imsRadioTech == ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM) {
+ attributes = changeBitmask(attributes, ATTR_EPDG_OVER_CELL_INTERNET,
+ true);
+ }
+ final int finalattributes = attributes;
+ mExecutor.execute(() ->
+ mLocalCallback.onRegistering(getAccessType(imsRadioTech),
+ finalattributes));
} finally {
restoreCallingIdentity(callingIdentity);
}
@@ -175,6 +224,22 @@
}
return RegistrationManager.IMS_REG_TO_ACCESS_TYPE_MAP.get(regType);
}
+
+ /**
+ * Changes a attribute bit-mask to add or remove an attribute.
+ *
+ * @param bitmask The bit-mask.
+ * @param bitfield The bit-field to change.
+ * @param enabled Whether the bit-field should be set or removed.
+ * @return The bit-mask with the bit-field changed.
+ */
+ private int changeBitmask(int bitmask, int bitfield, boolean enabled) {
+ if (enabled) {
+ return bitmask | bitfield;
+ } else {
+ return bitmask & ~bitfield;
+ }
+ }
}
private final RegistrationBinder mBinder = new RegistrationBinder(this);
@@ -183,19 +248,49 @@
* Notifies the framework when the IMS Provider is registered to the IMS network.
*
* @param imsTransportType the radio access technology.
+ * @deprecated Use {@link #onRegistered(int, int)} instead.
*/
+ @Deprecated
public void onRegistered(@AccessNetworkConstants.TransportType int imsTransportType) {
}
/**
+ * Notifies the framework when the IMS Provider is registered to the IMS network
+ * with corresponding attributes
+ *
+ * @param imsTransportType the radio access technology.
+ * @param registrationAttributes IMS registration attributes as a bitmap of attributes.
+ * Possible attributes are following
+ * <ul>
+ * <li>{@link #ATTR_EPDG_OVER_CELL_INTERNET}</li>
+ * </ul>
+ *
+ */
+ public void onRegistered(@AccessNetworkConstants.TransportType int imsTransportType,
+ @ImsAttributes int registrationAttributes) {
+ }
+
+ /**
* Notifies the framework when the IMS Provider is trying to register the IMS network.
*
* @param imsTransportType the radio access technology.
+ * @deprecated Use {@link #onRegistering(int, int)} instead.
*/
public void onRegistering(@AccessNetworkConstants.TransportType int imsTransportType) {
}
/**
+ * Notifies the framework when the IMS Provider is trying to register the IMS network.
+ *
+ * @param imsTransportType the radio access technology.
+ * @param registrationAttributes IMS registration attributes as a bitmap of attributes.
+ * Possible attributes are following
+ */
+ public void onRegistering(@AccessNetworkConstants.TransportType int imsTransportType,
+ @ImsAttributes int registrationAttributes) {
+ }
+
+ /**
* Notifies the framework when the IMS Provider is unregistered from the IMS network.
*
* @param info the {@link ImsReasonInfo} associated with why registration was disconnected.
diff --git a/telephony/java/android/telephony/ims/feature/CapabilityChangeRequest.java b/telephony/java/android/telephony/ims/feature/CapabilityChangeRequest.java
index 87a6873..c5b1c90 100644
--- a/telephony/java/android/telephony/ims/feature/CapabilityChangeRequest.java
+++ b/telephony/java/android/telephony/ims/feature/CapabilityChangeRequest.java
@@ -44,6 +44,7 @@
* along with an associated technology, defined as
* {@link ImsRegistrationImplBase#REGISTRATION_TECH_LTE} or
* {@link ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN}
+ * {@link ImsRegistrationImplBase#REGISTRATION_TECH_CROSS_SIM}
*/
public static class CapabilityPair {
private final int mCapability;
@@ -92,8 +93,9 @@
/**
* @return the stored radio technology, defined as
- * {@link ImsRegistrationImplBase#REGISTRATION_TECH_LTE} or
- * {@link ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN}
+ * {@link ImsRegistrationImplBase#REGISTRATION_TECH_LTE},
+ * {@link ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN} or
+ * {@link ImsRegistrationImplBase#REGISTRATION_TECH_CROSS_SIM}
*/
public @ImsRegistrationImplBase.ImsRegistrationTech int getRadioTech() {
return radioTech;
diff --git a/telephony/java/android/telephony/ims/feature/ImsFeature.java b/telephony/java/android/telephony/ims/feature/ImsFeature.java
index 96ca022..f34c004 100644
--- a/telephony/java/android/telephony/ims/feature/ImsFeature.java
+++ b/telephony/java/android/telephony/ims/feature/ImsFeature.java
@@ -199,8 +199,9 @@
* {@link MmTelFeature.MmTelCapabilities#CAPABILITY_TYPE_UT}, or
* {@link MmTelFeature.MmTelCapabilities#CAPABILITY_TYPE_SMS}.
* @param radioTech The radio tech that this capability failed for, defined as
- * {@link ImsRegistrationImplBase#REGISTRATION_TECH_LTE} or
- * {@link ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN}.
+ * {@link ImsRegistrationImplBase#REGISTRATION_TECH_LTE},
+ * {@link ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN} or
+ * {@link ImsRegistrationImplBase#REGISTRATION_TECH_CROSS_SIM}.
* @param reason The reason this capability was unable to be changed, defined as
* {@link #CAPABILITY_ERROR_GENERIC} or {@link #CAPABILITY_SUCCESS}.
*/
diff --git a/telephony/java/android/telephony/ims/stub/ImsRegistrationImplBase.java b/telephony/java/android/telephony/ims/stub/ImsRegistrationImplBase.java
index 088a7e2..4f753c3 100644
--- a/telephony/java/android/telephony/ims/stub/ImsRegistrationImplBase.java
+++ b/telephony/java/android/telephony/ims/stub/ImsRegistrationImplBase.java
@@ -55,7 +55,8 @@
@IntDef(value = {
REGISTRATION_TECH_NONE,
REGISTRATION_TECH_LTE,
- REGISTRATION_TECH_IWLAN
+ REGISTRATION_TECH_IWLAN,
+ REGISTRATION_TECH_CROSS_SIM
})
@Retention(RetentionPolicy.SOURCE)
public @interface ImsRegistrationTech {}
@@ -72,6 +73,11 @@
*/
public static final int REGISTRATION_TECH_IWLAN = 1;
+ /**
+ * IMS is registered to IMS via internet over second subscription.
+ */
+ public static final int REGISTRATION_TECH_CROSS_SIM = 2;
+
// Registration states, used to notify new ImsRegistrationImplBase#Callbacks of the current
// state.
// The unknown state is set as the initialization state. This is so that we do not call back
@@ -196,7 +202,8 @@
* Notify the framework that the device is connected to the IMS network.
*
* @param imsRadioTech the radio access technology. Valid values are defined as
- * {@link #REGISTRATION_TECH_LTE} and {@link #REGISTRATION_TECH_IWLAN}.
+ * {@link #REGISTRATION_TECH_LTE}, {@link #REGISTRATION_TECH_IWLAN} and
+ * {@link #REGISTRATION_TECH_CROSS_SIM}.
*/
public final void onRegistered(@ImsRegistrationTech int imsRadioTech) {
updateToState(imsRadioTech, RegistrationManager.REGISTRATION_STATE_REGISTERED);
@@ -214,7 +221,8 @@
* Notify the framework that the device is trying to connect the IMS network.
*
* @param imsRadioTech the radio access technology. Valid values are defined as
- * {@link #REGISTRATION_TECH_LTE} and {@link #REGISTRATION_TECH_IWLAN}.
+ * {@link #REGISTRATION_TECH_LTE}, {@link #REGISTRATION_TECH_IWLAN} and
+ * {@link #REGISTRATION_TECH_CROSS_SIM}.
*/
public final void onRegistering(@ImsRegistrationTech int imsRadioTech) {
updateToState(imsRadioTech, RegistrationManager.REGISTRATION_STATE_REGISTERING);
@@ -262,7 +270,8 @@
* Notify the framework that the handover from the current radio technology to the technology
* defined in {@code imsRadioTech} has failed.
* @param imsRadioTech The technology that has failed to be changed. Valid values are
- * {@link #REGISTRATION_TECH_LTE} and {@link #REGISTRATION_TECH_IWLAN}.
+ * {@link #REGISTRATION_TECH_LTE}, {@link #REGISTRATION_TECH_IWLAN} and
+ * {@link #REGISTRATION_TECH_CROSS_SIM}.
* @param info The {@link ImsReasonInfo} for the failure to change technology.
*/
public final void onTechnologyChangeFailed(@ImsRegistrationTech int imsRadioTech,
@@ -329,7 +338,8 @@
/**
* @return the current registration connection type. Valid values are
- * {@link #REGISTRATION_TECH_LTE} and {@link #REGISTRATION_TECH_IWLAN}
+ * {@link #REGISTRATION_TECH_LTE}, {@link #REGISTRATION_TECH_IWLAN} and
+ * {@link #REGISTRATION_TECH_CROSS_SIM}.
* @hide
*/
@VisibleForTesting