diff options
| author | Hall Liu <hallliu@google.com> | 2021-02-04 13:11:04 -0800 |
|---|---|---|
| committer | Hall Liu <hallliu@google.com> | 2021-02-08 17:57:49 -0800 |
| commit | 2b4f7ed57a420c52f6c9ae01834cf2a54e945ded (patch) | |
| tree | ffd96c3fe394d78a1389720bfd798340b3c48b01 /tests/src/com | |
| parent | 96669b2b2b3b1f7ad35f021318d357dc75217d95 (diff) | |
| download | platform_packages_services_Telecomm-2b4f7ed57a420c52f6c9ae01834cf2a54e945ded.tar.gz platform_packages_services_Telecomm-2b4f7ed57a420c52f6c9ae01834cf2a54e945ded.tar.bz2 platform_packages_services_Telecomm-2b4f7ed57a420c52f6c9ae01834cf2a54e945ded.zip | |
Refactor CallScreeningService
Take the call response directly from the client app and do all logic
Telecom-side. Also pipe through the response to the connection service.
Bug: Bug: 179412110
Test: atest ConnectionServiceTest CallScreeningServiceTest
Change-Id: Ia01fb6f491da9d0ebb227c02a2b4d031b88e6b86
Diffstat (limited to 'tests/src/com')
| -rw-r--r-- | tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java | 56 | ||||
| -rwxr-xr-x | tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java | 4 |
2 files changed, 50 insertions, 10 deletions
diff --git a/tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java b/tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java index c7b3a7eb5..68caf6776 100644 --- a/tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java +++ b/tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java @@ -93,6 +93,16 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { .setShouldShowNotification(true) .build(); + private static final CallFilteringResult PASS_RESULT_WITH_NAME = + new CallFilteringResult.Builder() + .setShouldAllowCall(true) + .setShouldReject(false) + .setShouldAddToCallLog(true) + .setShouldShowNotification(true) + .setCallScreeningAppName(APP_NAME) + .setCallScreeningComponentName(COMPONENT_NAME.flattenToString()) + .build(); + @Override @Before public void setUp() throws Exception { @@ -235,8 +245,14 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { serviceConnection.onServiceConnected(COMPONENT_NAME, mBinder); ICallScreeningAdapter csAdapter = getCallScreeningAdapter(); - csAdapter.allowCall(CALL_ID); - assertEquals(PASS_RESULT, + CallScreeningService.CallResponse allowCallResponse = + new CallScreeningService.CallResponse.Builder() + .setDisallowCall(false) + .setRejectCall(false) + .setSilenceCall(false) + .build(); + csAdapter.onScreeningResponse(CALL_ID, COMPONENT_NAME, allowCallResponse.toParcelable()); + assertEquals(PASS_RESULT_WITH_NAME, resultFuture.toCompletableFuture().get( CallScreeningServiceFilter.CALL_SCREENING_FILTER_TIMEOUT, TimeUnit.MILLISECONDS)); @@ -264,12 +280,16 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { ServiceConnection serviceConnection = verifyBindingIntent(); serviceConnection.onServiceConnected(COMPONENT_NAME, mBinder); + CallScreeningService.CallResponse disallowCallResponse = + new CallScreeningService.CallResponse.Builder() + .setDisallowCall(true) + .setRejectCall(true) + .setSkipCallLog(false) + .setSkipNotification(false) + .build(); ICallScreeningAdapter csAdapter = getCallScreeningAdapter(); - csAdapter.disallowCall(CALL_ID, - true, // shouldReject - true, //shouldAddToCallLog - true, // shouldShowNotification - COMPONENT_NAME); + csAdapter.onScreeningResponse(CALL_ID, COMPONENT_NAME, disallowCallResponse.toParcelable()); + assertEquals(expectedResult, resultFuture.toCompletableFuture().get( CallScreeningServiceFilter.CALL_SCREENING_FILTER_TIMEOUT, @@ -286,6 +306,8 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { .setShouldSilence(true) .setShouldAddToCallLog(true) .setShouldShowNotification(true) + .setCallScreeningAppName(APP_NAME) + .setCallScreeningComponentName(COMPONENT_NAME.flattenToString()) .build(); CallScreeningServiceFilter filter = new CallScreeningServiceFilter(mCall, PKG_NAME, CallScreeningServiceFilter.PACKAGE_TYPE_CARRIER, mContext, mCallsManager, @@ -296,7 +318,13 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { serviceConnection.onServiceConnected(COMPONENT_NAME, mBinder); ICallScreeningAdapter csAdapter = getCallScreeningAdapter(); - csAdapter.silenceCall(CALL_ID); + CallScreeningService.CallResponse silenceCallResponse = + new CallScreeningService.CallResponse.Builder() + .setDisallowCall(false) + .setRejectCall(false) + .setSilenceCall(true) + .build(); + csAdapter.onScreeningResponse(CALL_ID, COMPONENT_NAME, silenceCallResponse.toParcelable()); assertEquals(expectedResult, resultFuture.toCompletableFuture().get( CallScreeningServiceFilter.CALL_SCREENING_FILTER_TIMEOUT, @@ -314,6 +342,7 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { .setShouldSilence(false) .setShouldScreenViaAudio(true) .setCallScreeningAppName(APP_NAME) + .setCallScreeningComponentName(COMPONENT_NAME.flattenToString()) .build(); CallScreeningServiceFilter filter = new CallScreeningServiceFilter(mCall, PKG_NAME, CallScreeningServiceFilter.PACKAGE_TYPE_DEFAULT_DIALER, mContext, mCallsManager, @@ -323,8 +352,17 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { ServiceConnection serviceConnection = verifyBindingIntent(); serviceConnection.onServiceConnected(COMPONENT_NAME, mBinder); + + CallScreeningService.CallResponse additionalScreeningResponse = + new CallScreeningService.CallResponse.Builder() + .setDisallowCall(false) + .setRejectCall(false) + .setSilenceCall(false) + .setShouldScreenCallViaAudioProcessing(true) + .build(); ICallScreeningAdapter csAdapter = getCallScreeningAdapter(); - csAdapter.screenCallFurther(CALL_ID); + csAdapter.onScreeningResponse(CALL_ID, COMPONENT_NAME, + additionalScreeningResponse.toParcelable()); assertEquals(expectedResult, resultFuture.toCompletableFuture().get( CallScreeningServiceFilter.CALL_SCREENING_FILTER_TIMEOUT, diff --git a/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java b/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java index efdb7421b..6736132ca 100755 --- a/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java +++ b/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java @@ -34,6 +34,7 @@ import android.os.IInterface; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.telecom.CallAudioState; +import android.telecom.CallScreeningService; import android.telecom.Conference; import android.telecom.Connection; import android.telecom.ConnectionRequest; @@ -440,7 +441,8 @@ public class ConnectionServiceFixture implements TestFixture<IConnectionService> @Override public void onCallFilteringCompleted(String callId, boolean isBlocked, boolean isInContacts, - Session.Info sessionInfo) { } + CallScreeningService.ParcelableCallResponse callScreeningResponse, + boolean isResponseFromSystemDialer, Session.Info sessionInfo) { } } FakeConnectionServiceDelegate mConnectionServiceDelegate; |
