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

Commit 2fb090de authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 13482186 from 2d16482b to 25Q3-release

Change-Id: I787319caf24200041bc0cabfc4a0ae2c7312bb97
parents f8267a5e 2d16482b
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