Fix to show voice mail notification icon for multi-sim

Add support for showing different voice mail notification
icon for each sim

Change-Id: I4de5dbec45b70264830dc8b2f5e305e2c842f106
Bug: 121362391
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Temkar <pranavtemkar@gmail.com>
Signed-off-by: Jis G Jacob <studiokeys@blissroms.org>
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