diff options
author | xiaotonj <xiaotonj@google.com> | 2023-11-07 17:48:11 -0800 |
---|---|---|
committer | xiaotonj <xiaotonj@google.com> | 2023-12-01 14:50:01 -0800 |
commit | 97668aa7537bf67e5afedd69caa1385e7f8f021e (patch) | |
tree | 7b983679cf34c2280a7d75cb72feded7f9c3e222 | |
parent | 22808895b09bed6ed9a4b83791df78d602f1b695 (diff) | |
download | Telecomm-97668aa7537bf67e5afedd69caa1385e7f8f021e.tar.gz |
Refactor CallsManager listener to track disconnected tone playing status
for each calls.
Signature change only, no behavior change
Bug: b/306395598
Test: make
Change-Id: I81bc1566726f573add7bea9ddc7e8bb90cbfa550
11 files changed, 69 insertions, 58 deletions
diff --git a/src/com/android/server/telecom/CallAudioManager.java b/src/com/android/server/telecom/CallAudioManager.java index 2201c2fa6..96bf2c6bc 100644 --- a/src/com/android/server/telecom/CallAudioManager.java +++ b/src/com/android/server/telecom/CallAudioManager.java @@ -307,7 +307,7 @@ public class CallAudioManager extends CallsManagerListenerBase { VideoProfile.isReceptionEnabled(newVideoState); if (isUpgradeRequest) { - mPlayerFactory.createPlayer(InCallTonePlayer.TONE_VIDEO_UPGRADE).startTone(); + mPlayerFactory.createPlayer(call, InCallTonePlayer.TONE_VIDEO_UPGRADE).startTone(); } } @@ -316,7 +316,7 @@ public class CallAudioManager extends CallsManagerListenerBase { // We only play tones for foreground calls. return; } - mPlayerFactory.createPlayer(InCallTonePlayer.TONE_RTT_REQUEST).startTone(); + mPlayerFactory.createPlayer(call, InCallTonePlayer.TONE_RTT_REQUEST).startTone(); } /** @@ -329,7 +329,7 @@ public class CallAudioManager extends CallsManagerListenerBase { */ @Override public void onHoldToneRequested(Call call) { - maybePlayHoldTone(); + maybePlayHoldTone(call); } @Override @@ -628,7 +628,7 @@ public class CallAudioManager extends CallsManagerListenerBase { } @VisibleForTesting - public void setIsTonePlaying(boolean isTonePlaying) { + public void setIsTonePlaying(Call call, boolean isTonePlaying) { Log.i(this, "setIsTonePlaying; isTonePlaying=%b", isTonePlaying); mIsTonePlaying = isTonePlaying; mCallAudioModeStateMachine.sendMessageWithArgs( @@ -637,7 +637,7 @@ public class CallAudioManager extends CallsManagerListenerBase { makeArgsForModeStateMachine()); if (!isTonePlaying && mIsDisconnectedTonePlaying) { - mCallsManager.onDisconnectedTonePlaying(false); + mCallsManager.onDisconnectedTonePlaying(call, false); mIsDisconnectedTonePlaying = false; } } @@ -823,7 +823,7 @@ public class CallAudioManager extends CallsManagerListenerBase { makeArgsForModeStateMachine()); } mDtmfLocalTonePlayer.onForegroundCallChanged(oldForegroundCall, mForegroundCall); - maybePlayHoldTone(); + maybePlayHoldTone(oldForegroundCall); } } @@ -926,9 +926,9 @@ public class CallAudioManager extends CallsManagerListenerBase { Log.d(this, "Found a disconnected call with tone to play %d.", toneToPlay); if (toneToPlay != InCallTonePlayer.TONE_INVALID) { - boolean didToneStart = mPlayerFactory.createPlayer(toneToPlay).startTone(); + boolean didToneStart = mPlayerFactory.createPlayer(call, toneToPlay).startTone(); if (didToneStart) { - mCallsManager.onDisconnectedTonePlaying(true); + mCallsManager.onDisconnectedTonePlaying(call, true); mIsDisconnectedTonePlaying = true; } } @@ -948,10 +948,11 @@ public class CallAudioManager extends CallsManagerListenerBase { /** * Determines if a hold tone should be played and then starts or stops it accordingly. */ - private void maybePlayHoldTone() { + private void maybePlayHoldTone(Call call) { if (shouldPlayHoldTone()) { if (mHoldTonePlayer == null) { - mHoldTonePlayer = mPlayerFactory.createPlayer(InCallTonePlayer.TONE_CALL_WAITING); + mHoldTonePlayer = mPlayerFactory.createPlayer(call, + InCallTonePlayer.TONE_CALL_WAITING); mHoldTonePlayer.startTone(); } } else { diff --git a/src/com/android/server/telecom/CallDiagnosticServiceController.java b/src/com/android/server/telecom/CallDiagnosticServiceController.java index 6c7ee38af..1077f0d32 100644 --- a/src/com/android/server/telecom/CallDiagnosticServiceController.java +++ b/src/com/android/server/telecom/CallDiagnosticServiceController.java @@ -522,7 +522,7 @@ public class CallDiagnosticServiceController extends CallsManagerListenerBase { callId, messageId, message); if (mPlayerFactory != null) { // Play that tone! - mPlayerFactory.createPlayer(InCallTonePlayer.TONE_IN_CALL_QUALITY_NOTIFICATION) + mPlayerFactory.createPlayer(call, InCallTonePlayer.TONE_IN_CALL_QUALITY_NOTIFICATION) .startTone(); } call.displayDiagnosticMessage(messageId, message); diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java index 5db59c4af..7c930a4b4 100755 --- a/src/com/android/server/telecom/CallsManager.java +++ b/src/com/android/server/telecom/CallsManager.java @@ -212,7 +212,7 @@ public class CallsManager extends Call.ListenerBase void onHoldToneRequested(Call call); void onExternalCallChanged(Call call, boolean isExternalCall); void onCallStreamingStateChanged(Call call, boolean isStreaming); - void onDisconnectedTonePlaying(boolean isTonePlaying); + void onDisconnectedTonePlaying(Call call, boolean isTonePlaying); void onConnectionTimeChanged(Call call); void onConferenceStateChanged(Call call, boolean isConference); void onCdmaConferenceSwap(Call call); @@ -3612,14 +3612,15 @@ public class CallsManager extends Call.ListenerBase * Called when disconnect tone is started or stopped, including any InCallTone * after disconnected call. * + * @param call * @param isTonePlaying true if the disconnected tone is started, otherwise the disconnected - * tone is stopped. + * tone is stopped. */ @VisibleForTesting - public void onDisconnectedTonePlaying(boolean isTonePlaying) { + public void onDisconnectedTonePlaying(Call call, boolean isTonePlaying) { Log.v(this, "onDisconnectedTonePlaying, %s", isTonePlaying ? "started" : "stopped"); for (CallsManagerListener listener : mListeners) { - listener.onDisconnectedTonePlaying(isTonePlaying); + listener.onDisconnectedTonePlaying(call, isTonePlaying); } } diff --git a/src/com/android/server/telecom/CallsManagerListenerBase.java b/src/com/android/server/telecom/CallsManagerListenerBase.java index 43f3b906c..0c54be308 100644 --- a/src/com/android/server/telecom/CallsManagerListenerBase.java +++ b/src/com/android/server/telecom/CallsManagerListenerBase.java @@ -16,10 +16,10 @@ package com.android.server.telecom; -import android.telecom.AudioState; import android.telecom.CallAudioState; import android.telecom.CallEndpoint; import android.telecom.VideoProfile; + import java.util.Set; /** @@ -112,7 +112,7 @@ public abstract class CallsManagerListenerBase implements CallsManager.CallsMana } @Override - public void onDisconnectedTonePlaying(boolean isTonePlaying) { + public void onDisconnectedTonePlaying(Call call, boolean isTonePlaying) { } @Override diff --git a/src/com/android/server/telecom/InCallTonePlayer.java b/src/com/android/server/telecom/InCallTonePlayer.java index 3cc4aacc6..a5942f02e 100644 --- a/src/com/android/server/telecom/InCallTonePlayer.java +++ b/src/com/android/server/telecom/InCallTonePlayer.java @@ -69,8 +69,8 @@ public class InCallTonePlayer extends Thread { mCallAudioManager = callAudioManager; } - public InCallTonePlayer createPlayer(int tone) { - return new InCallTonePlayer(tone, mCallAudioManager, + public InCallTonePlayer createPlayer(Call call, int tone) { + return new InCallTonePlayer(call, tone, mCallAudioManager, mCallAudioRoutePeripheralAdapter, mLock, mToneGeneratorFactory, mMediaPlayerFactory, mAudioManagerAdapter); } @@ -212,6 +212,7 @@ public class InCallTonePlayer extends Thread { private Session mSession; private final Object mSessionLock = new Object(); + private final Call mCall; private final ToneGeneratorFactory mToneGenerator; private final MediaPlayerFactory mMediaPlayerFactory; private final AudioManagerAdapter mAudioManagerAdapter; @@ -228,6 +229,7 @@ public class InCallTonePlayer extends Thread { * @param toneId ID of the tone to play, see TONE_* constants. */ private InCallTonePlayer( + Call call, int toneId, CallAudioManager callAudioManager, CallAudioRoutePeripheralAdapter callAudioRoutePeripheralAdapter, @@ -235,6 +237,7 @@ public class InCallTonePlayer extends Thread { ToneGeneratorFactory toneGeneratorFactory, MediaPlayerFactory mediaPlayerFactor, AudioManagerAdapter audioManagerAdapter) { + mCall = call; mState = STATE_OFF; mToneId = toneId; mCallAudioManager = callAudioManager; @@ -476,7 +479,7 @@ public class InCallTonePlayer extends Thread { } if (sTonesPlaying.incrementAndGet() == 1) { - mCallAudioManager.setIsTonePlaying(true); + mCallAudioManager.setIsTonePlaying(mCall, true); } synchronized (mSessionLock) { @@ -524,7 +527,7 @@ public class InCallTonePlayer extends Thread { Log.i(InCallTonePlayer.this, "cleanUpTonePlayer(): tonesPlaying=%d, tone completed", newToneCount); if (mCallAudioManager != null) { - mCallAudioManager.setIsTonePlaying(false); + mCallAudioManager.setIsTonePlaying(mCall, false); } else { Log.w(InCallTonePlayer.this, "cleanUpTonePlayer(): mCallAudioManager is null!"); diff --git a/src/com/android/server/telecom/RingbackPlayer.java b/src/com/android/server/telecom/RingbackPlayer.java index e0c61363f..5ace9ba6e 100644 --- a/src/com/android/server/telecom/RingbackPlayer.java +++ b/src/com/android/server/telecom/RingbackPlayer.java @@ -75,7 +75,7 @@ public class RingbackPlayer { if (mTonePlayer == null) { Log.i(this, "Playing the ringback tone for %s.", call); Log.addEvent(call, START_RINBACK); - mTonePlayer = mPlayerFactory.createPlayer(InCallTonePlayer.TONE_RING_BACK); + mTonePlayer = mPlayerFactory.createPlayer(call, InCallTonePlayer.TONE_RING_BACK); mTonePlayer.startTone(); } } diff --git a/src/com/android/server/telecom/Ringer.java b/src/com/android/server/telecom/Ringer.java index 5b86b8272..3ec4ebe4c 100644 --- a/src/com/android/server/telecom/Ringer.java +++ b/src/com/android/server/telecom/Ringer.java @@ -44,7 +44,6 @@ import android.os.vibrator.persistence.ParsedVibration; import android.os.vibrator.persistence.VibrationXmlParser; import android.telecom.Log; import android.telecom.TelecomManager; -import android.text.TextUtils; import android.view.accessibility.AccessibilityManager; import com.android.internal.annotations.VisibleForTesting; @@ -593,7 +592,7 @@ public class Ringer { Log.addEvent(call, LogUtils.Events.START_CALL_WAITING_TONE, reason); mCallWaitingCall = call; mCallWaitingPlayer = - mPlayerFactory.createPlayer(InCallTonePlayer.TONE_CALL_WAITING); + mPlayerFactory.createPlayer(call, InCallTonePlayer.TONE_CALL_WAITING); mCallWaitingPlayer.startTone(); } } diff --git a/tests/src/com/android/server/telecom/tests/CallAudioManagerTest.java b/tests/src/com/android/server/telecom/tests/CallAudioManagerTest.java index df281ca49..0a75c3a8d 100644 --- a/tests/src/com/android/server/telecom/tests/CallAudioManagerTest.java +++ b/tests/src/com/android/server/telecom/tests/CallAudioManagerTest.java @@ -91,11 +91,11 @@ public class CallAudioManagerTest extends TelecomTestCase { doAnswer((invocation) -> { InCallTonePlayer mockInCallTonePlayer = mock(InCallTonePlayer.class); doAnswer((invocation2) -> { - mCallAudioManager.setIsTonePlaying(true); + mCallAudioManager.setIsTonePlaying(invocation.getArgument(0), true); return true; }).when(mockInCallTonePlayer).startTone(); return mockInCallTonePlayer; - }).when(mPlayerFactory).createPlayer(anyInt()); + }).when(mPlayerFactory).createPlayer(any(Call.class), anyInt()); when(mCallsManager.getLock()).thenReturn(mLock); when(mFlags.ensureAudioModeUpdatesOnForegroundCallChange()).thenReturn(true); mCallAudioManager = new CallAudioManager( @@ -210,7 +210,7 @@ public class CallAudioManagerTest extends TelecomTestCase { assertMessageArgEquality(correctArgs, captor.getValue()); disconnectCall(call); - stopTone(); + stopTone(call); mCallAudioManager.onCallRemoved(call); verifyProperCleanup(); @@ -247,7 +247,7 @@ public class CallAudioManagerTest extends TelecomTestCase { mCallAudioManager.onCallStateChanged(call, CallState.ANSWERED, CallState.ACTIVE); disconnectCall(call); - stopTone(); + stopTone(call); mCallAudioManager.onCallRemoved(call); verifyProperCleanup(); @@ -305,7 +305,7 @@ public class CallAudioManagerTest extends TelecomTestCase { anyInt(), any(CallAudioModeStateMachine.MessageArgs.class)); } disconnectCall(call); - stopTone(); + stopTone(call); mCallAudioManager.onCallRemoved(call); verifyProperCleanup(); @@ -528,7 +528,7 @@ public class CallAudioManagerTest extends TelecomTestCase { mCallAudioManager.onCallStateChanged(call, CallState.AUDIO_PROCESSING, CallState.DISCONNECTED); - verify(mPlayerFactory, never()).createPlayer(anyInt()); + verify(mPlayerFactory, never()).createPlayer(any(Call.class), anyInt()); CallAudioModeStateMachine.MessageArgs expectedArgs2 = new Builder() .setHasActiveOrDialingCalls(false) .setHasRingingCalls(false) @@ -559,7 +559,7 @@ public class CallAudioManagerTest extends TelecomTestCase { mCallAudioManager.onCallStateChanged(call, CallState.AUDIO_PROCESSING, CallState.SIMULATED_RINGING); - verify(mPlayerFactory, never()).createPlayer(anyInt()); + verify(mPlayerFactory, never()).createPlayer(any(Call.class), anyInt()); CallAudioModeStateMachine.MessageArgs expectedArgs = new Builder() .setHasActiveOrDialingCalls(false) .setHasRingingCalls(true) @@ -588,7 +588,7 @@ public class CallAudioManagerTest extends TelecomTestCase { mCallAudioManager.onCallStateChanged(call, CallState.AUDIO_PROCESSING, CallState.ACTIVE); - verify(mPlayerFactory, never()).createPlayer(anyInt()); + verify(mPlayerFactory, never()).createPlayer(any(Call.class), anyInt()); CallAudioModeStateMachine.MessageArgs expectedArgs = new Builder() .setHasActiveOrDialingCalls(true) .setHasRingingCalls(false) @@ -617,7 +617,7 @@ public class CallAudioManagerTest extends TelecomTestCase { mCallAudioManager.onCallStateChanged(call, CallState.SIMULATED_RINGING, CallState.ACTIVE); - verify(mPlayerFactory, never()).createPlayer(anyInt()); + verify(mPlayerFactory, never()).createPlayer(any(Call.class), anyInt()); CallAudioModeStateMachine.MessageArgs expectedArgs = new Builder() .setHasActiveOrDialingCalls(true) .setHasRingingCalls(false) @@ -676,7 +676,7 @@ public class CallAudioManagerTest extends TelecomTestCase { mCallAudioManager.onCallStateChanged(call, CallState.SIMULATED_RINGING, CallState.DISCONNECTED); - verify(mPlayerFactory, never()).createPlayer(anyInt()); + verify(mPlayerFactory, never()).createPlayer(any(Call.class), anyInt()); CallAudioModeStateMachine.MessageArgs expectedArgs2 = new Builder() .setHasActiveOrDialingCalls(false) .setHasRingingCalls(false) @@ -869,7 +869,7 @@ public class CallAudioManagerTest extends TelecomTestCase { "", "", "", ToneGenerator.TONE_PROP_PROMPT)); mCallAudioManager.onCallStateChanged(call, CallState.ACTIVE, CallState.DISCONNECTED); - verify(mPlayerFactory).createPlayer(InCallTonePlayer.TONE_CALL_ENDED); + verify(mPlayerFactory).createPlayer(any(Call.class), eq(InCallTonePlayer.TONE_CALL_ENDED)); correctArgs = new Builder() .setHasActiveOrDialingCalls(false) .setHasRingingCalls(false) @@ -886,10 +886,10 @@ public class CallAudioManagerTest extends TelecomTestCase { assertMessageArgEquality(correctArgs, captor.getValue()); } - private void stopTone() { + private void stopTone(Call call) { ArgumentCaptor<CallAudioModeStateMachine.MessageArgs> captor = ArgumentCaptor.forClass(CallAudioModeStateMachine.MessageArgs.class); - mCallAudioManager.setIsTonePlaying(false); + mCallAudioManager.setIsTonePlaying(call, false); CallAudioModeStateMachine.MessageArgs correctArgs = new Builder() .setHasActiveOrDialingCalls(false) .setHasRingingCalls(false) diff --git a/tests/src/com/android/server/telecom/tests/InCallTonePlayerTest.java b/tests/src/com/android/server/telecom/tests/InCallTonePlayerTest.java index 1f1b939e0..004aa8eb2 100644 --- a/tests/src/com/android/server/telecom/tests/InCallTonePlayerTest.java +++ b/tests/src/com/android/server/telecom/tests/InCallTonePlayerTest.java @@ -23,7 +23,6 @@ import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.never; import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -36,6 +35,7 @@ import android.media.ToneGenerator; import android.test.suitebuilder.annotation.SmallTest; import com.android.server.telecom.AsyncRingtonePlayer; +import com.android.server.telecom.Call; import com.android.server.telecom.CallAudioManager; import com.android.server.telecom.CallAudioRoutePeripheralAdapter; import com.android.server.telecom.CallAudioRouteStateMachine; @@ -112,6 +112,8 @@ public class InCallTonePlayerTest extends TelecomTestCase { @Mock private CallAudioManager mCallAudioManager; + @Mock + private Call mCall; private InCallTonePlayer mInCallTonePlayer; @@ -122,7 +124,7 @@ public class InCallTonePlayerTest extends TelecomTestCase { when(mToneGeneratorFactory.get(anyInt(), anyInt())).thenReturn(mToneGenerator); when(mMediaPlayerFactory.get(anyInt(), any())).thenReturn(mMediaPlayerAdapter); - doNothing().when(mCallAudioManager).setIsTonePlaying(anyBoolean()); + doNothing().when(mCallAudioManager).setIsTonePlaying(any(Call.class), anyBoolean()); mCallAudioRoutePeripheralAdapter = new CallAudioRoutePeripheralAdapter( mCallAudioRouteStateMachine, mBluetoothRouteManager, mWiredHeadsetManager, @@ -130,7 +132,7 @@ public class InCallTonePlayerTest extends TelecomTestCase { mFactory = new InCallTonePlayer.Factory(mCallAudioRoutePeripheralAdapter, mLock, mToneGeneratorFactory, mMediaPlayerFactory, mAudioManagerAdapter); mFactory.setCallAudioManager(mCallAudioManager); - mInCallTonePlayer = mFactory.createPlayer(InCallTonePlayer.TONE_CALL_ENDED); + mInCallTonePlayer = mFactory.createPlayer(mCall, InCallTonePlayer.TONE_CALL_ENDED); } @Override @@ -147,11 +149,12 @@ public class InCallTonePlayerTest extends TelecomTestCase { assertTrue(mInCallTonePlayer.startTone()); // Verify we did play a tone. verify(mMediaPlayerFactory, timeout(TEST_TIMEOUT)).get(anyInt(), any()); - verify(mCallAudioManager).setIsTonePlaying(eq(true)); + verify(mCallAudioManager).setIsTonePlaying(any(Call.class), eq(true)); mInCallTonePlayer.stopTone(); // Timeouts due to threads! - verify(mCallAudioManager, timeout(TEST_TIMEOUT)).setIsTonePlaying(eq(false)); + verify(mCallAudioManager, timeout(TEST_TIMEOUT)).setIsTonePlaying(any(Call.class), + eq(false)); } @SmallTest @@ -161,11 +164,12 @@ public class InCallTonePlayerTest extends TelecomTestCase { assertTrue(mInCallTonePlayer.startTone()); // Verify we did play a tone. verify(mMediaPlayerFactory, timeout(TEST_TIMEOUT)).get(anyInt(), any()); - verify(mCallAudioManager).setIsTonePlaying(eq(true)); + verify(mCallAudioManager).setIsTonePlaying(any(Call.class), eq(true)); mInCallTonePlayer.stopTone(); // Timeouts due to threads! - verify(mCallAudioManager, timeout(TEST_TIMEOUT)).setIsTonePlaying(eq(false)); + verify(mCallAudioManager, timeout(TEST_TIMEOUT)).setIsTonePlaying(any(Call.class), + eq(false)); // Correctness check: ensure we can't start the tone again. assertFalse(mInCallTonePlayer.startTone()); @@ -174,15 +178,16 @@ public class InCallTonePlayerTest extends TelecomTestCase { @SmallTest @Test public void testInterruptToneGenerator() { - mInCallTonePlayer = mFactory.createPlayer(InCallTonePlayer.TONE_RING_BACK); + mInCallTonePlayer = mFactory.createPlayer(mCall, InCallTonePlayer.TONE_RING_BACK); when(mAudioManagerAdapter.isVolumeOverZero()).thenReturn(true); assertTrue(mInCallTonePlayer.startTone()); verify(mToneGenerator, timeout(TEST_TIMEOUT)).startTone(anyInt()); - verify(mCallAudioManager).setIsTonePlaying(eq(true)); + verify(mCallAudioManager).setIsTonePlaying(any(Call.class), eq(true)); mInCallTonePlayer.stopTone(); // Timeouts due to threads! - verify(mCallAudioManager, timeout(TEST_TIMEOUT)).setIsTonePlaying(eq(false)); + verify(mCallAudioManager, timeout(TEST_TIMEOUT)).setIsTonePlaying(any(Call.class), + eq(false)); // Ideally it would be nice to verify this, however release is a native method so appears to // cause flakiness when testing on Cuttlefish. // verify(mToneGenerator, timeout(TEST_TIMEOUT)).release(); @@ -199,7 +204,8 @@ public class InCallTonePlayerTest extends TelecomTestCase { // Verify we did play a tone. verify(mMediaPlayerFactory, timeout(TEST_TIMEOUT)).get(anyInt(), any()); - verify(mCallAudioManager, timeout(TEST_TIMEOUT)).setIsTonePlaying(eq(true)); + verify(mCallAudioManager, timeout(TEST_TIMEOUT)).setIsTonePlaying(any(Call.class), + eq(true)); } @SmallTest @@ -213,11 +219,11 @@ public class InCallTonePlayerTest extends TelecomTestCase { when(mBluetoothRouteManager.isCachedLeAudioDevice(mDevice)).thenReturn(false); when(mBluetoothRouteManager.isCachedHearingAidDevice(mDevice)).thenReturn(false); - mInCallTonePlayer = mFactory.createPlayer(InCallTonePlayer.TONE_RING_BACK); + mInCallTonePlayer = mFactory.createPlayer(mCall, InCallTonePlayer.TONE_RING_BACK); assertTrue(mInCallTonePlayer.startTone()); verify(mToneGeneratorFactory, timeout(TEST_TIMEOUT)) .get(eq(AudioManager.STREAM_BLUETOOTH_SCO), anyInt()); - verify(mCallAudioManager).setIsTonePlaying(eq(true)); + verify(mCallAudioManager).setIsTonePlaying(any(Call.class), eq(true)); } @SmallTest @@ -231,11 +237,11 @@ public class InCallTonePlayerTest extends TelecomTestCase { when(mBluetoothRouteManager.isCachedLeAudioDevice(mDevice)).thenReturn(false); when(mBluetoothRouteManager.isCachedHearingAidDevice(mDevice)).thenReturn(false); - mInCallTonePlayer = mFactory.createPlayer(InCallTonePlayer.TONE_CALL_WAITING); + mInCallTonePlayer = mFactory.createPlayer(mCall, InCallTonePlayer.TONE_CALL_WAITING); assertTrue(mInCallTonePlayer.startTone()); verify(mToneGeneratorFactory, timeout(TEST_TIMEOUT)) .get(eq(AudioManager.STREAM_BLUETOOTH_SCO), anyInt()); - verify(mCallAudioManager).setIsTonePlaying(eq(true)); + verify(mCallAudioManager).setIsTonePlaying(any(Call.class), eq(true)); } @SmallTest @@ -249,11 +255,11 @@ public class InCallTonePlayerTest extends TelecomTestCase { when(mBluetoothRouteManager.isCachedLeAudioDevice(mDevice)).thenReturn(false); when(mBluetoothRouteManager.isCachedHearingAidDevice(mDevice)).thenReturn(true); - mInCallTonePlayer = mFactory.createPlayer(InCallTonePlayer.TONE_RING_BACK); + mInCallTonePlayer = mFactory.createPlayer(mCall, InCallTonePlayer.TONE_RING_BACK); assertTrue(mInCallTonePlayer.startTone()); verify(mToneGeneratorFactory, timeout(TEST_TIMEOUT)) .get(eq(AudioManager.STREAM_VOICE_CALL), anyInt()); - verify(mCallAudioManager).setIsTonePlaying(eq(true)); + verify(mCallAudioManager).setIsTonePlaying(any(Call.class), eq(true)); } @SmallTest @@ -267,10 +273,10 @@ public class InCallTonePlayerTest extends TelecomTestCase { when(mBluetoothRouteManager.isCachedLeAudioDevice(mDevice)).thenReturn(false); when(mBluetoothRouteManager.isCachedHearingAidDevice(mDevice)).thenReturn(true); - mInCallTonePlayer = mFactory.createPlayer(InCallTonePlayer.TONE_CALL_WAITING); + mInCallTonePlayer = mFactory.createPlayer(mCall, InCallTonePlayer.TONE_CALL_WAITING); assertTrue(mInCallTonePlayer.startTone()); verify(mToneGeneratorFactory, timeout(TEST_TIMEOUT)) .get(eq(AudioManager.STREAM_VOICE_CALL), anyInt()); - verify(mCallAudioManager).setIsTonePlaying(eq(true)); + verify(mCallAudioManager).setIsTonePlaying(any(Call.class), eq(true)); } } diff --git a/tests/src/com/android/server/telecom/tests/RingbackPlayerTest.java b/tests/src/com/android/server/telecom/tests/RingbackPlayerTest.java index 8de5e28a2..e85194440 100644 --- a/tests/src/com/android/server/telecom/tests/RingbackPlayerTest.java +++ b/tests/src/com/android/server/telecom/tests/RingbackPlayerTest.java @@ -17,6 +17,7 @@ package com.android.server.telecom.tests; import static org.junit.Assert.assertFalse; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; @@ -49,7 +50,7 @@ public class RingbackPlayerTest extends TelecomTestCase { @Override public void setUp() throws Exception { super.setUp(); - when(mFactory.createPlayer(anyInt())).thenReturn(mTonePlayer); + when(mFactory.createPlayer(any(Call.class), anyInt())).thenReturn(mTonePlayer); mRingbackPlayer = new RingbackPlayer(mFactory); } diff --git a/tests/src/com/android/server/telecom/tests/RingerTest.java b/tests/src/com/android/server/telecom/tests/RingerTest.java index ee42c2af7..771e73634 100644 --- a/tests/src/com/android/server/telecom/tests/RingerTest.java +++ b/tests/src/com/android/server/telecom/tests/RingerTest.java @@ -133,7 +133,7 @@ public class RingerTest extends TelecomTestCase { mContext = spy(mComponentContextFixture.getTestDouble().getApplicationContext()); when(mFeatureFlags.telecomResolveHiddenDependencies()).thenReturn(true); doReturn(URI_VIBRATION_EFFECT).when(spyVibrationEffectProxy).get(any(), any()); - when(mockPlayerFactory.createPlayer(anyInt())).thenReturn(mockTonePlayer); + when(mockPlayerFactory.createPlayer(any(Call.class), anyInt())).thenReturn(mockTonePlayer); mockAudioManager = mContext.getSystemService(AudioManager.class); when(mockAudioManager.getRingerMode()).thenReturn(AudioManager.RINGER_MODE_NORMAL); when(mockVibrator.getInfo()).thenReturn(mockVibratorInfo); |