diff --git a/Android.mk b/Android.mk index 1d797c49b3e7d..56234e69a646e 100644 --- a/Android.mk +++ b/Android.mk @@ -384,6 +384,8 @@ LOCAL_SRC_FILES += \ media/java/android/media/tv/ITvInputSessionCallback.aidl \ media/java/android/service/media/IMediaBrowserService.aidl \ media/java/android/service/media/IMediaBrowserServiceCallbacks.aidl \ + telecomm/java/com/android/internal/telecom/ICallScreeningAdapter.aidl \ + telecomm/java/com/android/internal/telecom/ICallScreeningService.aidl \ telecomm/java/com/android/internal/telecom/IVideoCallback.aidl \ telecomm/java/com/android/internal/telecom/IVideoProvider.aidl \ telecomm/java/com/android/internal/telecom/IConnectionService.aidl \ diff --git a/api/current.txt b/api/current.txt index 2a4228face8c5..be804b1643335 100644 --- a/api/current.txt +++ b/api/current.txt @@ -33,6 +33,7 @@ package android { field public static final java.lang.String BIND_PRINT_SERVICE = "android.permission.BIND_PRINT_SERVICE"; field public static final java.lang.String BIND_QUICK_SETTINGS_TILE = "android.permission.BIND_QUICK_SETTINGS_TILE"; field public static final java.lang.String BIND_REMOTEVIEWS = "android.permission.BIND_REMOTEVIEWS"; + field public static final java.lang.String BIND_SCREENING_SERVICE = "android.permission.BIND_SCREENING_SERVICE"; field public static final java.lang.String BIND_TELECOM_CONNECTION_SERVICE = "android.permission.BIND_TELECOM_CONNECTION_SERVICE"; field public static final java.lang.String BIND_TEXT_SERVICE = "android.permission.BIND_TEXT_SERVICE"; field public static final java.lang.String BIND_TV_INPUT = "android.permission.BIND_TV_INPUT"; @@ -35289,6 +35290,30 @@ package android.telecom { field public static final int ROUTE_WIRED_OR_EARPIECE = 5; // 0x5 } + public abstract class CallScreeningService extends android.app.Service { + ctor public CallScreeningService(); + method public android.os.IBinder onBind(android.content.Intent); + method public abstract void onScreenCall(android.telecom.Call.Details); + method public final void respondToCall(android.telecom.Call.Details, android.telecom.CallScreeningService.CallResponse); + field public static final java.lang.String SERVICE_INTERFACE = "android.telecom.CallScreeningService"; + } + + public class CallScreeningService.CallResponse { + method public boolean getDisallowCall(); + method public boolean getRejectCall(); + method public boolean getSkipCallLog(); + method public boolean getSkipNotification(); + } + + public class CallScreeningService.CallResponse.Builder { + ctor public CallScreeningService.CallResponse.Builder(); + method public android.telecom.CallScreeningService.CallResponse build(); + method public android.telecom.CallScreeningService.CallResponse.Builder setDisallowCall(boolean); + method public android.telecom.CallScreeningService.CallResponse.Builder setRejectCall(boolean); + method public android.telecom.CallScreeningService.CallResponse.Builder setSkipCallLog(boolean); + method public android.telecom.CallScreeningService.CallResponse.Builder setSkipNotification(boolean); + } + public abstract class Conference extends android.telecom.Conferenceable { ctor public Conference(android.telecom.PhoneAccountHandle); method public final boolean addConnection(android.telecom.Connection); diff --git a/api/system-current.txt b/api/system-current.txt index 18e54d7294f51..3c833771e6482 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -46,6 +46,7 @@ package android { field public static final java.lang.String BIND_PRINT_SERVICE = "android.permission.BIND_PRINT_SERVICE"; field public static final java.lang.String BIND_QUICK_SETTINGS_TILE = "android.permission.BIND_QUICK_SETTINGS_TILE"; field public static final java.lang.String BIND_REMOTEVIEWS = "android.permission.BIND_REMOTEVIEWS"; + field public static final java.lang.String BIND_SCREENING_SERVICE = "android.permission.BIND_SCREENING_SERVICE"; field public static final java.lang.String BIND_TELECOM_CONNECTION_SERVICE = "android.permission.BIND_TELECOM_CONNECTION_SERVICE"; field public static final java.lang.String BIND_TEXT_SERVICE = "android.permission.BIND_TEXT_SERVICE"; field public static final java.lang.String BIND_TRUST_AGENT = "android.permission.BIND_TRUST_AGENT"; @@ -37586,6 +37587,30 @@ package android.telecom { field public static final int ROUTE_WIRED_OR_EARPIECE = 5; // 0x5 } + public abstract class CallScreeningService extends android.app.Service { + ctor public CallScreeningService(); + method public android.os.IBinder onBind(android.content.Intent); + method public abstract void onScreenCall(android.telecom.Call.Details); + method public final void respondToCall(android.telecom.Call.Details, android.telecom.CallScreeningService.CallResponse); + field public static final java.lang.String SERVICE_INTERFACE = "android.telecom.CallScreeningService"; + } + + public class CallScreeningService.CallResponse { + method public boolean getDisallowCall(); + method public boolean getRejectCall(); + method public boolean getSkipCallLog(); + method public boolean getSkipNotification(); + } + + public class CallScreeningService.CallResponse.Builder { + ctor public CallScreeningService.CallResponse.Builder(); + method public android.telecom.CallScreeningService.CallResponse build(); + method public android.telecom.CallScreeningService.CallResponse.Builder setDisallowCall(boolean); + method public android.telecom.CallScreeningService.CallResponse.Builder setRejectCall(boolean); + method public android.telecom.CallScreeningService.CallResponse.Builder setSkipCallLog(boolean); + method public android.telecom.CallScreeningService.CallResponse.Builder setSkipNotification(boolean); + } + public abstract class Conference extends android.telecom.Conferenceable { ctor public Conference(android.telecom.PhoneAccountHandle); method public final boolean addConnection(android.telecom.Connection); diff --git a/api/test-current.txt b/api/test-current.txt index 888ac03c4663f..d93eb69cf20ca 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -33,6 +33,7 @@ package android { field public static final java.lang.String BIND_PRINT_SERVICE = "android.permission.BIND_PRINT_SERVICE"; field public static final java.lang.String BIND_QUICK_SETTINGS_TILE = "android.permission.BIND_QUICK_SETTINGS_TILE"; field public static final java.lang.String BIND_REMOTEVIEWS = "android.permission.BIND_REMOTEVIEWS"; + field public static final java.lang.String BIND_SCREENING_SERVICE = "android.permission.BIND_SCREENING_SERVICE"; field public static final java.lang.String BIND_TELECOM_CONNECTION_SERVICE = "android.permission.BIND_TELECOM_CONNECTION_SERVICE"; field public static final java.lang.String BIND_TEXT_SERVICE = "android.permission.BIND_TEXT_SERVICE"; field public static final java.lang.String BIND_TV_INPUT = "android.permission.BIND_TV_INPUT"; @@ -35303,6 +35304,30 @@ package android.telecom { field public static final int ROUTE_WIRED_OR_EARPIECE = 5; // 0x5 } + public abstract class CallScreeningService extends android.app.Service { + ctor public CallScreeningService(); + method public android.os.IBinder onBind(android.content.Intent); + method public abstract void onScreenCall(android.telecom.Call.Details); + method public final void respondToCall(android.telecom.Call.Details, android.telecom.CallScreeningService.CallResponse); + field public static final java.lang.String SERVICE_INTERFACE = "android.telecom.CallScreeningService"; + } + + public class CallScreeningService.CallResponse { + method public boolean getDisallowCall(); + method public boolean getRejectCall(); + method public boolean getSkipCallLog(); + method public boolean getSkipNotification(); + } + + public class CallScreeningService.CallResponse.Builder { + ctor public CallScreeningService.CallResponse.Builder(); + method public android.telecom.CallScreeningService.CallResponse build(); + method public android.telecom.CallScreeningService.CallResponse.Builder setDisallowCall(boolean); + method public android.telecom.CallScreeningService.CallResponse.Builder setRejectCall(boolean); + method public android.telecom.CallScreeningService.CallResponse.Builder setSkipCallLog(boolean); + method public android.telecom.CallScreeningService.CallResponse.Builder setSkipNotification(boolean); + } + public abstract class Conference extends android.telecom.Conferenceable { ctor public Conference(android.telecom.PhoneAccountHandle); method public final boolean addConnection(android.telecom.Connection); diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index f5e704d78bad1..313d6d0437155 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1406,6 +1406,13 @@ + + +