Fix flaky tests (tentatively)
Fix the flaky tests by force-enabling the earpiece route in the telecom
end-to-end tests
Change-Id: Ib83d3083d18dbebf095a7f6f5747e83671ffe8c0
Merged-In: Ib83d3083d18dbebf095a7f6f5747e83671ffe8c0
Fixes: 78481964
Test: unit test on gce
diff --git a/src/com/android/server/telecom/TelecomSystem.java b/src/com/android/server/telecom/TelecomSystem.java
index 0cbe248..bb7f3fb 100644
--- a/src/com/android/server/telecom/TelecomSystem.java
+++ b/src/com/android/server/telecom/TelecomSystem.java
@@ -195,6 +195,7 @@
PhoneNumberUtilsAdapter phoneNumberUtilsAdapter,
IncomingCallNotifier incomingCallNotifier,
InCallTonePlayer.ToneGeneratorFactory toneGeneratorFactory,
+ CallAudioRouteStateMachine.Factory callAudioRouteStateMachineFactory,
ClockProxy clockProxy) {
mContext = context.getApplicationContext();
LogUtils.initLogging(mContext);
@@ -279,7 +280,7 @@
toneGeneratorFactory,
clockProxy,
bluetoothStateReceiver,
- new CallAudioRouteStateMachine.Factory(),
+ callAudioRouteStateMachineFactory,
new CallAudioModeStateMachine.Factory(),
inCallControllerFactory);
diff --git a/src/com/android/server/telecom/components/TelecomService.java b/src/com/android/server/telecom/components/TelecomService.java
index a7c6ef9..dbae50d 100644
--- a/src/com/android/server/telecom/components/TelecomService.java
+++ b/src/com/android/server/telecom/components/TelecomService.java
@@ -33,6 +33,7 @@
import com.android.server.telecom.AsyncRingtonePlayer;
import com.android.server.telecom.BluetoothAdapterProxy;
import com.android.server.telecom.BluetoothPhoneServiceImpl;
+import com.android.server.telecom.CallAudioRouteStateMachine;
import com.android.server.telecom.CallerInfoAsyncQueryFactory;
import com.android.server.telecom.CallsManager;
import com.android.server.telecom.ClockProxy;
@@ -169,6 +170,7 @@
new PhoneNumberUtilsAdapterImpl(),
new IncomingCallNotifier(context),
ToneGenerator::new,
+ new CallAudioRouteStateMachine.Factory(),
new ClockProxy() {
@Override
public long currentTimeMillis() {
diff --git a/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java b/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
index 235cc5e..ba04666 100644
--- a/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
+++ b/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
@@ -69,6 +69,7 @@
import com.android.server.telecom.AsyncRingtonePlayer;
import com.android.server.telecom.BluetoothPhoneServiceImpl;
import com.android.server.telecom.CallAudioManager;
+import com.android.server.telecom.CallAudioRouteStateMachine;
import com.android.server.telecom.CallerInfoLookupHelper;
import com.android.server.telecom.CallsManager;
import com.android.server.telecom.CallsManagerListenerBase;
@@ -85,8 +86,11 @@
import com.android.server.telecom.PhoneNumberUtilsAdapterImpl;
import com.android.server.telecom.ProximitySensorManager;
import com.android.server.telecom.ProximitySensorManagerFactory;
+import com.android.server.telecom.StatusBarNotifier;
import com.android.server.telecom.TelecomSystem;
import com.android.server.telecom.Timeouts;
+import com.android.server.telecom.WiredHeadsetManager;
+import com.android.server.telecom.bluetooth.BluetoothRouteManager;
import com.android.server.telecom.components.UserCallIntentProcessor;
import com.android.server.telecom.ui.IncomingCallNotifier;
import com.android.server.telecom.ui.MissedCallNotifierImpl.MissedCallNotifierImplFactory;
@@ -432,38 +436,39 @@
when(mClockProxy.elapsedRealtime()).thenReturn(TEST_CREATE_ELAPSED_TIME);
mTelecomSystem = new TelecomSystem(
mComponentContextFixture.getTestDouble(),
- new MissedCallNotifierImplFactory() {
- @Override
- public MissedCallNotifier makeMissedCallNotifierImpl(Context context,
- PhoneAccountRegistrar phoneAccountRegistrar,
- DefaultDialerCache defaultDialerCache) {
- return mMissedCallNotifier;
- }
- },
+ (context, phoneAccountRegistrar, defaultDialerCache) -> mMissedCallNotifier,
mCallerInfoAsyncQueryFactoryFixture.getTestDouble(),
headsetMediaButtonFactory,
proximitySensorManagerFactory,
inCallWakeLockControllerFactory,
- new CallAudioManager.AudioServiceFactory() {
- @Override
- public IAudioService getAudioService() {
- return mAudioService;
- }
- },
- new BluetoothPhoneServiceImpl.BluetoothPhoneServiceImplFactory() {
- @Override
- public BluetoothPhoneServiceImpl makeBluetoothPhoneServiceImpl(Context context,
- TelecomSystem.SyncRoot lock, CallsManager callsManager,
- PhoneAccountRegistrar phoneAccountRegistrar) {
- return mBluetoothPhoneServiceImpl;
- }
- },
+ () -> mAudioService,
+ (context, lock, callsManager, phoneAccountRegistrar) -> mBluetoothPhoneServiceImpl,
ConnectionServiceFocusManager::new,
mTimeoutsAdapter,
mAsyncRingtonePlayer,
mPhoneNumberUtilsAdapter,
mIncomingCallNotifier,
(streamType, volume) -> mock(ToneGenerator.class),
+ new CallAudioRouteStateMachine.Factory() {
+ @Override
+ public CallAudioRouteStateMachine create(
+ Context context,
+ CallsManager callsManager,
+ BluetoothRouteManager bluetoothManager,
+ WiredHeadsetManager wiredHeadsetManager,
+ StatusBarNotifier statusBarNotifier,
+ CallAudioManager.AudioServiceFactory audioServiceFactory,
+ int earpieceControl) {
+ return new CallAudioRouteStateMachine(context,
+ callsManager,
+ bluetoothManager,
+ wiredHeadsetManager,
+ statusBarNotifier,
+ audioServiceFactory,
+ // Force enable an earpiece for the end-to-end tests
+ CallAudioRouteStateMachine.EARPIECE_FORCE_ENABLED);
+ }
+ },
mClockProxy);
mComponentContextFixture.setTelecomManager(new TelecomManager(