From 3b5775c813b09213b37c805189d7c8a5f90e4533 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartosz=20Weso=C5=82owski?= Date: Wed, 1 Mar 2023 13:21:44 +0100 Subject: [PATCH] Allow setting impression/dismiss thresholds in FirebaseInAppMessagingDisplay --- .../FirebaseInAppMessagingDisplay.java | 25 +++++++++++++++---- .../FirebaseInAppMessagingDisplayTest.java | 4 +-- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/firebase-inappmessaging-display/src/main/java/com/google/firebase/inappmessaging/display/FirebaseInAppMessagingDisplay.java b/firebase-inappmessaging-display/src/main/java/com/google/firebase/inappmessaging/display/FirebaseInAppMessagingDisplay.java index 6ef42043b8e..157e83ec6a3 100644 --- a/firebase-inappmessaging-display/src/main/java/com/google/firebase/inappmessaging/display/FirebaseInAppMessagingDisplay.java +++ b/firebase-inappmessaging-display/src/main/java/com/google/firebase/inappmessaging/display/FirebaseInAppMessagingDisplay.java @@ -77,9 +77,8 @@ */ @FirebaseAppScope public class FirebaseInAppMessagingDisplay extends FirebaseInAppMessagingDisplayImpl { - static final long IMPRESSION_THRESHOLD_MILLIS = 5 * 1000; // 5 seconds is a valid impression - static final long DISMISS_THRESHOLD_MILLIS = - 20 * 1000; // auto dismiss after 20 seconds for banner + static long impressionThresholdMillis = 5 * 1000; // 5 seconds is a valid impression + static long dismissThresholdMillis = 20 * 1000; // auto dismiss after 20 seconds for banner static final long INTERVAL_MILLIS = 1000; private final FirebaseInAppMessaging headlessInAppMessaging; @@ -131,6 +130,22 @@ public static FirebaseInAppMessagingDisplay getInstance() { return FirebaseApp.getInstance().get(FirebaseInAppMessagingDisplay.class); } + public static long getImpressionThresholdMillis() { + return impressionThresholdMillis; + } + + public static void setImpressionThresholdMillis(long impressionThresholdMillis) { + FirebaseInAppMessagingDisplay.impressionThresholdMillis = impressionThresholdMillis; + } + + public static long getDismissThresholdMillis() { + return dismissThresholdMillis; + } + + public static void setDismissThresholdMillis(long dismissThresholdMillis) { + FirebaseInAppMessagingDisplay.dismissThresholdMillis = dismissThresholdMillis; + } + private static int getScreenOrientation(Application app) { return app.getResources().getConfiguration().orientation; } @@ -389,7 +404,7 @@ public void onFinish() { } } }, - IMPRESSION_THRESHOLD_MILLIS, + impressionThresholdMillis, INTERVAL_MILLIS); // Setup auto dismiss timer @@ -405,7 +420,7 @@ public void onFinish() { dismissFiam(activity); } }, - DISMISS_THRESHOLD_MILLIS, + dismissThresholdMillis, INTERVAL_MILLIS); } diff --git a/firebase-inappmessaging-display/src/test/java/com/google/firebase/inappmessaging/display/FirebaseInAppMessagingDisplayTest.java b/firebase-inappmessaging-display/src/test/java/com/google/firebase/inappmessaging/display/FirebaseInAppMessagingDisplayTest.java index 8537144a18c..ef627d6cfbc 100644 --- a/firebase-inappmessaging-display/src/test/java/com/google/firebase/inappmessaging/display/FirebaseInAppMessagingDisplayTest.java +++ b/firebase-inappmessaging-display/src/test/java/com/google/firebase/inappmessaging/display/FirebaseInAppMessagingDisplayTest.java @@ -455,7 +455,7 @@ public void streamListener_whenImageLoadSucceeds_startsImpressionTimer() { any(RenewableTimer.Callback.class), ArgumentMatchers.eq( com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay - .IMPRESSION_THRESHOLD_MILLIS), + .impressionThresholdMillis), ArgumentMatchers.eq( com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay .INTERVAL_MILLIS)); @@ -473,7 +473,7 @@ public void streamListener_whenImageLoadSucceedsForAutoDismissFiam_startsDismiss any(RenewableTimer.Callback.class), ArgumentMatchers.eq( com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay - .DISMISS_THRESHOLD_MILLIS), + .dismissThresholdMillis), ArgumentMatchers.eq( com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay .INTERVAL_MILLIS));