diff --git a/java/com/android/dialer/spam/Spam.java b/java/com/android/dialer/spam/Spam.java
index 028bda4..b797ce3 100644
--- a/java/com/android/dialer/spam/Spam.java
+++ b/java/com/android/dialer/spam/Spam.java
@@ -61,6 +61,19 @@
   ListenableFuture<SpamStatus> checkSpamStatus(String number, @Nullable String defaultCountryIso);
 
   /**
+   * Checks if the given number is suspected of being spam, checking additional information as
+   * needed for the in-call ui.
+   *
+   * <p>See {@link #checkSpamStatus(String, String)}.
+   *
+   * @param number the phone number.
+   * @param defaultCountryIso the default country to use if it's not part of the number.
+   * @return the {@link SpamStatus} for the given number.
+   */
+  ListenableFuture<SpamStatus> checkSpamStatusForInCallUi(
+      String number, @Nullable String defaultCountryIso);
+
+  /**
    * Called as an indication that the Spam implementation should check whether downloading a spam
    * list needs to occur or not.
    *
diff --git a/java/com/android/dialer/spam/stub/SpamStub.java b/java/com/android/dialer/spam/stub/SpamStub.java
index 5eeed45..7d48ca6 100644
--- a/java/com/android/dialer/spam/stub/SpamStub.java
+++ b/java/com/android/dialer/spam/stub/SpamStub.java
@@ -68,6 +68,12 @@
   }
 
   @Override
+  public ListenableFuture<SpamStatus> checkSpamStatusForInCallUi(
+      String number, @Nullable String defaultCountryIso) {
+    return checkSpamStatus(number, defaultCountryIso);
+  }
+
+  @Override
   public ListenableFuture<Void> updateSpamListDownload(boolean isEnabledByUser) {
     // no-op
     return Futures.immediateFuture(null);
diff --git a/java/com/android/incallui/call/CallList.java b/java/com/android/incallui/call/CallList.java
index 634a302..31afe71 100644
--- a/java/com/android/incallui/call/CallList.java
+++ b/java/com/android/incallui/call/CallList.java
@@ -150,7 +150,9 @@
     if (SpamComponent.get(context).spamSettings().isSpamEnabled()) {
       String number = TelecomCallUtil.getNumber(telecomCall);
       ListenableFuture<SpamStatus> futureSpamStatus =
-          SpamComponent.get(context).spam().checkSpamStatus(number, call.getCountryIso());
+          SpamComponent.get(context)
+              .spam()
+              .checkSpamStatusForInCallUi(number, call.getCountryIso());
 
       Futures.addCallback(
           futureSpamStatus,
