diff --git a/Android.mk b/Android.mk index 8daa1aa9c114b..c947b0e5b08eb 100644 --- a/Android.mk +++ b/Android.mk @@ -385,6 +385,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 37bfd2e75aaf3..3cdaa9fc65c33 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"; @@ -35372,6 +35373,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 188c919f216f7..b1db464e9202a 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"; @@ -37679,6 +37680,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 d13ca99be4e88..e87df154a5a14 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"; @@ -35386,6 +35387,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 5a2f6015494bf..3aa7de57288b7 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1407,6 +1407,13 @@ + + +