diff options
Diffstat (limited to 'telecomm')
-rw-r--r-- | telecomm/java/android/telecomm/CallService.java | 24 | ||||
-rw-r--r-- | telecomm/java/android/telecomm/ICallService.aidl | 9 | ||||
-rw-r--r-- | telecomm/java/android/telecomm/TelecommConstants.java | 10 |
3 files changed, 38 insertions, 5 deletions
diff --git a/telecomm/java/android/telecomm/CallService.java b/telecomm/java/android/telecomm/CallService.java index 0eb96cc..8767ffa 100644 --- a/telecomm/java/android/telecomm/CallService.java +++ b/telecomm/java/android/telecomm/CallService.java @@ -18,6 +18,7 @@ package android.telecomm; import android.app.Service; import android.content.Intent; +import android.os.Bundle; import android.os.Handler; import android.os.IBinder; import android.os.Message; @@ -63,7 +64,14 @@ public abstract class CallService extends Service { disconnect((String) msg.obj); break; case MSG_SET_INCOMING_CALL_ID: - setIncomingCallId((String) msg.obj); + SomeArgs args = (SomeArgs) msg.obj; + try { + String callId = (String) args.arg1; + Bundle extras = (Bundle) args.arg2; + setIncomingCallId(callId, extras); + } finally { + args.recycle(); + } break; case MSG_ANSWER: answer((String) msg.obj); @@ -103,8 +111,11 @@ public abstract class CallService extends Service { } @Override - public void setIncomingCallId(String callId) { - mMessageHandler.obtainMessage(MSG_SET_INCOMING_CALL_ID, callId).sendToTarget(); + public void setIncomingCallId(String callId, Bundle extras) { + SomeArgs args = SomeArgs.obtain(); + args.arg1 = callId; + args.arg2 = extras; + mMessageHandler.obtainMessage(MSG_SET_INCOMING_CALL_ID, args).sendToTarget(); } @Override @@ -201,9 +212,14 @@ public abstract class CallService extends Service { * additional information about the call through {@link ICallServiceAdapter#handleIncomingCall}. * Following that, the call service can update the call at will using the specified call ID. * + * If a {@link Bundle} was passed (via {@link TelecommConstants#EXTRA_INCOMING_CALL_EXTRAS}) in + * with the {@link TelecommConstants#ACTION_INCOMING_CALL} intent, <code>extras</code> will be + * populated with this {@link Bundle}. Otherwise, an empty Bundle will be returned. + * * @param callId The ID of the call. + * @param extras The optional extras which were passed in with the intent, or an empty Bundle. */ - public abstract void setIncomingCallId(String callId); + public abstract void setIncomingCallId(String callId, Bundle extras); /** * Answers a ringing call identified by callId. Telecomm invokes this method as a result of the diff --git a/telecomm/java/android/telecomm/ICallService.aidl b/telecomm/java/android/telecomm/ICallService.aidl index 6f3c4d46..382bdd5 100644 --- a/telecomm/java/android/telecomm/ICallService.aidl +++ b/telecomm/java/android/telecomm/ICallService.aidl @@ -16,6 +16,7 @@ package android.telecomm; +import android.os.Bundle; import android.telecomm.CallInfo; import android.telecomm.ICallServiceAdapter; @@ -81,9 +82,15 @@ oneway interface ICallService { * additional information of the call through {@link ICallServiceAdapter#handleIncomingCall}. * Following that, the call service can update the call at will using the specified call ID. * + * As part of the {@link TelecommConstants#ACTION_INCOMING_CALL} Intent, a Bundle of extra + * data could be sent via {@link TelecommConstants#EXTRA_INCOMING_CALL_EXTRAS}, which is + * returned through this method. If no data was given, an empty Bundle will be returned. + * * @param callId The ID of the call. + * @param extras The Bundle of extra information passed via + * {@link TelecommConstants#EXTRA_INCOMING_CALL_EXTRAS}. */ - void setIncomingCallId(String callId); + void setIncomingCallId(String callId, in Bundle extras); /** * Answers a ringing call identified by callId. Telecomm invokes this method as a result of the diff --git a/telecomm/java/android/telecomm/TelecommConstants.java b/telecomm/java/android/telecomm/TelecommConstants.java index b0651c8..564f0cb 100644 --- a/telecomm/java/android/telecomm/TelecommConstants.java +++ b/telecomm/java/android/telecomm/TelecommConstants.java @@ -16,6 +16,8 @@ package android.telecomm; +import android.os.Bundle; + /** * Defines constants for use with the Telecomm system. */ @@ -42,4 +44,12 @@ public final class TelecommConstants { */ public static final String EXTRA_CALL_SERVICE_DESCRIPTOR = "android.intent.extra.CALL_SERVICE_DESCRIPTOR"; + + /** + * Optional extra for {@link #ACTION_INCOMING_CALL} containing a {@link Bundle} which contains + * metadata about the call. This {@link Bundle} will be returned to the {@link CallService} as + * part of {@link CallService#setIncomingCallId(String,Bundle)}. + */ + public static final String EXTRA_INCOMING_CALL_EXTRAS = + "android.intent.extra.INCOMING_CALL_EXTRAS"; } |