Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2d16482b authored by Pranav Madapurmath's avatar Pranav Madapurmath
Browse files

Clean up use refactored audio routing flag

This flag is ready for clean up. There are some associated tests which
were written to support the legacy audio routing structure and have been
modified accordingly to support the new structure. Do note that the use
of this class in the new code path is very small but it is still applicable.

Bug: 409607970
Flag: EXEMPT flag cleanup
Test: atest TelecomUnitTests
Change-Id: I9dad3198e4b41fcf54ee2b7fcdbcde95bfb8a7d8
parent a1210d2a
Loading
Loading
Loading
Loading
+5 −16
Original line number Diff line number Diff line
@@ -585,25 +585,14 @@ public class CallAudioManager extends CallsManagerListenerBase {

    @VisibleForTesting
    public void setCallAudioRouteFocusState(int focusState) {
        if (mFeatureFlags.useRefactoredAudioRouteSwitching()) {
        mCallAudioRouteAdapter.sendMessageWithSessionInfo(
                CallAudioRouteStateMachine.SWITCH_FOCUS, focusState, 0);
        } else {
            mCallAudioRouteAdapter.sendMessageWithSessionInfo(
                    CallAudioRouteStateMachine.SWITCH_FOCUS, focusState);
        }
    }

    public void setCallAudioRouteFocusStateForEndTone() {
        if (mFeatureFlags.useRefactoredAudioRouteSwitching()) {
        mCallAudioRouteAdapter.sendMessageWithSessionInfo(
                CallAudioRouteStateMachine.SWITCH_FOCUS,
                CallAudioRouteStateMachine.ACTIVE_FOCUS, 1);
        } else {
            mCallAudioRouteAdapter.sendMessageWithSessionInfo(
                    CallAudioRouteStateMachine.SWITCH_FOCUS,
                    CallAudioRouteStateMachine.ACTIVE_FOCUS);
        }
    }

    public void notifyAudioOperationsComplete() {
+0 −6
Original line number Diff line number Diff line
@@ -324,12 +324,6 @@ public class CallAudioModeStateMachine extends StateMachine {
                    Log.i(this, "AudioOperationsComplete: "
                            + "AudioManager#abandonAudioFocusRequest(); now unfocused");
                    mAudioManager.abandonAudioFocusForCall();
                    // Clear requested communication device after the call ends.
                    if (!mFeatureFlags.useRefactoredAudioRouteSwitching()) {
                        mCommunicationDeviceTracker.clearCommunicationDevice(
                                mCommunicationDeviceTracker
                                        .getCurrentLocallyRequestedCommunicationDevice());
                    }
                    return HANDLED;
                default:
                    // The forced focus switch commands are handled by BaseState.
+18 −0
Original line number Diff line number Diff line
@@ -72,6 +72,24 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class CallAudioRouteController implements CallAudioRouteAdapter {
    public static class Factory {
        public CallAudioRouteController create(
                Context context, CallsManager callsManager,
                CallAudioManager.AudioServiceFactory audioServiceFactory,
                AudioRoute.Factory audioRouteFactory, WiredHeadsetManager wiredHeadsetManager,
                BluetoothRouteManager bluetoothRouteManager, StatusBarNotifier notifier,
                FeatureFlags featureFlags, TelecomMetricsController metricsController) {
            return new CallAudioRouteController(context,
                    callsManager,
                    audioServiceFactory,
                    audioRouteFactory,
                    wiredHeadsetManager,
                    bluetoothRouteManager,
                    notifier,
                    featureFlags,
                    metricsController);
        }
    }
    private static final AudioRoute DUMMY_ROUTE = new AudioRoute(TYPE_INVALID, null, null);
    private static final Map<Integer, Integer> ROUTE_MAP;
    static {
+16 −36
Original line number Diff line number Diff line
@@ -536,7 +536,7 @@ public class CallsManager extends Call.ListenerBase

    private final IncomingCallFilterGraphProvider mIncomingCallFilterGraphProvider;
    private CallAudioWatchdog mCallAudioWatchDog;
    private final CallAudioRouteAdapter mCallAudioRouteAdapter;
    private CallAudioRouteAdapter mCallAudioRouteAdapter;

    private final ConnectionServiceFocusManager.CallsManagerRequester mRequester =
            new ConnectionServiceFocusManager.CallsManagerRequester() {
@@ -643,7 +643,7 @@ public class CallsManager extends Call.ListenerBase
            ClockProxy clockProxy,
            AudioProcessingNotification audioProcessingNotification,
            BluetoothStateReceiver bluetoothStateReceiver,
            CallAudioRouteStateMachine.Factory callAudioRouteStateMachineFactory,
            CallAudioRouteController.Factory audioRouteControllerFactory,
            CallAudioModeStateMachine.Factory callAudioModeStateMachineFactory,
            InCallControllerFactory inCallControllerFactory,
            CallDiagnosticServiceController callDiagnosticServiceController,
@@ -713,27 +713,9 @@ public class CallsManager extends Call.ListenerBase

        mDtmfLocalTonePlayer =
                new DtmfLocalTonePlayer(new DtmfLocalTonePlayer.ToneGeneratorProxy(), featureFlags);
        // TODO: add another flag check when
        // bluetoothDeviceManager.getBluetoothHeadset().isScoManagedByAudio()
        // available and return true
        if (!featureFlags.useRefactoredAudioRouteSwitching()) {
            mCallAudioRouteAdapter = callAudioRouteStateMachineFactory.create(
                    context,
                    this,
                    bluetoothManager,
                    wiredHeadsetManager,
                    statusBarNotifier,
                    audioServiceFactory,
                    CallAudioRouteStateMachine.EARPIECE_AUTO_DETECT,
                    asyncCallAudioTaskExecutor,
                    communicationDeviceTracker,
                    featureFlags
            );
        } else {
            mCallAudioRouteAdapter = new CallAudioRouteController(context, this,
        mCallAudioRouteAdapter = audioRouteControllerFactory.create(context, this,
                audioServiceFactory, new AudioRoute.Factory(), wiredHeadsetManager,
                mBluetoothRouteManager, statusBarNotifier, featureFlags, metricsController);
        }
        mCallAudioRouteAdapter.initialize();
        bluetoothStateReceiver.setCallAudioRouteAdapter(mCallAudioRouteAdapter);
        bluetoothDeviceManager.setCallAudioRouteAdapter(mCallAudioRouteAdapter);
@@ -7224,7 +7206,6 @@ public class CallsManager extends Call.ListenerBase

    public void waitForAudioToUpdate(boolean expectActive) {
        Log.i(this, "waitForAudioToUpdate");
        if (mFeatureFlags.useRefactoredAudioRouteSwitching()) {
        try {
            CallAudioRouteController audioRouteController =
                    (CallAudioRouteController) mCallAudioRouteAdapter;
@@ -7239,7 +7220,6 @@ public class CallsManager extends Call.ListenerBase
            Log.w(this, e.toString());
        }
    }
    }

    @VisibleForTesting
    public Map<String, CompletableFuture<Pair<Call, PhoneAccountHandle>>>
+3 −1
Original line number Diff line number Diff line
@@ -394,6 +394,8 @@ public class TelecomSystem {
                            (packageName, userHandle) -> AppLabelProxy.Util.getAppLabel(mContext,
                                    userHandle, packageName, mFeatureFlags), asyncTaskExecutor,
                            mFeatureFlags);
            CallAudioRouteController.Factory audioRouteControllerFactory =
                    new CallAudioRouteController.Factory();

            mCallsManager = new CallsManager(
                    mContext,
@@ -419,7 +421,7 @@ public class TelecomSystem {
                    clockProxy,
                    audioProcessingNotification,
                    bluetoothStateReceiver,
                    callAudioRouteStateMachineFactory,
                    audioRouteControllerFactory,
                    callAudioModeStateMachineFactory,
                    inCallControllerFactory,
                    callDiagnosticServiceController,
Loading