diff --git a/java/com/android/dialer/app/calllog/LegacyVoicemailNotifier.java b/java/com/android/dialer/app/calllog/LegacyVoicemailNotifier.java
index 3eb4616..add5bf7 100644
--- a/java/com/android/dialer/app/calllog/LegacyVoicemailNotifier.java
+++ b/java/com/android/dialer/app/calllog/LegacyVoicemailNotifier.java
@@ -26,6 +26,8 @@
 import android.telecom.TelecomManager;
 import android.telephony.CarrierConfigManager;
 import android.telephony.TelephonyManager;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
 import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
@@ -39,6 +41,7 @@
 import com.android.dialer.phonenumberutil.PhoneNumberHelper;
 import com.android.dialer.telecom.TelecomUtil;
 import com.android.dialer.theme.base.ThemeComponent;
+import java.util.List;
 
 /** Shows a notification in the status bar for legacy vociemail. */
 public final class LegacyVoicemailNotifier {
@@ -116,9 +119,27 @@
       contentIntent = voicemailSettingsIntent;
     }
 
+    int resId = android.R.drawable.stat_notify_voicemail;
+
+    if (pinnedTelephonyManager.getPhoneCount() > 1) {
+        SubscriptionManager subManager = context.getSystemService(SubscriptionManager.class);
+        List<SubscriptionInfo> subInfoList = subManager.getActiveSubscriptionInfoList();
+        if (handle != null && !TextUtils.isEmpty(handle.getId()) && subInfoList!= null) {
+            for (SubscriptionInfo subInfo: subInfoList) {
+                if (handle.getId().equals(subInfo.getIccId())) {
+                    int slotId = subInfo.getSimSlotIndex();
+                    resId = (slotId == 0) ? R.drawable.stat_notify_voicemail_sub1
+                            : (slotId == 1) ? R.drawable.stat_notify_voicemail_sub2
+                            : android.R.drawable.stat_notify_voicemail;
+                    break;
+                }
+            }
+        }
+    }
+
     Notification.Builder builder =
         new Notification.Builder(context)
-            .setSmallIcon(android.R.drawable.stat_notify_voicemail)
+            .setSmallIcon(resId)
             .setColor(ThemeComponent.get(context).theme().getColorPrimary())
             .setWhen(System.currentTimeMillis())
             .setContentTitle(notificationTitle)
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/stat_notify_voicemail_sub1.png b/java/com/android/dialer/app/res/drawable-hdpi/stat_notify_voicemail_sub1.png
new file mode 100644
index 0000000..e7e6541
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-hdpi/stat_notify_voicemail_sub1.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/stat_notify_voicemail_sub2.png b/java/com/android/dialer/app/res/drawable-hdpi/stat_notify_voicemail_sub2.png
new file mode 100644
index 0000000..5b8bf88
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-hdpi/stat_notify_voicemail_sub2.png
Binary files differ
