Loading src/com/android/server/telecom/CallScreeningServiceHelper.java +17 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,23 @@ public class CallScreeningServiceHelper { "Cancelling outgoing call screen due to service disconnect."); } mFuture.complete(null); mContext.unbindService(this); } finally { Log.endSession(); } } @Override public void onNullBinding(ComponentName name) { // No locking needed -- CompletableFuture only lets one thread call complete. Log.continueSession(mLoggingSession, "CSSH.oNB"); try { if (!mFuture.isDone()) { Log.w(CallScreeningServiceHelper.this, "Cancelling outgoing call screen due to null binding."); } mFuture.complete(null); mContext.unbindService(this); } finally { Log.endSession(); } Loading src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java +12 −2 Original line number Diff line number Diff line Loading @@ -314,8 +314,18 @@ public class NewOutgoingCallIntentBroadcaster { } private String getNumberFromCallIntent(Intent intent) { String number; number = mPhoneNumberUtilsAdapter.getNumberFromIntent(intent, mContext); String number = null; Uri uri = intent.getData(); if (uri != null) { String scheme = uri.getScheme(); if (scheme != null) { if (scheme.equals("tel") || scheme.equals("sip")) { number = uri.getSchemeSpecificPart(); } } } if (TextUtils.isEmpty(number)) { Log.w(this, "Empty number obtained from the call intent."); return null; Loading src/com/android/server/telecom/callfiltering/CallScreeningServiceFilter.java +2 −0 Original line number Diff line number Diff line Loading @@ -235,12 +235,14 @@ public class CallScreeningServiceFilter extends CallFilter { public void onServiceDisconnected(ComponentName componentName) { mResultFuture.complete(mPriorStageResult); Log.i(this, "Service disconnected."); unbindCallScreeningService(); } @Override public void onBindingDied(ComponentName name) { mResultFuture.complete(mPriorStageResult); Log.i(this, "Binding died."); unbindCallScreeningService(); } @Override Loading tests/src/com/android/server/telecom/tests/NewOutgoingCallIntentBroadcasterTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -214,6 +214,19 @@ public class NewOutgoingCallIntentBroadcasterTest extends TelecomTestCase { verifyNoCallPlaced(); } @Test public void testNoCallsPlacedWithContentUri() { Uri handle = Uri.parse("content://com.android.contacts/data/1"); Intent intent = new Intent(Intent.ACTION_CALL, handle); int result = processIntent(intent, true).disconnectCause; assertEquals(DisconnectCause.NO_PHONE_NUMBER_SUPPLIED, result); verify(mContext, never()).getContentResolver(); verifyNoBroadcastSent(); verifyNoCallPlaced(); } @SmallTest @Test public void testEmergencyCallWithNonDefaultDialer() { Loading Loading
src/com/android/server/telecom/CallScreeningServiceHelper.java +17 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,23 @@ public class CallScreeningServiceHelper { "Cancelling outgoing call screen due to service disconnect."); } mFuture.complete(null); mContext.unbindService(this); } finally { Log.endSession(); } } @Override public void onNullBinding(ComponentName name) { // No locking needed -- CompletableFuture only lets one thread call complete. Log.continueSession(mLoggingSession, "CSSH.oNB"); try { if (!mFuture.isDone()) { Log.w(CallScreeningServiceHelper.this, "Cancelling outgoing call screen due to null binding."); } mFuture.complete(null); mContext.unbindService(this); } finally { Log.endSession(); } Loading
src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java +12 −2 Original line number Diff line number Diff line Loading @@ -314,8 +314,18 @@ public class NewOutgoingCallIntentBroadcaster { } private String getNumberFromCallIntent(Intent intent) { String number; number = mPhoneNumberUtilsAdapter.getNumberFromIntent(intent, mContext); String number = null; Uri uri = intent.getData(); if (uri != null) { String scheme = uri.getScheme(); if (scheme != null) { if (scheme.equals("tel") || scheme.equals("sip")) { number = uri.getSchemeSpecificPart(); } } } if (TextUtils.isEmpty(number)) { Log.w(this, "Empty number obtained from the call intent."); return null; Loading
src/com/android/server/telecom/callfiltering/CallScreeningServiceFilter.java +2 −0 Original line number Diff line number Diff line Loading @@ -235,12 +235,14 @@ public class CallScreeningServiceFilter extends CallFilter { public void onServiceDisconnected(ComponentName componentName) { mResultFuture.complete(mPriorStageResult); Log.i(this, "Service disconnected."); unbindCallScreeningService(); } @Override public void onBindingDied(ComponentName name) { mResultFuture.complete(mPriorStageResult); Log.i(this, "Binding died."); unbindCallScreeningService(); } @Override Loading
tests/src/com/android/server/telecom/tests/NewOutgoingCallIntentBroadcasterTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -214,6 +214,19 @@ public class NewOutgoingCallIntentBroadcasterTest extends TelecomTestCase { verifyNoCallPlaced(); } @Test public void testNoCallsPlacedWithContentUri() { Uri handle = Uri.parse("content://com.android.contacts/data/1"); Intent intent = new Intent(Intent.ACTION_CALL, handle); int result = processIntent(intent, true).disconnectCause; assertEquals(DisconnectCause.NO_PHONE_NUMBER_SUPPLIED, result); verify(mContext, never()).getContentResolver(); verifyNoBroadcastSent(); verifyNoCallPlaced(); } @SmallTest @Test public void testEmergencyCallWithNonDefaultDialer() { Loading