From 9e04310a9902a4dbf593060baaf41c37919fd7fe Mon Sep 17 00:00:00 2001 From: linyuh Date: Wed, 24 Jan 2018 14:07:05 -0800 Subject: Define methods in Spam interface to be used later in the PhoneLookup for spam features. Bug: 70989534 Test: ApdlSpamTest, InAppSpamTest PiperOrigin-RevId: 183138320 Change-Id: I647568c31e234995f44d6cbeb2f97f73952db6bb --- java/com/android/dialer/spam/Spam.java | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'java/com/android/dialer/spam/Spam.java') diff --git a/java/com/android/dialer/spam/Spam.java b/java/com/android/dialer/spam/Spam.java index b1240c69a..ea1ea138e 100644 --- a/java/com/android/dialer/spam/Spam.java +++ b/java/com/android/dialer/spam/Spam.java @@ -18,9 +18,13 @@ package com.android.dialer.spam; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import com.android.dialer.DialerPhoneNumber; import com.android.dialer.logging.ContactLookupResult; import com.android.dialer.logging.ContactSource; import com.android.dialer.logging.ReportingLocation; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.util.concurrent.ListenableFuture; /** Allows the container application to mark calls as spam. */ public interface Spam { @@ -39,7 +43,17 @@ public interface Spam { int percentOfNonSpamNotificationsToShow(); /** - * Checks if the given number is suspected of being a spamer. + * Checks if each of numbers in the given list is suspected of being a spam. + * + * @param dialerPhoneNumbers A list of {@link DialerPhoneNumber}. + * @return A {@link ListenableFuture} of a map that maps each number to its spam status + * (true/false). + */ + ListenableFuture> batchCheckSpamStatus( + ImmutableList dialerPhoneNumbers); + + /** + * Checks if the given number is suspected of being a spam. * * @param number The phone number of the call. * @param countryIso The country ISO of the call. @@ -80,6 +94,15 @@ public interface Spam { */ boolean checkSpamStatusSynchronous(String number, String countryIso); + /** + * Returns a {@link ListenableFuture} indicating whether the spam data have been updated since + * {@code timestampMillis}. + * + *

It is the caller's responsibility to ensure the timestamp is in milliseconds. Failure to do + * so will result in undefined behavior. + */ + ListenableFuture dataUpdatedSince(long timestampMillis); + /** * Reports number as spam. * -- cgit v1.2.3