1 package com.android.dialer.service;
2 
3 import android.content.Context;
4 import android.net.Uri;
5 import android.support.annotation.Nullable;
6 
7 import com.android.dialer.calllog.ContactInfo;
8 
9 import java.io.InputStream;
10 
11 public interface CachedNumberLookupService {
12 
13     public interface CachedContactInfo {
14         public static final int SOURCE_TYPE_DIRECTORY = 1;
15         public static final int SOURCE_TYPE_EXTENDED = 2;
16         public static final int SOURCE_TYPE_PLACES = 3;
17         public static final int SOURCE_TYPE_PROFILE = 4;
18         public static final int SOURCE_TYPE_CNAP = 5;
19 
getContactInfo()20         public ContactInfo getContactInfo();
21 
setSource(int sourceType, String name, long directoryId)22         public void setSource(int sourceType, String name, long directoryId);
setDirectorySource(String name, long directoryId)23         public void setDirectorySource(String name, long directoryId);
setExtendedSource(String name, long directoryId)24         public void setExtendedSource(String name, long directoryId);
setLookupKey(String lookupKey)25         public void setLookupKey(String lookupKey);
26     }
27 
buildCachedContactInfo(ContactInfo info)28     public CachedContactInfo buildCachedContactInfo(ContactInfo info);
29 
30     /**
31      * Perform a lookup using the cached number lookup service to return contact
32      * information stored in the cache that corresponds to the given number.
33      *
34      * @param context Valid context
35      * @param number Phone number to lookup the cache for
36      * @return A {@link CachedContactInfo} containing the contact information if the phone
37      * number is found in the cache, {@link ContactInfo#EMPTY} if the phone number was
38      * not found in the cache, and null if there was an error when querying the cache.
39      */
lookupCachedContactFromNumber(Context context, String number)40     public CachedContactInfo lookupCachedContactFromNumber(Context context, String number);
41 
addContact(Context context, CachedContactInfo info)42     public void addContact(Context context, CachedContactInfo info);
43 
isCacheUri(String uri)44     public boolean isCacheUri(String uri);
45 
isBusiness(int sourceType)46     public boolean isBusiness(int sourceType);
canReportAsInvalid(int sourceType, String objectId)47     public boolean canReportAsInvalid(int sourceType, String objectId);
48 
49     /**
50      * @return return {@link Uri} to the photo or return {@code null} when failing to add photo
51      */
addPhoto(Context context, String number, InputStream in)52     public @Nullable Uri addPhoto(Context context, String number, InputStream in);
53 
54     /**
55      * Remove all cached phone number entries from the cache, regardless of how old they
56      * are.
57      *
58      * @param context Valid context
59      */
clearAllCacheEntries(Context context)60     public void clearAllCacheEntries(Context context);
61 }
62