Skip to content

Commit f5c9e3b

Browse files
authored
Fix: Cannot mark as impressed more than one message almost same time (#4028)
Fix: Cannot mark as impressed more than one message almost same time
1 parent befe421 commit f5c9e3b

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/DisplayCallbacksImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public class DisplayCallbacksImpl implements FirebaseInAppMessagingDisplayCallba
4242
private final InAppMessage inAppMessage;
4343
private final String triggeringEvent;
4444

45-
private static boolean wasImpressed;
45+
private boolean wasImpressed;
4646
private static final String MESSAGE_CLICK = "message click to metrics logger";
4747

4848
@VisibleForTesting
@@ -72,6 +72,11 @@ public class DisplayCallbacksImpl implements FirebaseInAppMessagingDisplayCallba
7272
wasImpressed = false;
7373
}
7474

75+
@VisibleForTesting
76+
boolean wasImpressed() {
77+
return wasImpressed;
78+
}
79+
7580
@Override
7681
public Task<Void> impressionDetected() {
7782

firebase-inappmessaging/src/test/java/com/google/firebase/inappmessaging/internal/DisplayCallbacksImplTest.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,27 @@ public void logImpression_forVanillaCampaign_recordsImpression() {
258258
assertThat(wasRecorded).isTrue();
259259
}
260260

261+
@Test
262+
public void logImpression_forOneMessageShouldNotAffectOtherMessages() {
263+
FirebaseInAppMessagingDisplayCallbacks displayCallbacksImplOne =
264+
displayCallbacksFactory.generateDisplayCallback(
265+
BANNER_TEST_MESSAGE_MODEL, ANALYTICS_EVENT_NAME);
266+
267+
FirebaseInAppMessagingDisplayCallbacks displayCallbacksImplTwo =
268+
displayCallbacksFactory.generateDisplayCallback(
269+
BANNER_TEST_MESSAGE_MODEL, ANALYTICS_EVENT_NAME);
270+
271+
displayCallbacksImplOne.impressionDetected();
272+
273+
assertThat(((DisplayCallbacksImpl) displayCallbacksImplOne).wasImpressed()).isTrue();
274+
assertThat(((DisplayCallbacksImpl) displayCallbacksImplTwo).wasImpressed()).isFalse();
275+
276+
displayCallbacksImplTwo.impressionDetected();
277+
278+
assertThat(((DisplayCallbacksImpl) displayCallbacksImplOne).wasImpressed()).isTrue();
279+
assertThat(((DisplayCallbacksImpl) displayCallbacksImplTwo).wasImpressed()).isTrue();
280+
}
281+
261282
@Test
262283
public void logImpression_forTestCampaign_doesRecordImpression() {
263284
displayCallbacksImpl =

0 commit comments

Comments
 (0)