Merge "Clear frequents dialog now reloads the speed dial fragment."
diff --git a/java/com/android/dialer/speeddial/SpeedDialFragment.java b/java/com/android/dialer/speeddial/SpeedDialFragment.java
index d9593c2..f94ad7d 100644
--- a/java/com/android/dialer/speeddial/SpeedDialFragment.java
+++ b/java/com/android/dialer/speeddial/SpeedDialFragment.java
@@ -21,6 +21,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.database.ContentObserver;
 import android.net.Uri;
 import android.os.Bundle;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
@@ -45,6 +46,7 @@
 import com.android.dialer.common.concurrent.DefaultFutureCallback;
 import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.common.concurrent.SupportUiListener;
+import com.android.dialer.common.concurrent.ThreadUtil;
 import com.android.dialer.constants.ActivityRequestCodes;
 import com.android.dialer.historyitemactions.DividerModule;
 import com.android.dialer.historyitemactions.HistoryItemActionBottomSheet;
@@ -99,6 +101,16 @@
         }
       };
 
+  /** Listen for changes to the strequents content observer. */
+  private final ContentObserver strequentsContentObserver =
+      new ContentObserver(ThreadUtil.getUiThreadHandler()) {
+        @Override
+        public void onChange(boolean selfChange) {
+          super.onChange(selfChange);
+          loadContacts();
+        }
+      };
+
   private final SpeedDialHeaderListener headerListener = new SpeedDialFragmentHeaderListener();
   private final SpeedDialSuggestedListener suggestedListener = new SpeedDialSuggestedListener();
 
@@ -272,6 +284,9 @@
     super.onStart();
     PermissionsUtil.registerPermissionReceiver(
         getActivity(), readContactsPermissionGrantedReceiver, Manifest.permission.READ_CONTACTS);
+    getContext()
+        .getContentResolver()
+        .registerContentObserver(Contacts.CONTENT_STREQUENT_URI, true, strequentsContentObserver);
   }
 
   @Override
@@ -279,6 +294,7 @@
     super.onStop();
     PermissionsUtil.unregisterPermissionReceiver(
         getContext(), readContactsPermissionGrantedReceiver);
+    getContext().getContentResolver().unregisterContentObserver(strequentsContentObserver);
   }
 
   private class SpeedDialFragmentHeaderListener implements SpeedDialHeaderListener {