Loading core/api/system-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -11555,6 +11555,7 @@ package android.telephony.ims { method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void createSipDelegate(@NonNull android.telephony.ims.DelegateRequest, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.stub.DelegateConnectionStateCallback, @NonNull android.telephony.ims.stub.DelegateConnectionMessageCallback) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void destroySipDelegate(@NonNull android.telephony.ims.SipDelegateConnection, int); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isSupported() throws android.telephony.ims.ImsException; method public void triggerFullNetworkRegistration(@NonNull android.telephony.ims.SipDelegateConnection, @IntRange(from=100, to=699) int, @Nullable String); field public static final int DENIED_REASON_INVALID = 4; // 0x4 field public static final int DENIED_REASON_IN_USE_BY_ANOTHER_DELEGATE = 1; // 0x1 field public static final int DENIED_REASON_NOT_ALLOWED = 2; // 0x2 Loading Loading @@ -11799,6 +11800,7 @@ package android.telephony.ims.stub { method public final void onRegistering(int); method public final void onSubscriberAssociatedUriChanged(android.net.Uri[]); method public final void onTechnologyChangeFailed(int, android.telephony.ims.ImsReasonInfo); method public void triggerFullNetworkRegistration(@IntRange(from=100, to=699) int, @Nullable String); 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 telephony/java/android/telephony/ims/SipDelegateManager.java +35 −0 Original line number Diff line number Diff line Loading @@ -18,7 +18,9 @@ package android.telephony.ims; import android.Manifest; import android.annotation.IntDef; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.content.Context; Loading Loading @@ -372,4 +374,37 @@ public class SipDelegateManager { + " into this method"); } } /** * Trigger a full network registration as required by receiving a SIP message containing a * permanent error from the network or never receiving a response to a SIP transaction request. * * @param connection The {@link SipDelegateConnection} that was being used when this error was * received. * @param sipCode The SIP code response associated with the SIP message request that * triggered this condition. * @param sipReason The SIP reason code associated with the SIP message request that triggered * this condition. May be {@code null} if there was no reason String provided from the * network. */ public void triggerFullNetworkRegistration(@NonNull SipDelegateConnection connection, @IntRange(from = 100, to = 699) int sipCode, @Nullable String sipReason) { if (connection == null) { throw new IllegalArgumentException("invalid connection."); } if (connection instanceof SipDelegateConnectionAidlWrapper) { SipDelegateConnectionAidlWrapper w = (SipDelegateConnectionAidlWrapper) connection; try { IImsRcsController controller = mBinderCache.getBinder(); controller.triggerNetworkRegistration(mSubId, w.getSipDelegateBinder(), sipCode, sipReason); } catch (RemoteException e) { // Connection to telephony died, but this will signal destruction of SipDelegate // eventually anyway, so return. } } else { throw new IllegalArgumentException("Unknown SipDelegateConnection implementation passed" + " into this method"); } } } telephony/java/android/telephony/ims/aidl/IImsRcsController.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,8 @@ interface IImsRcsController { ISipDelegateConnectionStateCallback delegateState, ISipDelegateMessageCallback delegateMessage); void destroySipDelegate(int subId, ISipDelegate connection, int reason); void triggerNetworkRegistration(int subId, ISipDelegate connection, int sipCode, String sipReason); // Internal commands that should not be made public void registerRcsFeatureCallback(int slotId, in IImsServiceFeatureCallback callback); Loading telephony/java/android/telephony/ims/aidl/IImsRegistration.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -28,4 +28,5 @@ interface IImsRegistration { int getRegistrationTechnology(); oneway void addRegistrationCallback(IImsRegistrationCallback c); oneway void removeRegistrationCallback(IImsRegistrationCallback c); oneway void triggerFullNetworkRegistration(int sipCode, String sipReason); } No newline at end of file telephony/java/android/telephony/ims/stub/ImsRegistrationImplBase.java +6 −2 Original line number Diff line number Diff line Loading @@ -92,6 +92,11 @@ public class ImsRegistrationImplBase { public void removeRegistrationCallback(IImsRegistrationCallback c) throws RemoteException { ImsRegistrationImplBase.this.removeRegistrationCallback(c); } @Override public void triggerFullNetworkRegistration(int sipCode, String sipReason) { ImsRegistrationImplBase.this.triggerFullNetworkRegistration(sipCode, sipReason); } }; private final RemoteCallbackListExt<IImsRegistrationCallback> mCallbacks = Loading Loading @@ -169,9 +174,8 @@ public class ImsRegistrationImplBase { * be carrier specific. * @param sipReason The reason associated with the SIP error code. {@code null} if there was no * reason associated with the error. * @hide */ public void triggerNetworkReregistration(@IntRange(from = 100, to = 699) int sipCode, public void triggerFullNetworkRegistration(@IntRange(from = 100, to = 699) int sipCode, @Nullable String sipReason) { // Stub implementation, ImsService should implement this } Loading Loading
core/api/system-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -11555,6 +11555,7 @@ package android.telephony.ims { method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void createSipDelegate(@NonNull android.telephony.ims.DelegateRequest, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.stub.DelegateConnectionStateCallback, @NonNull android.telephony.ims.stub.DelegateConnectionMessageCallback) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void destroySipDelegate(@NonNull android.telephony.ims.SipDelegateConnection, int); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isSupported() throws android.telephony.ims.ImsException; method public void triggerFullNetworkRegistration(@NonNull android.telephony.ims.SipDelegateConnection, @IntRange(from=100, to=699) int, @Nullable String); field public static final int DENIED_REASON_INVALID = 4; // 0x4 field public static final int DENIED_REASON_IN_USE_BY_ANOTHER_DELEGATE = 1; // 0x1 field public static final int DENIED_REASON_NOT_ALLOWED = 2; // 0x2 Loading Loading @@ -11799,6 +11800,7 @@ package android.telephony.ims.stub { method public final void onRegistering(int); method public final void onSubscriberAssociatedUriChanged(android.net.Uri[]); method public final void onTechnologyChangeFailed(int, android.telephony.ims.ImsReasonInfo); method public void triggerFullNetworkRegistration(@IntRange(from=100, to=699) int, @Nullable String); 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
telephony/java/android/telephony/ims/SipDelegateManager.java +35 −0 Original line number Diff line number Diff line Loading @@ -18,7 +18,9 @@ package android.telephony.ims; import android.Manifest; import android.annotation.IntDef; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.content.Context; Loading Loading @@ -372,4 +374,37 @@ public class SipDelegateManager { + " into this method"); } } /** * Trigger a full network registration as required by receiving a SIP message containing a * permanent error from the network or never receiving a response to a SIP transaction request. * * @param connection The {@link SipDelegateConnection} that was being used when this error was * received. * @param sipCode The SIP code response associated with the SIP message request that * triggered this condition. * @param sipReason The SIP reason code associated with the SIP message request that triggered * this condition. May be {@code null} if there was no reason String provided from the * network. */ public void triggerFullNetworkRegistration(@NonNull SipDelegateConnection connection, @IntRange(from = 100, to = 699) int sipCode, @Nullable String sipReason) { if (connection == null) { throw new IllegalArgumentException("invalid connection."); } if (connection instanceof SipDelegateConnectionAidlWrapper) { SipDelegateConnectionAidlWrapper w = (SipDelegateConnectionAidlWrapper) connection; try { IImsRcsController controller = mBinderCache.getBinder(); controller.triggerNetworkRegistration(mSubId, w.getSipDelegateBinder(), sipCode, sipReason); } catch (RemoteException e) { // Connection to telephony died, but this will signal destruction of SipDelegate // eventually anyway, so return. } } else { throw new IllegalArgumentException("Unknown SipDelegateConnection implementation passed" + " into this method"); } } }
telephony/java/android/telephony/ims/aidl/IImsRcsController.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,8 @@ interface IImsRcsController { ISipDelegateConnectionStateCallback delegateState, ISipDelegateMessageCallback delegateMessage); void destroySipDelegate(int subId, ISipDelegate connection, int reason); void triggerNetworkRegistration(int subId, ISipDelegate connection, int sipCode, String sipReason); // Internal commands that should not be made public void registerRcsFeatureCallback(int slotId, in IImsServiceFeatureCallback callback); Loading
telephony/java/android/telephony/ims/aidl/IImsRegistration.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -28,4 +28,5 @@ interface IImsRegistration { int getRegistrationTechnology(); oneway void addRegistrationCallback(IImsRegistrationCallback c); oneway void removeRegistrationCallback(IImsRegistrationCallback c); oneway void triggerFullNetworkRegistration(int sipCode, String sipReason); } No newline at end of file
telephony/java/android/telephony/ims/stub/ImsRegistrationImplBase.java +6 −2 Original line number Diff line number Diff line Loading @@ -92,6 +92,11 @@ public class ImsRegistrationImplBase { public void removeRegistrationCallback(IImsRegistrationCallback c) throws RemoteException { ImsRegistrationImplBase.this.removeRegistrationCallback(c); } @Override public void triggerFullNetworkRegistration(int sipCode, String sipReason) { ImsRegistrationImplBase.this.triggerFullNetworkRegistration(sipCode, sipReason); } }; private final RemoteCallbackListExt<IImsRegistrationCallback> mCallbacks = Loading Loading @@ -169,9 +174,8 @@ public class ImsRegistrationImplBase { * be carrier specific. * @param sipReason The reason associated with the SIP error code. {@code null} if there was no * reason associated with the error. * @hide */ public void triggerNetworkReregistration(@IntRange(from = 100, to = 699) int sipCode, public void triggerFullNetworkRegistration(@IntRange(from = 100, to = 699) int sipCode, @Nullable String sipReason) { // Stub implementation, ImsService should implement this } Loading