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

Commit abd6f3a7 authored by Thomas Stuart's avatar Thomas Stuart Committed by Android (Google) Code Review
Browse files

Merge "Merge CallControl#reject into CallControl#disconnect"

parents 63ce733e 733a48ff
Loading
Loading
Loading
Loading
+6 −19
Original line number Diff line number Diff line
@@ -188,7 +188,7 @@ public class TransactionalServiceWrapper implements
                throws RemoteException {
            try {
                Log.startSession("TSW.sA");
                createTransactions(callId, callback, SET_ACTIVE, 0);
                createTransactions(callId, callback, SET_ACTIVE);
            } finally {
                Log.endSession();
            }
@@ -199,7 +199,7 @@ public class TransactionalServiceWrapper implements
                throws RemoteException {
            try {
                Log.startSession("TSW.sI");
                createTransactions(callId, callback, SET_INACTIVE, 0);
                createTransactions(callId, callback, SET_INACTIVE);
            } finally {
                Log.endSession();
            }
@@ -211,19 +211,7 @@ public class TransactionalServiceWrapper implements
                throws RemoteException {
            try {
                Log.startSession("TSW.d");
                createTransactions(callId, callback, DISCONNECT, disconnectCause.getCode());
            } finally {
                Log.endSession();
            }
        }

        @Override
        public void rejectCall(String callId, android.os.ResultReceiver callback)
                throws RemoteException {
            try {
                Log.startSession("TSW.rC");
                createTransactions(callId, callback, REJECT,
                        android.telecom.Call.REJECT_REASON_DECLINED);
                createTransactions(callId, callback, DISCONNECT, disconnectCause);
            } finally {
                Log.endSession();
            }
@@ -234,14 +222,14 @@ public class TransactionalServiceWrapper implements
                throws RemoteException {
            try {
                Log.startSession("TSW.sCS");
                createTransactions(callId, callback, START_STREAMING, 0);
                createTransactions(callId, callback, START_STREAMING);
            } finally {
                Log.endSession();
            }
        }

        private void createTransactions(String callId, ResultReceiver callback, String action,
                int code) {
                Object... objects) {
            Log.d(TAG, "createTransactions: callId=" + callId);
            Call call = mTrackedCalls.get(callId);
            if (call != null) {
@@ -249,10 +237,9 @@ public class TransactionalServiceWrapper implements
                    case SET_ACTIVE:
                        addTransactionsToManager(createSetActiveTransactions(call), callback);
                        break;
                    case REJECT:
                    case DISCONNECT:
                        addTransactionsToManager(new EndCallTransaction(mCallsManager,
                                action.equals(DISCONNECT), code, call), callback);
                                (DisconnectCause) objects[0], call), callback);
                        break;
                    case SET_INACTIVE:
                        addTransactionsToManager(
+12 −12
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.telecom.DisconnectCause;
import android.util.Log;

import com.android.server.telecom.Call;
import com.android.server.telecom.CallState;
import com.android.server.telecom.CallsManager;

import java.util.concurrent.CompletableFuture;
@@ -31,31 +32,30 @@ import java.util.concurrent.CompletionStage;
public class EndCallTransaction extends VoipCallTransaction {
    private static final String TAG = EndCallTransaction.class.getSimpleName();
    private final CallsManager mCallsManager;
    private final boolean mIsDisconnect;
    private final int mCode;
    private final Call mCall;
    private DisconnectCause mCause;

    public EndCallTransaction(CallsManager callsManager, boolean isDisconnect, int code,
            Call call) {
    public EndCallTransaction(CallsManager callsManager, DisconnectCause cause, Call call) {
        mCallsManager = callsManager;
        mIsDisconnect = isDisconnect;
        mCode = code;
        mCause = cause;
        mCall = call;
    }

    @Override
    public CompletionStage<VoipCallTransactionResult> processTransaction(Void v) {
        Log.d(TAG, String.format("processTransaction: isDisconnect=[%b]", mIsDisconnect));
        int code = mCause.getCode();
        Log.d(TAG, String.format("processTransaction: mCode=[%d], mCall=[%s]", code, mCall));

        if (mIsDisconnect) {
            mCallsManager.markCallAsDisconnected(mCall, new DisconnectCause(mCode));
        } else {
            mCallsManager.rejectCall(mCall, mCode);
        if (mCall.getState() == CallState.RINGING && code == DisconnectCause.LOCAL) {
            mCause = new DisconnectCause(DisconnectCause.REJECTED,
                    "overrode cause in EndCallTransaction");
        }

        mCallsManager.markCallAsDisconnected(mCall, mCause);
        mCallsManager.markCallAsRemoved(mCall);

        return CompletableFuture.completedFuture(
                new VoipCallTransactionResult(VoipCallTransactionResult.RESULT_SUCCEED,
                        "endCallTransaction complete"));
                        "EndCallTransaction: RESULT_SUCCEED"));
    }
}
+1 −19
Original line number Diff line number Diff line
@@ -102,7 +102,7 @@ public class TransactionTests extends TelecomTestCase {
    public void testEndCallTransactionWithDisconnect() throws Exception {
        // GIVEN
        EndCallTransaction transaction =
                new EndCallTransaction(mCallsManager, true, 0, mMockCall1);
                new EndCallTransaction(mCallsManager,  new DisconnectCause(0), mMockCall1);

        // WHEN
        transaction.processTransaction(null);
@@ -116,24 +116,6 @@ public class TransactionTests extends TelecomTestCase {
                .markCallAsRemoved(mMockCall1);
    }

    @Test
    public void testEndCallTransactionWithReject() throws Exception {
        // GIVEN
        EndCallTransaction transaction =
                new EndCallTransaction(mCallsManager, false, 0, mMockCall1);

        // WHEN
        transaction.processTransaction(null);

        // THEN
        verify(mCallsManager, never())
                .markCallAsDisconnected(mMockCall1, new DisconnectCause(0));
        verify(mCallsManager, times(1))
                .rejectCall(mMockCall1, 0);
        verify(mCallsManager, times(1))
                .markCallAsRemoved(mMockCall1);
    }

    @Test
    public void testHoldCallTransaction() throws Exception {
        // GIVEN
+2 −5
Original line number Diff line number Diff line
@@ -121,7 +121,6 @@ public class TransactionalServiceWrapperTest extends TelecomTestCase {
    public void testCallControlSetActive() throws RemoteException {
        // GIVEN
        mTransactionalServiceWrapper.trackCall(mMockCall1);
        //when(mCallsManager.getCallObjectFromCallId(CALL_ID_1)).thenReturn(mMockCall1);

        // WHEN
        ICallControl callControl = mTransactionalServiceWrapper.getICallControl();
@@ -136,11 +135,11 @@ public class TransactionalServiceWrapperTest extends TelecomTestCase {
    public void testCallControlRejectCall() throws RemoteException {
        // GIVEN
        mTransactionalServiceWrapper.trackCall(mMockCall1);
        //when(mCallsManager.getCallObjectFromCallId(CALL_ID_1)).thenReturn(mMockCall1);

        // WHEN
        ICallControl callControl = mTransactionalServiceWrapper.getICallControl();
        callControl.rejectCall(CALL_ID_1, new ResultReceiver(null));
        callControl.disconnect(CALL_ID_1, new DisconnectCause(DisconnectCause.REJECTED),
                new ResultReceiver(null));

        //THEN
        verify(mTransactionManager, times(1))
@@ -151,7 +150,6 @@ public class TransactionalServiceWrapperTest extends TelecomTestCase {
    public void testCallControlDisconnectCall() throws RemoteException {
        // GIVEN
        mTransactionalServiceWrapper.trackCall(mMockCall1);
        //when(mCallsManager.getCallObjectFromCallId(CALL_ID_1)).thenReturn(mMockCall1);

        // WHEN
        ICallControl callControl = mTransactionalServiceWrapper.getICallControl();
@@ -167,7 +165,6 @@ public class TransactionalServiceWrapperTest extends TelecomTestCase {
    public void testCallControlSetInactive() throws RemoteException {
        // GIVEN
        mTransactionalServiceWrapper.trackCall(mMockCall1);
        //when(mCallsManager.getCallObjectFromCallId(CALL_ID_1)).thenReturn(mMockCall1);

        // WHEN
        ICallControl callControl = mTransactionalServiceWrapper.getICallControl();