diff --git a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
index 7df0d15..56d1daf 100644
--- a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
+++ b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
@@ -64,7 +64,7 @@
 
     <ImageView
       style="@style/CallLogActionIconStyle"
-      android:src="@drawable/quantum_ic_videocam_white_24"/>
+      android:src="@drawable/quantum_ic_videocam_vd_white_24"/>
 
     <TextView
       style="@style/CallLogActionTextStyle"
@@ -78,7 +78,7 @@
 
     <ImageView
         style="@style/CallLogActionIconStyle"
-        android:src="@drawable/quantum_ic_videocam_white_24"/>
+        android:src="@drawable/quantum_ic_videocam_vd_white_24"/>
 
     <TextView
         style="@style/CallLogActionTextStyle"
@@ -92,7 +92,7 @@
 
     <ImageView
         style="@style/CallLogActionIconStyle"
-        android:src="@drawable/quantum_ic_videocam_white_24"/>
+        android:src="@drawable/quantum_ic_videocam_vd_white_24"/>
 
     <TextView
         style="@style/CallLogActionTextStyle"
diff --git a/java/com/android/dialer/calllogutils/CallTypeIconsView.java b/java/com/android/dialer/calllogutils/CallTypeIconsView.java
index 3d2b561..1795438 100644
--- a/java/com/android/dialer/calllogutils/CallTypeIconsView.java
+++ b/java/com/android/dialer/calllogutils/CallTypeIconsView.java
@@ -19,7 +19,6 @@
 import android.content.Context;
 import android.content.res.TypedArray;
 import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
 import android.graphics.Canvas;
 import android.graphics.PorterDuff;
 import android.graphics.drawable.BitmapDrawable;
@@ -297,7 +296,7 @@
       blocked = drawable.mutate();
       blocked.setColorFilter(r.getColor(R.color.blocked_call), PorterDuff.Mode.MULTIPLY);
 
-      iconId = R.drawable.quantum_ic_videocam_white_24;
+      iconId = R.drawable.quantum_ic_videocam_vd_white_24;
       drawable = largeIcons ? r.getDrawable(iconId) : getScaledBitmap(context, iconId);
       videoCall = drawable.mutate();
       videoCall.setColorFilter(r.getColor(R.color.icon_color_grey), PorterDuff.Mode.MULTIPLY);
@@ -324,7 +323,14 @@
     // Gets the icon, scaled to the height of the call type icons. This helps display all the
     // icons to be the same height, while preserving their width aspect ratio.
     private Drawable getScaledBitmap(Context context, int resourceId) {
-      Bitmap icon = BitmapFactory.decodeResource(context.getResources(), resourceId);
+      Drawable drawable = context.getDrawable(resourceId);
+      Bitmap icon =
+          Bitmap.createBitmap(
+              drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
+      Canvas canvas = new Canvas(icon);
+      drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
+      drawable.draw(canvas);
+
       int scaledHeight = context.getResources().getDimensionPixelSize(R.dimen.call_type_icon_size);
       int scaledWidth =
           (int) ((float) icon.getWidth() * ((float) scaledHeight / (float) icon.getHeight()));
diff --git a/java/com/android/dialer/historyitemactions/IntentModule.java b/java/com/android/dialer/historyitemactions/IntentModule.java
index dfe9bb0..efb10e8 100644
--- a/java/com/android/dialer/historyitemactions/IntentModule.java
+++ b/java/com/android/dialer/historyitemactions/IntentModule.java
@@ -91,6 +91,6 @@
                 .setPhoneAccountHandle(phoneAccountHandle)
                 .setIsVideoCall(true)),
         R.string.video_call,
-        R.drawable.quantum_ic_videocam_white_24);
+        R.drawable.quantum_ic_videocam_vd_white_24);
   }
 }
diff --git a/java/com/android/dialer/searchfragment/cp2/SearchContactViewHolder.java b/java/com/android/dialer/searchfragment/cp2/SearchContactViewHolder.java
index 9d18e07..de9ce5a 100644
--- a/java/com/android/dialer/searchfragment/cp2/SearchContactViewHolder.java
+++ b/java/com/android/dialer/searchfragment/cp2/SearchContactViewHolder.java
@@ -179,7 +179,7 @@
       case CallToAction.VIDEO_CALL:
         callToActionView.setVisibility(View.VISIBLE);
         callToActionView.setImageDrawable(
-            context.getDrawable(R.drawable.quantum_ic_videocam_white_24));
+            context.getDrawable(R.drawable.quantum_ic_videocam_vd_white_24));
         callToActionView.setContentDescription(
             context.getString(R.string.description_search_video_call));
         callToActionView.setOnClickListener(this);
