Skip to content

Commit 1c8354a

Browse files
committed
Iterate over message instead of redisplay
* For better readability * Keep message list as single source of true
1 parent cfb5574 commit 1c8354a

File tree

1 file changed

+4
-12
lines changed

1 file changed

+4
-12
lines changed

OneSignalSDK/onesignal/src/main/java/com/onesignal/OSInAppMessageController.java

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -174,22 +174,13 @@ private void processInAppMessageJson(@NonNull JSONArray json) throws JSONExcepti
174174
JSONObject messageJson = json.getJSONObject(i);
175175
OSInAppMessage message = new OSInAppMessage(messageJson);
176176

177-
populateRedisplayMessageTriggers(message);
178177
newMessages.add(message);
179178
}
180179
messages = newMessages;
181180

182181
evaluateInAppMessages();
183182
}
184183

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-
193184
private void evaluateInAppMessages() {
194185
OneSignal.Log(OneSignal.LOG_LEVEL.DEBUG, "Starting evaluateInAppMessages");
195186

@@ -478,7 +469,7 @@ private void setDataForRedisplay(OSInAppMessage message) {
478469
message.getRedisplayStats().setDisplayStats(savedIAM.getRedisplayStats());
479470

480471
// 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());
482473

483474
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.DEBUG, "setDataForRedisplay: " + message.toString() + " triggerHasChanged: " + triggerHasChanged);
484475

@@ -780,8 +771,9 @@ public void systemConditionChanged() {
780771
* - At least one Trigger has changed
781772
*/
782773
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)) {
785777
message.setTriggerChanged(true);
786778
}
787779
}

0 commit comments

Comments
 (0)