Merge "Refactor dependency on AccessibilityManager." into udc-dev
diff --git a/src/com/android/server/telecom/Call.java b/src/com/android/server/telecom/Call.java
index a076799..02dff13 100644
--- a/src/com/android/server/telecom/Call.java
+++ b/src/com/android/server/telecom/Call.java
@@ -2701,7 +2701,8 @@
// hangup, not reject.
setOverrideDisconnectCauseCode(new DisconnectCause(DisconnectCause.REJECTED));
if (mTransactionalService != null) {
- mTransactionalService.onReject(this, DisconnectCause.REJECTED);
+ mTransactionalService.onDisconnect(this,
+ new DisconnectCause(DisconnectCause.REJECTED));
} else if (mConnectionService != null) {
mConnectionService.disconnect(this);
} else {
@@ -2714,7 +2715,8 @@
mVideoStateHistory |= mVideoState;
if (mTransactionalService != null) {
- mTransactionalService.onReject(this, DisconnectCause.REJECTED);
+ mTransactionalService.onDisconnect(this,
+ new DisconnectCause(DisconnectCause.REJECTED));
} else if (mConnectionService != null) {
mConnectionService.reject(this, rejectWithMessage, textMessage);
} else {
@@ -2737,7 +2739,8 @@
// Since its simulated reason we can't pass along the reject reason.
setOverrideDisconnectCauseCode(new DisconnectCause(DisconnectCause.REJECTED));
if (mTransactionalService != null) {
- mTransactionalService.onReject(this, DisconnectCause.REJECTED);
+ mTransactionalService.onDisconnect(this,
+ new DisconnectCause(DisconnectCause.REJECTED));
} else if (mConnectionService != null) {
mConnectionService.disconnect(this);
} else {
@@ -2749,7 +2752,8 @@
// Ensure video state history tracks video state at time of rejection.
mVideoStateHistory |= mVideoState;
if (mTransactionalService != null) {
- mTransactionalService.onReject(this, rejectReason);
+ mTransactionalService.onDisconnect(this,
+ new DisconnectCause(DisconnectCause.REJECTED));
} else if (mConnectionService != null) {
mConnectionService.rejectWithReason(this, rejectReason);
} else {
diff --git a/src/com/android/server/telecom/TransactionalServiceWrapper.java b/src/com/android/server/telecom/TransactionalServiceWrapper.java
index 42e8f2a..7cf661a 100644
--- a/src/com/android/server/telecom/TransactionalServiceWrapper.java
+++ b/src/com/android/server/telecom/TransactionalServiceWrapper.java
@@ -388,7 +388,7 @@
Log.i(TAG, String.format(Locale.US, "onSetInactive: callId=[%s]", call.getId()));
mTransactionManager.addTransaction(
new CallEventCallbackAckTransaction(mICallEventCallback,
- ON_SET_INACTIVE, call.getId(), 0), new OutcomeReceiver<>() {
+ ON_SET_INACTIVE, call.getId()), new OutcomeReceiver<>() {
@Override
public void onResult(VoipCallTransactionResult result) {
mCallsManager.markCallAsOnHold(call);
@@ -411,7 +411,7 @@
mTransactionManager.addTransaction(
new CallEventCallbackAckTransaction(mICallEventCallback, ON_DISCONNECT,
- call.getId(), 0), new OutcomeReceiver<>() {
+ call.getId(), cause), new OutcomeReceiver<>() {
@Override
public void onResult(VoipCallTransactionResult result) {
removeCallFromCallsManager(call, cause);
@@ -428,32 +428,6 @@
}
}
- public void onReject(Call call, @android.telecom.Call.RejectReason int rejectReason) {
- try {
- Log.startSession("TSW.oR");
- Log.d(TAG, String.format(Locale.US, "onReject: callId=[%s]", call.getId()));
-
- mTransactionManager.addTransaction(
- new CallEventCallbackAckTransaction(mICallEventCallback, ON_REJECT,
- call.getId(), 0), new OutcomeReceiver<>() {
- @Override
- public void onResult(VoipCallTransactionResult result) {
- removeCallFromCallsManager(call,
- new DisconnectCause(DisconnectCause.REJECTED));
- }
-
- @Override
- public void onError(CallException exception) {
- removeCallFromCallsManager(call,
- new DisconnectCause(DisconnectCause.REJECTED));
- }
- }
- );
- } finally {
- Log.endSession();
- }
- }
-
public void onCallStreamingStarted(Call call) {
try {
Log.startSession("TSW.oCSS");
@@ -462,7 +436,7 @@
mTransactionManager.addTransaction(
new CallEventCallbackAckTransaction(mICallEventCallback, ON_STREAMING_STARTED,
- call.getId(), 0), new OutcomeReceiver<>() {
+ call.getId()), new OutcomeReceiver<>() {
@Override
public void onResult(VoipCallTransactionResult result) {
}
diff --git a/src/com/android/server/telecom/voip/CallEventCallbackAckTransaction.java b/src/com/android/server/telecom/voip/CallEventCallbackAckTransaction.java
index 327694e..f47e4c5 100644
--- a/src/com/android/server/telecom/voip/CallEventCallbackAckTransaction.java
+++ b/src/com/android/server/telecom/voip/CallEventCallbackAckTransaction.java
@@ -22,6 +22,7 @@
import android.os.Bundle;
import android.os.RemoteException;
import android.os.ResultReceiver;
+import android.telecom.DisconnectCause;
import android.util.Log;
import com.android.internal.telecom.ICallEventCallback;
@@ -41,7 +42,10 @@
private final ICallEventCallback mICallEventCallback;
private final String mAction;
private final String mCallId;
- private final int mVideoState;
+ // optional values
+ private int mVideoState = 0;
+ private DisconnectCause mDisconnectCause = null;
+
private final VoipCallTransactionResult TRANSACTION_FAILED = new VoipCallTransactionResult(
CODE_OPERATION_TIMED_OUT, "failed to complete the operation before timeout");
@@ -61,6 +65,14 @@
}
}
+ public CallEventCallbackAckTransaction(ICallEventCallback service, String action,
+ String callId) {
+ mICallEventCallback = service;
+ mAction = action;
+ mCallId = callId;
+ }
+
+
public CallEventCallbackAckTransaction(ICallEventCallback service, String action, String callId,
int videoState) {
mICallEventCallback = service;
@@ -69,6 +81,14 @@
mVideoState = videoState;
}
+ public CallEventCallbackAckTransaction(ICallEventCallback service, String action, String callId,
+ DisconnectCause cause) {
+ mICallEventCallback = service;
+ mAction = action;
+ mCallId = callId;
+ mDisconnectCause = cause;
+ }
+
@Override
public CompletionStage<VoipCallTransactionResult> processTransaction(Void v) {
@@ -82,10 +102,7 @@
mICallEventCallback.onSetInactive(mCallId, receiver);
break;
case TransactionalServiceWrapper.ON_DISCONNECT:
- mICallEventCallback.onDisconnect(mCallId, receiver);
- break;
- case TransactionalServiceWrapper.ON_REJECT:
- mICallEventCallback.onReject(mCallId, receiver);
+ mICallEventCallback.onDisconnect(mCallId, mDisconnectCause, receiver);
break;
case TransactionalServiceWrapper.ON_SET_ACTIVE:
mICallEventCallback.onSetActive(mCallId, receiver);
diff --git a/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/MyVoipCall.java b/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/MyVoipCall.java
index bf24513..690311e 100644
--- a/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/MyVoipCall.java
+++ b/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/MyVoipCall.java
@@ -21,6 +21,7 @@
import android.telecom.CallEndpoint;
import android.telecom.CallControl;
import android.telecom.CallEventCallback;
+import android.telecom.DisconnectCause;
import android.util.Log;
import java.util.List;
@@ -62,13 +63,8 @@
}
@Override
- public void onReject(@NonNull Consumer<Boolean> wasCompleted) {
- Log.i(TAG, String.format("onReject: callId=[%s]", mCallId));
- wasCompleted.accept(Boolean.TRUE);
- }
-
- @Override
- public void onDisconnect(@NonNull Consumer<Boolean> wasCompleted) {
+ public void onDisconnect(@NonNull DisconnectCause cause,
+ @NonNull Consumer<Boolean> wasCompleted) {
Log.i(TAG, String.format("onDisconnect: callId=[%s]", mCallId));
wasCompleted.accept(Boolean.TRUE);
}
diff --git a/tests/src/com/android/server/telecom/tests/CallTest.java b/tests/src/com/android/server/telecom/tests/CallTest.java
index fc78810..6b817d8 100644
--- a/tests/src/com/android/server/telecom/tests/CallTest.java
+++ b/tests/src/com/android/server/telecom/tests/CallTest.java
@@ -26,6 +26,7 @@
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isA;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
@@ -426,11 +427,6 @@
call.answer(0);
verify(mMockTransactionalService, times(1)).onAnswer(call, 0);
- // assert CallEventCallback#onReject is called
- call.setState(CallState.RINGING, "test");
- call.reject(0);
- verify(mMockTransactionalService, times(1)).onReject(call, 0);
-
// assert CallEventCallback#onDisconnect is called
call.setState(CallState.ACTIVE, "test");
call.disconnect();