Merge "play end call tone when ring is silent"
diff --git a/src/com/android/server/telecom/InCallTonePlayer.java b/src/com/android/server/telecom/InCallTonePlayer.java
index 4665ec2..95abf38 100644
--- a/src/com/android/server/telecom/InCallTonePlayer.java
+++ b/src/com/android/server/telecom/InCallTonePlayer.java
@@ -470,12 +470,6 @@
@VisibleForTesting
public boolean startTone() {
- // Skip playing the end call tone if the volume is silenced.
- if (mToneId == TONE_CALL_ENDED && !mAudioManagerAdapter.isVolumeOverZero()) {
- Log.i(this, "startTone: skip end-call tone as device is silenced.");
- return false;
- }
-
// Tone already done; don't allow re-used
if (mState == STATE_STOPPED) {
return false;
diff --git a/tests/src/com/android/server/telecom/tests/InCallTonePlayerTest.java b/tests/src/com/android/server/telecom/tests/InCallTonePlayerTest.java
index eadda0d..f11afc1 100644
--- a/tests/src/com/android/server/telecom/tests/InCallTonePlayerTest.java
+++ b/tests/src/com/android/server/telecom/tests/InCallTonePlayerTest.java
@@ -140,13 +140,16 @@
@SmallTest
@Test
- public void testNoEndCallToneInSilence() {
+ public void testEndCallTonePlaysWhenRingIsSilent() {
when(mAudioManagerAdapter.isVolumeOverZero()).thenReturn(false);
- assertFalse(mInCallTonePlayer.startTone());
+ assertTrue(mInCallTonePlayer.startTone());
+ // Verify we did play a tone.
+ verify(mMediaPlayerFactory, timeout(TEST_TIMEOUT)).get(anyInt(), any());
+ verify(mCallAudioManager).setIsTonePlaying(eq(true));
- // Verify we didn't play a tone.
- verify(mCallAudioManager, never()).setIsTonePlaying(eq(true));
- verify(mMediaPlayerFactory, never()).get(anyInt(), any());
+ mInCallTonePlayer.stopTone();
+ // Timeouts due to threads!
+ verify(mCallAudioManager, timeout(TEST_TIMEOUT)).setIsTonePlaying(eq(false));
}
@SmallTest