diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 5dabb93..3603696 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -65,6 +65,7 @@
 import com.android.contacts.common.dialog.ClearFrequentsDialog;
 import com.android.contacts.common.interactions.ImportExportDialogFragment;
 import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
+import com.android.contacts.common.util.ViewUtil;
 import com.android.dialer.calllog.CallLogActivity;
 import com.android.dialer.database.DialerDatabaseHelper;
 import com.android.dialer.dialpad.DialpadFragment;
@@ -329,7 +330,7 @@
         mFragmentsFrame = findViewById(R.id.dialtacts_frame);
 
         mFloatingActionButton = findViewById(R.id.floating_action_button);
-        setupFloatingActionButton(mFloatingActionButton);
+        ViewUtil.setupFloatingActionButton(mFloatingActionButton, getResources());
 
         mDialButton = findViewById(R.id.dial_button);
         mDialButton.setOnClickListener(this);
@@ -888,34 +889,6 @@
         return resolveInfo != null && resolveInfo.size() > 0;
     }
 
-    private void setupFloatingActionButton(View view) {
-        // Once layout is complete and the floating action button has been assigned a width
-        // and height, assign the outline.
-        view.addOnLayoutChangeListener(new OnLayoutChangeListener() {
-            @Override
-            public void onLayoutChange(View v,
-                    int left,
-                    int top,
-                    int right,
-                    int bottom,
-                    int oldLeft,
-                    int oldTop,
-                    int oldRight,
-                    int oldBottom) {
-                final Outline outline = new Outline();
-                final int minDimension = Math.min(right - left, bottom - top);
-                if (minDimension <= 0) {
-                    return;
-                }
-                outline.setRoundRect(0, 0, right - left, bottom - top, minDimension / 2);
-                v.setOutline(outline);
-                v.setClipToOutline(true);
-            }
-        });
-        view.setTranslationZ(getResources().getDimensionPixelSize(
-                R.dimen.floating_action_button_translation_z));
-    }
-
     @Override
     public void showCallHistory() {
         // Use explicit CallLogActivity intent instead of ACTION_VIEW +
