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

Commit 8c332b72 authored by Santos Cordon's avatar Santos Cordon
Browse files

TelephonyManager should use TelecomManager's getCallState().

Telecom's version includes non-cellular calls in its result. Many apps
compile against TelephonyManager's existing API so we should update it
to use telecom instead.

We kept the implementation as cellular-only for
getCallState[ForSubscription](...) version of the API (which is hidden
anyway).

Bug: 21732997
Change-Id: Ifd27e6b49d76fe96ccc969e5262b1a876670aeef
parent cc87cfa2
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -193,7 +193,7 @@ public class TelephonyManager {
    //

    /**
     * Broadcast intent action indicating that the call state (cellular)
     * Broadcast intent action indicating that the call state
     * on the device has changed.
     *
     * <p>
@@ -2437,10 +2437,23 @@ public class TelephonyManager {
    public static final int CALL_STATE_OFFHOOK = 2;

    /**
     * Returns a constant indicating the call state (cellular) on the device.
     * Returns one of the following constants that represents the current state of all
     * phone calls.
     *
     * {@link TelephonyManager#CALL_STATE_RINGING}
     * {@link TelephonyManager#CALL_STATE_OFFHOOK}
     * {@link TelephonyManager#CALL_STATE_IDLE}
     */
    public int getCallState() {
        return getCallState(getDefaultSubscription());
        try {
            ITelecomService telecom = getTelecomService();
            if (telecom != null) {
                return telecom.getCallState();
            }
        } catch (RemoteException e) {
            Log.e(TAG, "Error calling ITelecomService#getCallState", e);
        }
        return CALL_STATE_IDLE;
    }

    /**