@@ -174,22 +174,13 @@ private void processInAppMessageJson(@NonNull JSONArray json) throws JSONExcepti
174
174
JSONObject messageJson = json .getJSONObject (i );
175
175
OSInAppMessage message = new OSInAppMessage (messageJson );
176
176
177
- populateRedisplayMessageTriggers (message );
178
177
newMessages .add (message );
179
178
}
180
179
messages = newMessages ;
181
180
182
181
evaluateInAppMessages ();
183
182
}
184
183
185
- private void populateRedisplayMessageTriggers (OSInAppMessage message ) {
186
- int index = redisplayedInAppMessages .indexOf (message );
187
- if (index > -1 ) {
188
- OSInAppMessage redisplayMessage = redisplayedInAppMessages .get (index );
189
- redisplayMessage .triggers = message .triggers ;
190
- }
191
- }
192
-
193
184
private void evaluateInAppMessages () {
194
185
OneSignal .Log (OneSignal .LOG_LEVEL .DEBUG , "Starting evaluateInAppMessages" );
195
186
@@ -478,7 +469,7 @@ private void setDataForRedisplay(OSInAppMessage message) {
478
469
message .getRedisplayStats ().setDisplayStats (savedIAM .getRedisplayStats ());
479
470
480
471
// Message that don't have triggers should display only once per session
481
- boolean triggerHasChanged = savedIAM .isTriggerChanged () || (!savedIAM .isDisplayedInSession () && message .triggers .isEmpty ());
472
+ boolean triggerHasChanged = message .isTriggerChanged () || (!savedIAM .isDisplayedInSession () && message .triggers .isEmpty ());
482
473
483
474
OneSignal .onesignalLog (OneSignal .LOG_LEVEL .DEBUG , "setDataForRedisplay: " + message .toString () + " triggerHasChanged: " + triggerHasChanged );
484
475
@@ -780,8 +771,9 @@ public void systemConditionChanged() {
780
771
* - At least one Trigger has changed
781
772
*/
782
773
private void makeRedisplayMessagesAvailableWithTriggers (Collection <String > newTriggersKeys ) {
783
- for (OSInAppMessage message : redisplayedInAppMessages ) {
784
- if (!message .isTriggerChanged () && triggerController .isTriggerOnMessage (message , newTriggersKeys )) {
774
+ for (OSInAppMessage message : messages ) {
775
+ if (!message .isTriggerChanged () && redisplayedInAppMessages .contains (message ) &&
776
+ triggerController .isTriggerOnMessage (message , newTriggersKeys )) {
785
777
message .setTriggerChanged (true );
786
778
}
787
779
}
0 commit comments