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

Commit 541afc09 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Have Telecom service notify AudioService of RTT call state." into...

Merge "Have Telecom service notify AudioService of RTT call state." into rvc-dev am: 54f663ac am: d09d4d93

Change-Id: I87f9bfca37fd2e42e7cb3c2396f05cd9baf5005d
parents aec8cb2d d09d4d93
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -392,6 +392,8 @@ public class CallsManager extends Call.ListenerBase

    private LinkedList<HandlerThread> mGraphHandlerThreads;

    private boolean mHasActiveRttCall = false;

    /**
     * Listener to PhoneAccountRegistrar events.
     */
@@ -897,6 +899,13 @@ public class CallsManager extends Call.ListenerBase
        }
    }

    @Override
    public void onConnectionPropertiesChanged(Call call, boolean didRttChange) {
        if (didRttChange) {
            updateHasActiveRttCall();
        }
    }

    @Override
    public void onParentChanged(Call call) {
        // parent-child relationship affects which call should be foreground, so do an update.
@@ -3423,6 +3432,7 @@ public class CallsManager extends Call.ListenerBase
                SystemClock.elapsedRealtime());

        updateCanAddCall();
        updateHasActiveRttCall();
        // onCallAdded for calls which immediately take the foreground (like the first call).
        for (CallsManagerListener listener : mListeners) {
            if (LogUtils.SYSTRACE_DEBUG) {
@@ -3456,6 +3466,7 @@ public class CallsManager extends Call.ListenerBase
        // Only broadcast changes for calls that are being tracked.
        if (shouldNotify) {
            updateCanAddCall();
            updateHasActiveRttCall();
            for (CallsManagerListener listener : mListeners) {
                if (LogUtils.SYSTRACE_DEBUG) {
                    Trace.beginSection(listener.getClass().toString() + " onCallRemoved");
@@ -3469,6 +3480,24 @@ public class CallsManager extends Call.ListenerBase
        Trace.endSection();
    }

    private void updateHasActiveRttCall() {
        boolean hasActiveRttCall = hasActiveRttCall();
        if (hasActiveRttCall != mHasActiveRttCall) {
            Log.i(this, "updateHasActiveRttCall %s -> %s", mHasActiveRttCall, hasActiveRttCall);
            AudioManager.setRttEnabled(hasActiveRttCall);
            mHasActiveRttCall = hasActiveRttCall;
        }
    }

    private boolean hasActiveRttCall() {
        for (Call call : mCalls) {
            if (call.isActive() && call.isRttCall()) {
                return true;
            }
        }
        return false;
    }

    /**
     * Sets the specified state on the specified call.
     *
@@ -3510,6 +3539,7 @@ public class CallsManager extends Call.ListenerBase
                // Only broadcast state change for calls that are being tracked.
                if (mCalls.contains(call)) {
                    updateCanAddCall();
                    updateHasActiveRttCall();
                    for (CallsManagerListener listener : mListeners) {
                        if (LogUtils.SYSTRACE_DEBUG) {
                            Trace.beginSection(listener.getClass().toString() +