Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 48695cb0 authored by Brad Ebinger's avatar Brad Ebinger Committed by Gerrit Code Review
Browse files

Merge "Add subid to SipTransportImplBase#createSipDelegate"

parents 00326a89 d5c9dc30
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -98,4 +98,9 @@ public final class DelegateRequest implements Parcelable {
    public int hashCode() {
        return Objects.hash(mFeatureTags);
    }

    @Override
    public String toString() {
        return "DelegateRequest{mFeatureTags=" + mFeatureTags + '}';
    }
}
+12 −9
Original line number Diff line number Diff line
@@ -236,17 +236,17 @@ public class SipDelegateManager {
    public static final int SIP_DELEGATE_DESTROY_REASON_REQUESTED_BY_APP = 2;

    /**
     * The SipDelegate has closed because the IMS service does not support the creation of
     * SipDelegates.
     * The SipDelegate has been closed due to the user disabling RCS.
     * @hide
     */
    public static final int SIP_DELEGATE_DESTROY_REASON_SERVICE_NOT_SUPPORTED = 3;
    public static final int SIP_DELEGATE_DESTROY_REASON_USER_DISABLED_RCS = 3;

    /**
     * The SipDelegate has been closed due to the user disabling RCS.
     * The SipDelegate has been closed due to the subscription associated with this delegate being
     * torn down.
     * @hide
     */
    public static final int SIP_DELEGATE_DESTROY_REASON_USER_DISABLED_RCS = 4;
    public static final int SIP_DELEGATE_DESTROY_REASON_SUBSCRIPTION_TORN_DOWN = 4;

    /** @hide */
    @Retention(RetentionPolicy.SOURCE)
@@ -254,8 +254,8 @@ public class SipDelegateManager {
            SIP_DELEGATE_DESTROY_REASON_UNKNOWN,
            SIP_DELEGATE_DESTROY_REASON_SERVICE_DEAD,
            SIP_DELEGATE_DESTROY_REASON_REQUESTED_BY_APP,
            SIP_DELEGATE_DESTROY_REASON_SERVICE_NOT_SUPPORTED,
            SIP_DELEGATE_DESTROY_REASON_USER_DISABLED_RCS
            SIP_DELEGATE_DESTROY_REASON_USER_DISABLED_RCS,
            SIP_DELEGATE_DESTROY_REASON_SUBSCRIPTION_TORN_DOWN
    })
    public @interface SipDelegateDestroyReason {}

@@ -316,6 +316,9 @@ public class SipDelegateManager {
     * always be available to handle incoming messages. One mechanism that can be used for this is
     * the {@link android.service.carrier.CarrierMessagingClientService}, which the framework keeps
     * a persistent binding to when the app is the default SMS application.
     * <p>
     * Note: the ability to create SipDelegates is only available applications running as the
     * primary user.
     * @param request The parameters that are associated with the SipDelegate creation request that
     *                will be used to create the SipDelegate connection.
     * @param executor The executor that will be used to call the callbacks associated with this
@@ -346,8 +349,8 @@ public class SipDelegateManager {
                throw new ImsException("Telephony server is down",
                        ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
            }
            controller.createSipDelegate(mSubId, request, wrapper.getStateCallbackBinder(),
                    wrapper.getMessageCallbackBinder());
            controller.createSipDelegate(mSubId, request, mContext.getOpPackageName(),
                    wrapper.getStateCallbackBinder(), wrapper.getMessageCallbackBinder());
        } catch (ServiceSpecificException e) {
            throw new ImsException(e.getMessage(), e.errorCode);
        } catch (RemoteException e) {
+1 −1
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ interface IImsRcsController {

    // SipDelegateManager
    boolean isSipDelegateSupported(int subId);
    void createSipDelegate(int subId, in DelegateRequest request,
    void createSipDelegate(int subId, in DelegateRequest request, String packageName,
            ISipDelegateConnectionStateCallback delegateState,
            ISipDelegateMessageCallback delegateMessage);
    void destroySipDelegate(int subId, ISipDelegate connection, int reason);
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ import android.telephony.ims.aidl.ISipDelegateStateCallback;
 * {@hide}
 */
oneway interface ISipTransport {
    void createSipDelegate(in DelegateRequest request, ISipDelegateStateCallback dc,
    void createSipDelegate(int subId, in DelegateRequest request, ISipDelegateStateCallback dc,
            ISipDelegateMessageCallback mc);
    void destroySipDelegate(ISipDelegate delegate, int reason);
}
+9 −8
Original line number Diff line number Diff line
@@ -58,11 +58,11 @@ public class SipTransportImplBase {

    private final ISipTransport.Stub mSipTransportImpl = new ISipTransport.Stub() {
        @Override
        public void createSipDelegate(DelegateRequest request, ISipDelegateStateCallback dc,
                ISipDelegateMessageCallback mc) {
        public void createSipDelegate(int subId, DelegateRequest request,
                ISipDelegateStateCallback dc, ISipDelegateMessageCallback mc) {
            final long token = Binder.clearCallingIdentity();
            try {
                mBinderExecutor.execute(() -> createSipDelegateInternal(request, dc, mc));
                mBinderExecutor.execute(() -> createSipDelegateInternal(subId, request, dc, mc));
            } finally {
                Binder.restoreCallingIdentity(token);
            }
@@ -105,6 +105,7 @@ public class SipTransportImplBase {
     * This method will be called on the Executor specified in
     * {@link SipTransportImplBase#SipTransportImplBase(Executor)}.
     *
     * @param subscriptionId The subscription ID associated with the requested {@link SipDelegate}.
     * @param request A SIP delegate request containing the parameters that the remote RCS
     * application wishes to use.
     * @param dc A callback back to the remote application to be used to communicate state callbacks
@@ -113,9 +114,9 @@ public class SipTransportImplBase {
     *           remote application and acknowledge the sending of outgoing SIP messages.
     * @hide
     */
    public void createSipDelegate(@NonNull DelegateRequest request,
    public void createSipDelegate(int subscriptionId, @NonNull DelegateRequest request,
            @NonNull DelegateStateCallback dc, @NonNull DelegateMessageCallback mc) {
        throw new UnsupportedOperationException("destroySipDelegate not implemented!");
        throw new UnsupportedOperationException("createSipDelegate not implemented!");
    }

    /**
@@ -136,11 +137,11 @@ public class SipTransportImplBase {
        throw new UnsupportedOperationException("destroySipDelegate not implemented!");
    }

    private void createSipDelegateInternal(DelegateRequest r, ISipDelegateStateCallback cb,
            ISipDelegateMessageCallback mc) {
    private void createSipDelegateInternal(int subId, DelegateRequest r,
            ISipDelegateStateCallback cb, ISipDelegateMessageCallback mc) {
        SipDelegateAidlWrapper wrapper = new SipDelegateAidlWrapper(mBinderExecutor, cb, mc);
        mDelegates.add(wrapper);
        createSipDelegate(r, wrapper, wrapper);
        createSipDelegate(subId, r, wrapper, wrapper);
    }

    private void destroySipDelegateInternal(ISipDelegate d, int reason) {