From f2600eb5aca1ec9bda2674d878528a770d5c220b Mon Sep 17 00:00:00 2001 From: Santos Cordon Date: Mon, 22 Jun 2015 15:02:20 -0700 Subject: [PATCH] InCallService meta-data [2/4] Bug: 21816241 Change-Id: I9af91a1287f652247ef590878759aa277bd925e5 --- api/current.txt | 1 + api/system-current.txt | 1 + .../java/android/telecom/InCallService.java | 19 ++++++++++++++++++- .../java/android/telecom/TelecomManager.java | 8 ++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/api/current.txt b/api/current.txt index 1287c74e370b1..e164cab9fe03a 100644 --- a/api/current.txt +++ b/api/current.txt @@ -30549,6 +30549,7 @@ package android.telecom { field public static final java.lang.String EXTRA_START_CALL_WITH_VIDEO_STATE = "android.telecom.extra.START_CALL_WITH_VIDEO_STATE"; field public static final java.lang.String GATEWAY_ORIGINAL_ADDRESS = "android.telecom.extra.GATEWAY_ORIGINAL_ADDRESS"; field public static final java.lang.String GATEWAY_PROVIDER_PACKAGE = "android.telecom.extra.GATEWAY_PROVIDER_PACKAGE"; + field public static final java.lang.String METADATA_IN_CALL_SERVICE_UI = "android.telecom.IN_CALL_SERVICE_UI"; field public static final int PRESENTATION_ALLOWED = 1; // 0x1 field public static final int PRESENTATION_PAYPHONE = 4; // 0x4 field public static final int PRESENTATION_RESTRICTED = 2; // 0x2 diff --git a/api/system-current.txt b/api/system-current.txt index 1f8f7a39c6c57..0e650cc792724 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -32770,6 +32770,7 @@ package android.telecom { field public static final java.lang.String EXTRA_START_CALL_WITH_VIDEO_STATE = "android.telecom.extra.START_CALL_WITH_VIDEO_STATE"; field public static final java.lang.String GATEWAY_ORIGINAL_ADDRESS = "android.telecom.extra.GATEWAY_ORIGINAL_ADDRESS"; field public static final java.lang.String GATEWAY_PROVIDER_PACKAGE = "android.telecom.extra.GATEWAY_PROVIDER_PACKAGE"; + field public static final java.lang.String METADATA_IN_CALL_SERVICE_UI = "android.telecom.IN_CALL_SERVICE_UI"; field public static final int PRESENTATION_ALLOWED = 1; // 0x1 field public static final int PRESENTATION_PAYPHONE = 4; // 0x4 field public static final int PRESENTATION_RESTRICTED = 2; // 0x2 diff --git a/telecomm/java/android/telecom/InCallService.java b/telecomm/java/android/telecom/InCallService.java index fb985ceead7ce..0f8ac632a876b 100644 --- a/telecomm/java/android/telecom/InCallService.java +++ b/telecomm/java/android/telecom/InCallService.java @@ -39,7 +39,24 @@ import java.util.List; /** * This service is implemented by any app that wishes to provide the user-interface for managing * phone calls. Telecom binds to this service while there exists a live (active or incoming) call, - * and uses it to notify the in-call app of any live and and recently disconnected calls. + * and uses it to notify the in-call app of any live and recently disconnected calls. An app must + * first be set as the default phone app (See {@link TelecomManager#getDefaultDialerPackage()}) + * before the telecom service will bind to its {@code InCallService} implementation. + *

+ * Below is an example manifest registration for an {@code InCallService}. The meta-data + * ({@link TelecomManager#METADATA_IN_CALL_SERVICE_UI}) indicates that this particular + * {@code InCallService} implementation intends to replace the built-in in-call UI. + *

+ * {@code
+ * <service android:name="your.package.YourInCallServiceImplementation"
+ *          android:permission="android.permission.BIND_IN_CALL_SERVICE">
+ *      <meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="true" />
+ *      <intent-filter>
+ *          <action android:name="android.telecom.InCallService"/>
+ *      </intent-filter>
+ * </service>
+ * }
+ * 
*/ public abstract class InCallService extends Service { diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java index e2921c4432cd3..11f206aa7b610 100644 --- a/telecomm/java/android/telecom/TelecomManager.java +++ b/telecomm/java/android/telecom/TelecomManager.java @@ -255,6 +255,14 @@ public class TelecomManager { */ public static final String EXTRA_CALL_BACK_NUMBER = "android.telecom.extra.CALL_BACK_NUMBER"; + /** + * A boolean meta-data value indicating whether an {@link InCallService} implements an + * in-call user interface. Dialer implementations (see {@link #getDefaultDialerPackage()}) which + * would also like to replace the in-call interface should set this meta-data to {@code true} in + * the manifest registration of their {@link InCallService}. + */ + public static final String METADATA_IN_CALL_SERVICE_UI = "android.telecom.IN_CALL_SERVICE_UI"; + /** * The dual tone multi-frequency signaling character sent to indicate the dialing system should * pause for a predefined period.