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

Commit 39f16582 authored by Tyler Gunn's avatar Tyler Gunn Committed by Gerrit Code Review
Browse files

Merge "Add support for rejecting Telecom call with a specified reason."

parents e1e4bf6d c9b6eb11
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -110,6 +110,8 @@ public abstract class Call {
    @UnsupportedAppUsage
    public abstract void hangup() throws CallStateException;

    public abstract void hangup(@android.telecom.Call.RejectReason int rejectReason)
            throws CallStateException;

    /**
     * hasConnection
+10 −0
Original line number Diff line number Diff line
@@ -61,6 +61,16 @@ public class GsmCdmaCall extends Call {
        mOwner.hangup(this);
    }

    /**
     * Hangup the ringing call with a specified reason; reason is not supported on GSM/CDMA.
     * @param rejectReason
     */
    @Override
    public void hangup(@android.telecom.Call.RejectReason int rejectReason)
            throws CallStateException {
        mOwner.hangup(this);
    }

    @Override
    public String toString() {
        return mState.toString();
+6 −0
Original line number Diff line number Diff line
@@ -60,6 +60,12 @@ public class ImsExternalCall extends Call {

    }

    @Override
    public void hangup(@android.telecom.Call.RejectReason int rejectReason)
            throws CallStateException {
        // tumbleweed
    }

    /**
     * Sets the call state to active.
     */
+6 −0
Original line number Diff line number Diff line
@@ -122,6 +122,12 @@ public class ImsPhoneCall extends Call {
        mOwner.hangup(this);
    }

    @Override
    public void hangup(@android.telecom.Call.RejectReason int rejectReason)
            throws CallStateException {
        mOwner.hangup(this, rejectReason);
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
+11 −2
Original line number Diff line number Diff line
@@ -1856,7 +1856,12 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
    //***** Called from ImsPhoneCall

    public void hangup (ImsPhoneCall call) throws CallStateException {
        if (DBG) log("hangup call");
        hangup(call, android.telecom.Call.REJECT_REASON_DECLINED);
    }

    public void hangup (ImsPhoneCall call, @android.telecom.Call.RejectReason int rejectReason)
            throws CallStateException {
        if (DBG) log("hangup call - reason=" + rejectReason);

        if (call.getConnections().size() == 0) {
            throw new CallStateException("no connections");
@@ -1893,7 +1898,11 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
        try {
            if (imsCall != null) {
                if (rejectCall) {
                    if (rejectReason == android.telecom.Call.REJECT_REASON_UNWANTED) {
                        imsCall.reject(ImsReasonInfo.CODE_SIP_USER_MARKED_UNWANTED);
                    } else {
                        imsCall.reject(ImsReasonInfo.CODE_USER_DECLINE);
                    }
                    mMetrics.writeOnImsCommand(mPhone.getPhoneId(), imsCall.getSession(),
                            ImsCommand.IMS_CMD_REJECT);
                } else {
Loading