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

Commit f86db2e6 authored by Yorke Lee's avatar Yorke Lee
Browse files

Add getCallState to Telecomm

Use getCallState in TelecommManager.isInCall and isRinging

Bug: 17378767
Change-Id: Id356c03f7fa21297d0376d56e09ce3f45399435b
parent 7cc70b4f
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -89,6 +89,7 @@ public final class CallsManager extends Call.ListenerBase {
    private final WiredHeadsetManager mWiredHeadsetManager;
    private final TtyManager mTtyManager;
    private final ProximitySensorManager mProximitySensorManager;
    private final PhoneStateBroadcaster mPhoneStateBroadcaster;

    /**
     * The call the user is currently interacting with. This is the call that should have audio
@@ -115,10 +116,11 @@ public final class CallsManager extends Call.ListenerBase {
        mHeadsetMediaButton = new HeadsetMediaButton(app, this);
        mTtyManager = new TtyManager(app, mWiredHeadsetManager);
        mProximitySensorManager = new ProximitySensorManager(app);
        mPhoneStateBroadcaster = new PhoneStateBroadcaster();

        mListeners.add(statusBarNotifier);
        mListeners.add(new CallLogManager(app));
        mListeners.add(new PhoneStateBroadcaster());
        mListeners.add(mPhoneStateBroadcaster);
        mListeners.add(mInCallController);
        mListeners.add(mRinger);
        mListeners.add(new RingbackPlayer(this, playerFactory));
@@ -755,6 +757,12 @@ public final class CallsManager extends Call.ListenerBase {
        return call;
    }

    /**
     * @return the call state currently tracked by {@link PhoneStateBroadcaster}
     */
    int getCallState() {
        return mPhoneStateBroadcaster.getCallState();
    }

    /**
     * Adds the specified call to the main list of live calls.
+4 −0
Original line number Diff line number Diff line
@@ -66,6 +66,10 @@ final class PhoneStateBroadcaster extends CallsManagerListenerBase {
        }
    }

    int getCallState() {
        return mCurrentState;
    }

    private void sendPhoneStateChangedBroadcast(Call call, int phoneState) {
        if (phoneState == mCurrentState) {
            return;
+13 −2
Original line number Diff line number Diff line
@@ -382,7 +382,9 @@ public class TelecomServiceImpl extends ITelecomService.Stub {
        enforceReadPermission();
        // Do not use sendRequest() with this method since it could cause a deadlock with
        // audio service, which we call into from the main thread: AudioManager.setMode().
        return mCallsManager.hasAnyCalls();
        final int callState = mCallsManager.getCallState();
        return callState == TelephonyManager.CALL_STATE_OFFHOOK
                || callState == TelephonyManager.CALL_STATE_RINGING;
    }

    /**
@@ -391,7 +393,16 @@ public class TelecomServiceImpl extends ITelecomService.Stub {
    @Override
    public boolean isRinging() {
        enforceReadPermission();
        return mCallsManager.hasRingingCall();
        return mCallsManager.getCallState() == TelephonyManager.CALL_STATE_RINGING;
    }

    /**
     * @see TelecomManager#getCallState
     */
    @Override
    public int getCallState() {
        enforceReadPermission();
        return mCallsManager.getCallState();
    }

    /**