Merge "Show spam blocking promo notification in place of after call notification instead of canceling it and recreating a new notification."
diff --git a/java/com/android/incallui/spam/SpamNotificationService.java b/java/com/android/incallui/spam/SpamNotificationService.java
index 82a943d..f7deae1 100644
--- a/java/com/android/incallui/spam/SpamNotificationService.java
+++ b/java/com/android/incallui/spam/SpamNotificationService.java
@@ -103,11 +103,18 @@
     ContactLookupResult.Type contactLookupResultType =
         ContactLookupResult.Type.forNumber(intent.getIntExtra(EXTRA_CONTACT_LOOKUP_RESULT_TYPE, 0));
 
-    DialerNotificationManager.cancel(this, notificationTag, notificationId);
-
     SpamSettings spamSettings = SpamComponent.get(this).spamSettings();
     SpamBlockingPromoHelper spamBlockingPromoHelper =
         new SpamBlockingPromoHelper(this, SpamComponent.get(this).spamSettings());
+    boolean shouldShowSpamBlockingPromo =
+        SpamNotificationActivity.ACTION_MARK_NUMBER_AS_SPAM.equals(intent.getAction())
+            && spamBlockingPromoHelper.shouldShowAfterCallSpamBlockingPromo();
+
+    // Cancel notification only if we are not showing spam blocking promo. Otherwise we will show
+    // spam blocking promo notification in place.
+    if (!shouldShowSpamBlockingPromo) {
+      DialerNotificationManager.cancel(this, notificationTag, notificationId);
+    }
 
     switch (intent.getAction()) {
       case SpamNotificationActivity.ACTION_MARK_NUMBER_AS_SPAM:
@@ -122,7 +129,7 @@
                 ReportingLocation.Type.FEEDBACK_PROMPT,
                 contactLookupResultType);
         new FilteredNumberAsyncQueryHandler(this).blockNumber(null, number, countryIso);
-        if (spamBlockingPromoHelper.shouldShowAfterCallSpamBlockingPromo()) {
+        if (shouldShowSpamBlockingPromo) {
           spamBlockingPromoHelper.showSpamBlockingPromoNotification(
               notificationTag,
               notificationId,