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

Commit 558c6e71 authored by Sailesh Nepal's avatar Sailesh Nepal Committed by Android (Google) Code Review
Browse files

Merge "Add new phone type (public API) DO NOT MERGE" into master-nova

parents 3af5efae 0590ac70
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.telephony;

import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.content.ComponentName;
import android.content.Context;
import android.os.Bundle;
import android.os.RemoteException;
@@ -1421,6 +1422,21 @@ public class TelephonyManager {
        }
    }

    /**
     * Inform the phone about a new incoming third party call. The phone will bind to the service
     * identified by component to handle the call.
     * @param component the component that should handle the intent.
     * @param callId the unique id of the call. This id is passed to the service via {@link
     *               ThirdPartyCallService#incomingCallAttach incomingCallAttach}.
     */
    public void newIncomingThirdPartyCall(ComponentName component, String callId) {
        try {
            getITelephony().newIncomingThirdPartyCall(component, callId);
        } catch (RemoteException ex) {
        } catch (NullPointerException ex) {
        }
    }

    /**
     * Returns the MMS user agent.
     */
+15 −8
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package android.telephony;

import android.os.Handler;
import android.os.Message;
import android.os.RemoteException;

import com.android.internal.telephony.IThirdPartyCallListener;
@@ -27,15 +29,12 @@ import com.android.internal.telephony.IThirdPartyCallListener;
public class ThirdPartyCallListener {
    private final IThirdPartyCallListener mListener;

    // Call end reason. TODO: rename this to DisconnectCause once they are public.
    // Call end reason.
    public static final int CALL_END_NORMAL = 1;
    public static final int CALL_END_INCOMING_MISSED = 2;
    public static final int CALL_END_OTHER = 3;

    public ThirdPartyCallListener(IThirdPartyCallListener listener) {
        if (listener == null) {
            throw new IllegalArgumentException("Invalid listener");
        }
        mListener = listener;
    }

@@ -45,7 +44,9 @@ public class ThirdPartyCallListener {
     */
    public void onCallProviderAttached(ThirdPartyCallProvider callProvider) {
        try {
            mListener.onCallProviderAttached(callProvider.getCallback());
            if (mListener != null) {
                mListener.onCallProviderAttached(callProvider.callback);
            }
        } catch (RemoteException e) {
        }
    }
@@ -55,7 +56,9 @@ public class ThirdPartyCallListener {
     */
    public void onRingingStarted() {
        try {
            if (mListener != null) {
                mListener.onRingingStarted();
            }
        } catch (RemoteException e) {
        }
    }
@@ -65,7 +68,9 @@ public class ThirdPartyCallListener {
     */
    public void onCallEstablished() {
        try {
            if (mListener != null) {
                mListener.onCallEstablished();
            }
        } catch (RemoteException e) {
        }
    }
@@ -75,7 +80,9 @@ public class ThirdPartyCallListener {
     */
    public void onCallEnded(int reason) {
        try {
            if (mListener != null) {
                mListener.onCallEnded(reason);
            }
        } catch (RemoteException e) {
        }
    }
+1 −21
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ public class ThirdPartyCallProvider {
    private static final int MSG_MUTE = 1;
    private static final int MSG_HANGUP = 2;
    private static final int MSG_INCOMING_CALL_ACCEPT = 3;
    private static final int MSG_SEND_DTMF = 4;

    /**
     * Mutes or unmutes the call.
@@ -52,18 +51,7 @@ public class ThirdPartyCallProvider {
        // default implementation empty
    }

    /**
     * Sends the given DTMF code. The code can be '0'-'9', 'A'-'D', '#', or '*'.
     */
    public void sendDtmf(char c) {
        // default implementation empty
    }

    IThirdPartyCallProvider getCallback() {
        return mCallback;
    }

    private final IThirdPartyCallProvider mCallback = new IThirdPartyCallProvider.Stub() {
    final IThirdPartyCallProvider callback = new IThirdPartyCallProvider.Stub() {
        @Override
        public void mute(boolean shouldMute) {
            Message.obtain(mHandler, MSG_MUTE, shouldMute ? 1 : 0, 0).sendToTarget();
@@ -78,11 +66,6 @@ public class ThirdPartyCallProvider {
        public void incomingCallAccept() {
            Message.obtain(mHandler, MSG_INCOMING_CALL_ACCEPT).sendToTarget();
        }

        @Override
        public void sendDtmf(char c) {
            Message.obtain(mHandler, MSG_SEND_DTMF, (int) c, 0).sendToTarget();
        }
    };

    private final Handler mHandler = new Handler() {
@@ -98,9 +81,6 @@ public class ThirdPartyCallProvider {
                case MSG_INCOMING_CALL_ACCEPT:
                    incomingCallAccept();
                    break;
                case MSG_SEND_DTMF:
                    sendDtmf((char) msg.arg1);
                    break;
            }
        }
    };
+5 −3
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package android.telephony;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.RemoteException;
import android.util.Pair;

import com.android.internal.telephony.IThirdPartyCallListener;
@@ -39,7 +40,8 @@ public class ThirdPartyCallService {
    }

    /**
     * Call to attach to an incoming call.
     * Call to attach to an incoming call. This is in response to a call to {@link
     * android.telephony.TelephonyManager#newIncomingThirdPartyCall newIncomingThirdPartyCall}.
     */
    public void incomingCallAttach(ThirdPartyCallListener listener, String callId) {
        // default implementation empty
@@ -49,10 +51,10 @@ public class ThirdPartyCallService {
     * Returns an IBinder instance that can returned from the service's onBind function.
     */
    public IBinder getBinder() {
        return mCallback;
        return callback;
    }

    private final IThirdPartyCallService.Stub mCallback = new IThirdPartyCallService.Stub() {
    private final IThirdPartyCallService.Stub callback = new IThirdPartyCallService.Stub() {
        @Override
        public void outgoingCallInitiate(IThirdPartyCallListener listener, String number) {
            Rlog.w("ThirdPartyPhone", "ThirdPartyCallService.IThirdPartyCallService.out");