Prevent new voicemail notifications from being cleared if a voicemail is expanded

Binding a view holder to an expanded voicemail will attempt to mark the voicemail as read and all voicemails as old. If a new voicemail is received when a voicemail is expanded, the new voicemail will cause a rebind and the notification will be canceled right away.

In this CL, voicemails will only be marked as old if the expanded voicemail was not already read.

Bug: 64211487
Test: CallLogAsyncTaskUtilTest
PiperOrigin-RevId: 163912108
Change-Id: Ibe82fe85984d84aad1a674219ca984fdd10c6d89
diff --git a/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java b/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java
index b1ad0d9..78ec7a6 100644
--- a/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java
+++ b/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java
@@ -66,9 +66,8 @@
                     .update(voicemailUri, values, Voicemails.IS_READ + " = 0", null)
                 > 0) {
               uploadVoicemailLocalChangesToServer(context);
+              CallLogNotificationsService.markAllNewVoicemailsAsOld(context);
             }
-
-            CallLogNotificationsService.markAllNewVoicemailsAsOld(context);
             return null;
           }
         });
diff --git a/java/com/android/dialer/app/calllog/CallLogNotificationsService.java b/java/com/android/dialer/app/calllog/CallLogNotificationsService.java
index 536255a..0490b99 100644
--- a/java/com/android/dialer/app/calllog/CallLogNotificationsService.java
+++ b/java/com/android/dialer/app/calllog/CallLogNotificationsService.java
@@ -50,7 +50,8 @@
  */
 public class CallLogNotificationsService extends IntentService {
 
-  private static final String ACTION_MARK_ALL_NEW_VOICEMAILS_AS_OLD =
+  @VisibleForTesting
+  static final String ACTION_MARK_ALL_NEW_VOICEMAILS_AS_OLD =
       "com.android.dialer.calllog.ACTION_MARK_ALL_NEW_VOICEMAILS_AS_OLD";
 
   private static final String ACTION_MARK_SINGLE_NEW_VOICEMAIL_AS_OLD =