diff --git a/java/com/android/dialer/app/calllog/CallLogFragment.java b/java/com/android/dialer/app/calllog/CallLogFragment.java
index cd2371f..1f322dc 100644
--- a/java/com/android/dialer/app/calllog/CallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/CallLogFragment.java
@@ -300,7 +300,7 @@
     layoutManager = new LinearLayoutManager(getActivity());
     recyclerView.setLayoutManager(layoutManager);
     emptyListView = (EmptyContentView) view.findViewById(R.id.empty_list_view);
-    emptyListView.setImage(R.drawable.empty_call_log);
+    emptyListView.setImage(R.drawable.oneplus_empty_call_log_illustration);
     emptyListView.setActionClickedListener(this);
     modalAlertView = (ViewGroup) view.findViewById(R.id.modal_message_container);
     modalAlertManager =
diff --git a/java/com/android/dialer/app/res/drawable-night-xxhdpi/oneplus_empty_call_log_illustration.png b/java/com/android/dialer/app/res/drawable-night-xxhdpi/oneplus_empty_call_log_illustration.png
new file mode 100644
index 0000000..558986b
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-night-xxhdpi/oneplus_empty_call_log_illustration.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-night-xxhdpi/oneplus_empty_speed_dial_illustration.png b/java/com/android/dialer/app/res/drawable-night-xxhdpi/oneplus_empty_speed_dial_illustration.png
new file mode 100644
index 0000000..5523786
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-night-xxhdpi/oneplus_empty_speed_dial_illustration.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxhdpi/oneplus_empty_call_log_illustration.png b/java/com/android/dialer/app/res/drawable-xxhdpi/oneplus_empty_call_log_illustration.png
new file mode 100644
index 0000000..67b50d4
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-xxhdpi/oneplus_empty_call_log_illustration.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxhdpi/oneplus_empty_speed_dial_illustration.png b/java/com/android/dialer/app/res/drawable-xxhdpi/oneplus_empty_speed_dial_illustration.png
new file mode 100644
index 0000000..53baa63
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-xxhdpi/oneplus_empty_speed_dial_illustration.png
Binary files differ
diff --git a/java/com/android/dialer/callstats/CallStatsFragment.java b/java/com/android/dialer/callstats/CallStatsFragment.java
index da39d08..a21fa89 100644
--- a/java/com/android/dialer/callstats/CallStatsFragment.java
+++ b/java/com/android/dialer/callstats/CallStatsFragment.java
@@ -123,7 +123,7 @@
     LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
     mRecyclerView.setLayoutManager(layoutManager);
     mEmptyListView = view.findViewById(R.id.empty_list_view);
-    mEmptyListView.setImage(R.drawable.empty_call_log);
+    mEmptyListView.setImage(R.drawable.oneplus_empty_call_log_illustration);
     mEmptyListView.setActionClickedListener(this);
 
     mSumHeaderView = view.findViewById(R.id.sum_header);
diff --git a/java/com/android/dialer/contactsfragment/ContactsFragment.java b/java/com/android/dialer/contactsfragment/ContactsFragment.java
index 6dbbbad..466c775 100644
--- a/java/com/android/dialer/contactsfragment/ContactsFragment.java
+++ b/java/com/android/dialer/contactsfragment/ContactsFragment.java
@@ -192,7 +192,7 @@
     recyclerView.setLayoutManager(manager);
 
     emptyContentView = view.findViewById(R.id.empty_list_view);
-    emptyContentView.setImage(R.drawable.empty_contacts);
+    emptyContentView.setImage(R.drawable.oneplus_empty_contacts_illustration);
     emptyContentView.setActionClickedListener(this);
 
     if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
diff --git a/java/com/android/dialer/contactsfragment/res/drawable-night/oneplus_empty_contacts_illustration.png b/java/com/android/dialer/contactsfragment/res/drawable-night/oneplus_empty_contacts_illustration.png
new file mode 100644
index 0000000..f125545
--- /dev/null
+++ b/java/com/android/dialer/contactsfragment/res/drawable-night/oneplus_empty_contacts_illustration.png
Binary files differ
diff --git a/java/com/android/dialer/contactsfragment/res/drawable/oneplus_empty_contacts_illustration.png b/java/com/android/dialer/contactsfragment/res/drawable/oneplus_empty_contacts_illustration.png
new file mode 100644
index 0000000..0a34628
--- /dev/null
+++ b/java/com/android/dialer/contactsfragment/res/drawable/oneplus_empty_contacts_illustration.png
Binary files differ
diff --git a/java/com/android/dialer/speeddial/SpeedDialFragment.java b/java/com/android/dialer/speeddial/SpeedDialFragment.java
index 0951d7e..85c0487 100644
--- a/java/com/android/dialer/speeddial/SpeedDialFragment.java
+++ b/java/com/android/dialer/speeddial/SpeedDialFragment.java
@@ -166,7 +166,7 @@
     LogUtil.enterBlock("SpeedDialFragment.onCreateView");
     View rootLayout = inflater.inflate(R.layout.fragment_speed_dial, container, false);
     emptyContentView = rootLayout.findViewById(R.id.speed_dial_empty_content_view);
-    emptyContentView.setImage(R.drawable.empty_speed_dial);
+    emptyContentView.setImage(R.drawable.oneplus_empty_speed_dial_illustration);
 
     speedDialLoaderListener =
         DialerExecutorComponent.get(getContext())
diff --git a/java/com/android/dialer/speeddial/res/drawable-night/oneplus_empty_speed_dial_illustration.png b/java/com/android/dialer/speeddial/res/drawable-night/oneplus_empty_speed_dial_illustration.png
new file mode 100644
index 0000000..cd1297d
--- /dev/null
+++ b/java/com/android/dialer/speeddial/res/drawable-night/oneplus_empty_speed_dial_illustration.png
Binary files differ
diff --git a/java/com/android/dialer/speeddial/res/drawable/oneplus_empty_speed_dial_illustration.png b/java/com/android/dialer/speeddial/res/drawable/oneplus_empty_speed_dial_illustration.png
new file mode 100644
index 0000000..f227720
--- /dev/null
+++ b/java/com/android/dialer/speeddial/res/drawable/oneplus_empty_speed_dial_illustration.png
Binary files differ
diff --git a/java/com/android/dialer/widget/EmptyContentView.java b/java/com/android/dialer/widget/EmptyContentView.java
index 10e3f99..4c361dd 100644
--- a/java/com/android/dialer/widget/EmptyContentView.java
+++ b/java/com/android/dialer/widget/EmptyContentView.java
@@ -71,9 +71,6 @@
     descriptionView = (TextView) findViewById(R.id.empty_list_view_message);
     actionView = findViewById(R.id.empty_list_view_action);
     actionView.setOnClickListener(this);
-
-    imageView.setImageTintList(
-        ColorStateList.valueOf(ThemeComponent.get(context).theme().getColorIconSecondary()));
   }
 
   public void setDescription(int resourceId) {
diff --git a/java/com/android/dialer/widget/res/layout/empty_content_view.xml b/java/com/android/dialer/widget/res/layout/empty_content_view.xml
index 7aef66b..cb106db 100644
--- a/java/com/android/dialer/widget/res/layout/empty_content_view.xml
+++ b/java/com/android/dialer/widget/res/layout/empty_content_view.xml
@@ -18,7 +18,7 @@
   <ImageView
     android:id="@+id/empty_list_view_image"
     android:layout_width="match_parent"
-    android:layout_height="108dp"
+    android:layout_height="208dp"
     android:gravity="center_horizontal"/>
 
   <TextView
