@@ -527,16 +527,24 @@ boolean isInAppMessageShowing() {
527
527
* Called after an In-App message is closed and it's dismiss animation has completed
528
528
*/
529
529
void messageWasDismissed (@ NonNull OSInAppMessage message ) {
530
+ messageWasDismissed (message , false );
531
+ }
532
+
533
+ void messageWasDismissed (@ NonNull OSInAppMessage message , boolean failed ) {
530
534
if (!message .isPreview ) {
531
535
dismissedMessages .add (message .messageId );
532
- OneSignalPrefs .saveStringSet (
533
- OneSignalPrefs .PREFS_ONESIGNAL ,
534
- OneSignalPrefs .PREFS_OS_DISMISSED_IAMS ,
535
- dismissedMessages );
536
-
537
- // Don't keep track of last displayed time for a preview
538
- lastTimeInAppDismissed = new Date ();
539
- persistInAppMessage (message );
536
+ // If failed we will retry on next session
537
+ if (!failed ) {
538
+ OneSignalPrefs .saveStringSet (
539
+ OneSignalPrefs .PREFS_ONESIGNAL ,
540
+ OneSignalPrefs .PREFS_OS_DISMISSED_IAMS ,
541
+ dismissedMessages );
542
+
543
+ // Don't keep track of last displayed time for a preview
544
+ lastTimeInAppDismissed = new Date ();
545
+ // Only increase IAM display quantity if IAM was truly displayed
546
+ persistInAppMessage (message );
547
+ }
540
548
OneSignal .onesignalLog (OneSignal .LOG_LEVEL .DEBUG , "OSInAppMessageController messageWasDismissed dismissedMessages: " + dismissedMessages .toString ());
541
549
}
542
550
@@ -634,7 +642,7 @@ void onFailure(int statusCode, String response, Throwable throwable) {
634
642
if (!OSUtils .shouldRetryNetworkRequest (statusCode ) || htmlNetworkRequestAttemptCount >= OSUtils .MAX_NETWORK_REQUEST_ATTEMPT_COUNT ) {
635
643
// Failure limit reached, reset
636
644
htmlNetworkRequestAttemptCount = 0 ;
637
- messageWasDismissed (message );
645
+ messageWasDismissed (message , true );
638
646
return ;
639
647
}
640
648
0 commit comments