Merge "Modified to operated when acceptRingingCall or endCall in TelecomManager are called with SIMULATED_RING state"
diff --git a/src/com/android/server/telecom/TelecomServiceImpl.java b/src/com/android/server/telecom/TelecomServiceImpl.java
index 08d77a0..0fad81e 100644
--- a/src/com/android/server/telecom/TelecomServiceImpl.java
+++ b/src/com/android/server/telecom/TelecomServiceImpl.java
@@ -1930,12 +1930,12 @@
}
private void acceptRingingCallInternal(int videoState) {
- Call call = mCallsManager.getFirstCallWithState(CallState.RINGING);
+ Call call = mCallsManager.getFirstCallWithState(CallState.RINGING, CallState.SIMULATED_RINGING);
if (call != null) {
if (videoState == DEFAULT_VIDEO_STATE || !isValidAcceptVideoState(videoState)) {
videoState = call.getVideoState();
}
- call.answer(videoState);
+ mCallsManager.answerCall(call, videoState);
}
}
@@ -1949,6 +1949,7 @@
CallState.DIALING,
CallState.PULLING,
CallState.RINGING,
+ CallState.SIMULATED_RINGING,
CallState.ON_HOLD);
}
@@ -1958,10 +1959,11 @@
return false;
}
- if (call.getState() == CallState.RINGING) {
- call.reject(false /* rejectWithMessage */, null, callingPackage);
+ if (call.getState() == CallState.RINGING
+ || call.getState() == CallState.SIMULATED_RINGING) {
+ mCallsManager.rejectCall(call, false /* rejectWithMessage */, null);
} else {
- call.disconnect(0 /* disconnectionTimeout */, callingPackage);
+ mCallsManager.disconnectCall(call);
}
return true;
}
diff --git a/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java b/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
index 324bca2..815b523 100644
--- a/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
+++ b/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
@@ -899,7 +899,17 @@
when(call.getState()).thenReturn(CallState.RINGING);
when(mFakeCallsManager.getForegroundCall()).thenReturn(call);
assertTrue(mTSIBinder.endCall(TEST_PACKAGE));
- verify(call).reject(eq(false), isNull(), eq(TEST_PACKAGE));
+ verify(mFakeCallsManager).rejectCall(eq(call), eq(false), isNull());
+ }
+
+ @SmallTest
+ @Test
+ public void testEndCallWithSimulatedRingingForegroundCall() throws Exception {
+ Call call = mock(Call.class);
+ when(call.getState()).thenReturn(CallState.SIMULATED_RINGING);
+ when(mFakeCallsManager.getForegroundCall()).thenReturn(call);
+ assertTrue(mTSIBinder.endCall(TEST_PACKAGE));
+ verify(mFakeCallsManager).rejectCall(eq(call), eq(false), isNull());
}
@SmallTest
@@ -909,7 +919,7 @@
when(call.getState()).thenReturn(CallState.ACTIVE);
when(mFakeCallsManager.getForegroundCall()).thenReturn(call);
assertTrue(mTSIBinder.endCall(TEST_PACKAGE));
- verify(call).disconnect(eq(0L), eq(TEST_PACKAGE));
+ verify(mFakeCallsManager).disconnectCall(eq(call));
}
@SmallTest
@@ -920,7 +930,7 @@
when(mFakeCallsManager.getFirstCallWithState(any()))
.thenReturn(call);
assertTrue(mTSIBinder.endCall(TEST_PACKAGE));
- verify(call).disconnect(eq(0L), eq(TEST_PACKAGE));
+ verify(mFakeCallsManager).disconnectCall(eq(call));
}
@SmallTest
@@ -933,27 +943,27 @@
@Test
public void testAcceptRingingCall() throws Exception {
Call call = mock(Call.class);
- when(mFakeCallsManager.getFirstCallWithState(anyInt())).thenReturn(call);
+ when(mFakeCallsManager.getFirstCallWithState(anyInt(), anyInt())).thenReturn(call);
// Not intended to be a real video state. Here to ensure that the call will be answered
// with whatever video state it's currently in.
int fakeVideoState = 29578215;
when(call.getVideoState()).thenReturn(fakeVideoState);
mTSIBinder.acceptRingingCall("");
- verify(call).answer(eq(fakeVideoState));
+ verify(mFakeCallsManager).answerCall(eq(call), eq(fakeVideoState));
}
@SmallTest
@Test
public void testAcceptRingingCallWithValidVideoState() throws Exception {
Call call = mock(Call.class);
- when(mFakeCallsManager.getFirstCallWithState(anyInt())).thenReturn(call);
+ when(mFakeCallsManager.getFirstCallWithState(anyInt(), anyInt())).thenReturn(call);
// Not intended to be a real video state. Here to ensure that the call will be answered
// with the video state passed in to acceptRingingCallWithVideoState
int fakeVideoState = 29578215;
int realVideoState = VideoProfile.STATE_RX_ENABLED | VideoProfile.STATE_TX_ENABLED;
when(call.getVideoState()).thenReturn(fakeVideoState);
mTSIBinder.acceptRingingCallWithVideoState("", realVideoState);
- verify(call).answer(realVideoState);
+ verify(mFakeCallsManager).answerCall(eq(call), eq(realVideoState));
}
@SmallTest