diff --git a/java/com/android/dialer/spam/Spam.java b/java/com/android/dialer/spam/Spam.java
index b797ce3..028bda4 100644
--- a/java/com/android/dialer/spam/Spam.java
+++ b/java/com/android/dialer/spam/Spam.java
@@ -61,19 +61,6 @@
   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 7d48ca6..5eeed45 100644
--- a/java/com/android/dialer/spam/stub/SpamStub.java
+++ b/java/com/android/dialer/spam/stub/SpamStub.java
@@ -68,12 +68,6 @@
   }
 
   @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 31afe71..634a302 100644
--- a/java/com/android/incallui/call/CallList.java
+++ b/java/com/android/incallui/call/CallList.java
@@ -150,9 +150,7 @@
     if (SpamComponent.get(context).spamSettings().isSpamEnabled()) {
       String number = TelecomCallUtil.getNumber(telecomCall);
       ListenableFuture<SpamStatus> futureSpamStatus =
-          SpamComponent.get(context)
-              .spam()
-              .checkSpamStatusForInCallUi(number, call.getCountryIso());
+          SpamComponent.get(context).spam().checkSpamStatus(number, call.getCountryIso());
 
       Futures.addCallback(
           futureSpamStatus,
