diff options
Diffstat (limited to 'telecomm/java/android/telecom/InCallService.java')
-rw-r--r-- | telecomm/java/android/telecom/InCallService.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/telecomm/java/android/telecom/InCallService.java b/telecomm/java/android/telecom/InCallService.java index 671399b6f842..df6715d41a3f 100644 --- a/telecomm/java/android/telecom/InCallService.java +++ b/telecomm/java/android/telecom/InCallService.java @@ -22,6 +22,7 @@ import android.app.Service; import android.content.Intent; import android.hardware.camera2.CameraManager; import android.net.Uri; +import android.os.Bundle; import android.os.Handler; import android.os.IBinder; import android.os.Looper; @@ -74,6 +75,7 @@ public abstract class InCallService extends Service { private static final int MSG_BRING_TO_FOREGROUND = 6; private static final int MSG_ON_CAN_ADD_CALL_CHANGED = 7; private static final int MSG_SILENCE_RINGER = 8; + private static final int MSG_ON_CONNECTION_EVENT = 9; /** Default Handler used to consolidate binder method calls onto a single thread. */ private final Handler mHandler = new Handler(Looper.getMainLooper()) { @@ -118,6 +120,18 @@ public abstract class InCallService extends Service { case MSG_SILENCE_RINGER: mPhone.internalSilenceRinger(); break; + case MSG_ON_CONNECTION_EVENT: { + SomeArgs args = (SomeArgs) msg.obj; + try { + String callId = (String) args.arg1; + String event = (String) args.arg2; + Bundle extras = (Bundle) args.arg3; + mPhone.internalOnConnectionEvent(callId, event, extras); + } finally { + args.recycle(); + } + break; + } default: break; } @@ -174,6 +188,15 @@ public abstract class InCallService extends Service { public void silenceRinger() { mHandler.obtainMessage(MSG_SILENCE_RINGER).sendToTarget(); } + + @Override + public void onConnectionEvent(String callId, String event, Bundle extras) { + SomeArgs args = SomeArgs.obtain(); + args.arg1 = callId; + args.arg2 = event; + args.arg3 = extras; + mHandler.obtainMessage(MSG_ON_CONNECTION_EVENT, args).sendToTarget(); + } } private Phone.Listener mPhoneListener = new Phone.Listener() { @@ -426,6 +449,19 @@ public abstract class InCallService extends Service { } /** + * Called when a {@link Call} has received a connection event issued by the + * {@link ConnectionService}. + * <p> + * See {@link Connection#sendConnectionEvent(String, Bundle)}. + * + * @param call The call the event is associated with. + * @param event The event. + * @param extras Any associated extras. + */ + public void onConnectionEvent(Call call, String event, Bundle extras) { + } + + /** * Used to issue commands to the {@link Connection.VideoProvider} associated with a * {@link Call}. */ |