diff --git a/java/com/android/dialer/speeddial/res/layout/favorite_item_layout.xml b/java/com/android/dialer/speeddial/res/layout/favorite_item_layout.xml
index fb47665..b4af686 100644
--- a/java/com/android/dialer/speeddial/res/layout/favorite_item_layout.xml
+++ b/java/com/android/dialer/speeddial/res/layout/favorite_item_layout.xml
@@ -50,7 +50,7 @@
           android:layout_width="24dp"
           android:layout_height="24dp"
           android:layout_gravity="center"
-          android:src="@drawable/quantum_ic_videocam_white_24"/>
+          android:src="@drawable/quantum_ic_videocam_vd_white_24"/>
     </FrameLayout>
   </FrameLayout>
 
diff --git a/java/com/android/incallui/StatusBarNotifier.java b/java/com/android/incallui/StatusBarNotifier.java
index ef5965c..503df6c 100644
--- a/java/com/android/incallui/StatusBarNotifier.java
+++ b/java/com/android/incallui/StatusBarNotifier.java
@@ -647,7 +647,7 @@
     } else if (call.getVideoTech().getSessionModificationState()
             == SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST
         || call.isVideoCall()) {
-      return R.drawable.quantum_ic_videocam_white_24;
+      return R.drawable.quantum_ic_videocam_vd_white_24;
     } else if (call.hasProperty(PROPERTY_HIGH_DEF_AUDIO)
         && MotorolaUtils.shouldShowHdIconInNotification(context)) {
       // Normally when a call is ongoing the status bar displays an icon of a phone. This is a
@@ -944,7 +944,7 @@
         createNotificationPendingIntent(context, ACTION_ANSWER_VIDEO_INCOMING_CALL);
     builder.addAction(
         new Notification.Action.Builder(
-                Icon.createWithResource(context, R.drawable.quantum_ic_videocam_white_24),
+                Icon.createWithResource(context, R.drawable.quantum_ic_videocam_vd_white_24),
                 getActionText(
                     R.string.notification_action_answer_video,
                     R.color.notification_action_answer_video),
@@ -960,7 +960,7 @@
         createNotificationPendingIntent(context, ACTION_ACCEPT_VIDEO_UPGRADE_REQUEST);
     builder.addAction(
         new Notification.Action.Builder(
-                Icon.createWithResource(context, R.drawable.quantum_ic_videocam_white_24),
+                Icon.createWithResource(context, R.drawable.quantum_ic_videocam_vd_white_24),
                 getActionText(
                     R.string.notification_action_accept, R.color.notification_action_accept),
                 acceptVideoPendingIntent)
@@ -975,7 +975,7 @@
         createNotificationPendingIntent(context, ACTION_DECLINE_VIDEO_UPGRADE_REQUEST);
     builder.addAction(
         new Notification.Action.Builder(
-                Icon.createWithResource(context, R.drawable.quantum_ic_videocam_white_24),
+                Icon.createWithResource(context, R.drawable.quantum_ic_videocam_vd_white_24),
                 getActionText(
                     R.string.notification_action_dismiss, R.color.notification_action_dismiss),
                 declineVideoPendingIntent)
diff --git a/java/com/android/incallui/answer/impl/answermethod/FlingUpDownMethod.java b/java/com/android/incallui/answer/impl/answermethod/FlingUpDownMethod.java
index 2eeecc3..8928dd6 100644
--- a/java/com/android/incallui/answer/impl/answermethod/FlingUpDownMethod.java
+++ b/java/com/android/incallui/answer/impl/answermethod/FlingUpDownMethod.java
@@ -334,7 +334,7 @@
       return;
     }
     if (getParent().isVideoCall() || getParent().isVideoUpgradeRequest()) {
-      contactPuckIcon.setImageResource(R.drawable.quantum_ic_videocam_white_24);
+      contactPuckIcon.setImageResource(R.drawable.quantum_ic_videocam_vd_white_24);
     } else if (getParent().isRttCall()) {
       contactPuckIcon.setImageResource(R.drawable.quantum_ic_rtt_vd_theme_24);
     } else {
