Clear phone number cache when call log is cleared

Bug: 11027471
Change-Id: I8437073e1d01e5223e89fce78795d5274db97c8e
diff --git a/src/com/android/dialer/calllog/ClearCallLogDialog.java b/src/com/android/dialer/calllog/ClearCallLogDialog.java
index 1f5b2b3..e6b4ce2 100644
--- a/src/com/android/dialer/calllog/ClearCallLogDialog.java
+++ b/src/com/android/dialer/calllog/ClearCallLogDialog.java
@@ -22,6 +22,7 @@
 import android.app.FragmentManager;
 import android.app.ProgressDialog;
 import android.content.ContentResolver;
+import android.content.Context;
 import android.content.DialogInterface;
 import android.content.DialogInterface.OnClickListener;
 import android.os.AsyncTask;
@@ -29,11 +30,16 @@
 import android.provider.CallLog.Calls;
 
 import com.android.dialer.R;
+import com.android.dialer.service.CachedNumberLookupService;
+import com.android.dialerbind.ObjectFactory;
 
 /**
  * Dialog that clears the call log after confirming with the user
  */
 public class ClearCallLogDialog extends DialogFragment {
+    private static final CachedNumberLookupService mCachedNumberLookupService =
+            ObjectFactory.newCachedNumberLookupService();
+
     /** Preferred way to show this dialog */
     public static void show(FragmentManager fragmentManager) {
         ClearCallLogDialog dialog = new ClearCallLogDialog();
@@ -43,6 +49,7 @@
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         final ContentResolver resolver = getActivity().getContentResolver();
+        final Context context = getActivity().getApplicationContext();
         final OnClickListener okListener = new OnClickListener() {
             @Override
             public void onClick(DialogInterface dialog, int which) {
@@ -53,6 +60,9 @@
                     @Override
                     protected Void doInBackground(Void... params) {
                         resolver.delete(Calls.CONTENT_URI, null, null);
+                        if (mCachedNumberLookupService != null) {
+                            mCachedNumberLookupService.clearAllCacheEntries(context);
+                        }
                         return null;
                     }
                     @Override
diff --git a/src/com/android/dialer/service/CachedNumberLookupService.java b/src/com/android/dialer/service/CachedNumberLookupService.java
index 62881d2..5745c9d 100644
--- a/src/com/android/dialer/service/CachedNumberLookupService.java
+++ b/src/com/android/dialer/service/CachedNumberLookupService.java
@@ -34,4 +34,12 @@
     public boolean isCacheUri(String uri);
 
     public boolean addPhoto(Context context, String number, byte[] photo);
+
+    /**
+     * Remove all cached phone number entries from the cache, regardless of how old they
+     * are.
+     *
+     * @param context Valid context
+     */
+    public void clearAllCacheEntries(Context context);
 }