Skip to content

Commit ffe6b39

Browse files
committed
Improve code after rebasing
* Remove IAMController Shadow from testing * Changes parts of IAMSController
1 parent 94a71a5 commit ffe6b39

File tree

7 files changed

+120
-131
lines changed

7 files changed

+120
-131
lines changed

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

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,16 @@ class OSInAppMessageController implements OSDynamicTriggerControllerObserver, OS
4848
// IAM clicks that have been successfully posted to our backend and should not be counted again
4949
@NonNull final private Set<String> clickedClickIds;
5050
// Ordered IAMs queued to display, includes the message currently displaying, if any.
51-
@NonNull final ArrayList<OSInAppMessage> messageDisplayQueue;
51+
@NonNull final private ArrayList<OSInAppMessage> messageDisplayQueue;
5252
// IAMs displayed with last displayed time and quantity of displays data
5353
// This is retrieved from a DB Table that take care of each object to be unique
5454
@NonNull private List<OSInAppMessage> redisplayedInAppMessages;
5555

56-
boolean inAppMessagingEnabled = true;
57-
boolean inAppMessageShowing = false;
56+
private boolean inAppMessagingEnabled = true;
57+
private boolean inAppMessageShowing = false;
5858

5959
@Nullable Date lastTimeInAppDismissed;
60-
int htmlNetworkRequestAttemptCount = 0;
60+
private int htmlNetworkRequestAttemptCount = 0;
6161

6262
@Nullable private static OSInAppMessageController sharedInstance;
6363
public static OSInAppMessageController getController() {
@@ -74,7 +74,7 @@ public static OSInAppMessageController getController() {
7474
return sharedInstance;
7575
}
7676

77-
protected OSInAppMessageController(OneSignalDbHelper dbInstance) {
77+
protected OSInAppMessageController(OneSignalDbHelper dbHelper) {
7878
messages = new ArrayList<>();
7979
dismissedMessages = OSUtils.newConcurrentSet();
8080
messageDisplayQueue = new ArrayList<>();
@@ -107,11 +107,11 @@ protected OSInAppMessageController(OneSignalDbHelper dbInstance) {
107107
if (tempClickedMessageIdsSet != null)
108108
clickedClickIds.addAll(tempClickedMessageIdsSet);
109109

110-
initRedisplayData(dbInstance);
110+
initRedisplayData(dbHelper);
111111
}
112112

113-
void initRedisplayData(OneSignalDbHelper dbInstance) {
114-
inAppMessageRepository = new OSInAppMessageRepository(dbInstance);
113+
protected void initRedisplayData(OneSignalDbHelper dbHelper) {
114+
inAppMessageRepository = new OSInAppMessageRepository(dbHelper);
115115
redisplayedInAppMessages = inAppMessageRepository.getRedisplayedInAppMessages();
116116

117117
OneSignal.Log(OneSignal.LOG_LEVEL.DEBUG, "redisplayedInAppMessages: " + redisplayedInAppMessages.toString());
@@ -143,7 +143,7 @@ void initWithCachedInAppMessages() {
143143

144144
/**
145145
* Called after the device is registered from UserStateSynchronizer
146-
* which is the REST call to create the player record on_session
146+
* which is the REST call to create the player record on_session
147147
*/
148148
void receivedInAppMessageJson(@NonNull JSONArray json) throws JSONException {
149149
// Cache copy for quick cold starts
@@ -402,7 +402,7 @@ private void setDataForRedisplay(OSInAppMessage message) {
402402
private void queueMessageForDisplay(@NonNull OSInAppMessage message) {
403403
synchronized (messageDisplayQueue) {
404404
// Make sure no message is ever added to the queue more than once
405-
if (!isInAppMessageQueued(message)) {
405+
if (!messageDisplayQueue.contains(message)) {
406406
messageDisplayQueue.add(message);
407407
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.DEBUG, "In app message with id, " + message.messageId + ", added to the queue");
408408
}
@@ -420,17 +420,6 @@ private void queueMessageForDisplay(@NonNull OSInAppMessage message) {
420420
}
421421
}
422422

423-
/**
424-
* Check the messageDisplayQueue for the message by messageId
425-
*/
426-
private boolean isInAppMessageQueued(OSInAppMessage message) {
427-
for (OSInAppMessage inAppMessage : messageDisplayQueue) {
428-
if (message.messageId.equals(inAppMessage.messageId))
429-
return true;
430-
}
431-
return false;
432-
}
433-
434423
boolean isInAppMessageShowing() {
435424
return inAppMessageShowing;
436425
}
@@ -467,8 +456,7 @@ void messageWasDismissed(@NonNull OSInAppMessage message) {
467456
private void dismissCurrentMessage() {
468457
synchronized (messageDisplayQueue) {
469458
if (messageDisplayQueue.size() > 0) {
470-
String removedMessageId = messageDisplayQueue.get(0).messageId;
471-
messageDisplayQueue.remove(0);
459+
String removedMessageId = messageDisplayQueue.remove(0).messageId;
472460
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.DEBUG, "In app message with id, " + removedMessageId + ", dismissed (removed) from the queue!");
473461
}
474462

@@ -522,7 +510,7 @@ public void run() {
522510
return "in_app_messages/" + message.messageId + "/variants/" + variantId + "/html?app_id=" + OneSignal.appId;
523511
}
524512

525-
public void displayMessage(@NonNull final OSInAppMessage message) {
513+
private void displayMessage(@NonNull final OSInAppMessage message) {
526514
if (!inAppMessagingEnabled) {
527515
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.VERBOSE, "In app messaging is currently paused, iam will not be shown!");
528516
return;
@@ -614,9 +602,9 @@ public void messageTriggerConditionChanged() {
614602
}
615603

616604
/**
617-
* Part of redisplay logic
605+
* Part of redisplay logic
618606
*
619-
* Make all messages with redisplay available if:
607+
* Make all messages with redisplay available if:
620608
* - Already displayed
621609
* - At least one Trigger has changed
622610
*/
@@ -630,10 +618,11 @@ private void makeRedisplayMessagesAvailableWithTriggers(Collection<String> newTr
630618
}
631619

632620
/**
633-
* Trigger logic
634-
* These methods mostly pass data to the Trigger Controller, but also cause the SDK to
635-
* re-evaluate messages to see if we should display a message now that the trigger
636-
* conditions have changed.
621+
* Trigger logic
622+
*
623+
* These methods mostly pass data to the Trigger Controller, but also cause the SDK to
624+
* re-evaluate messages to see if we should display/redisplay a message now that the trigger
625+
* conditions have changed.
637626
*/
638627
void addTriggers(Map<String, Object> newTriggers) {
639628
triggerController.addTriggers(newTriggers);
@@ -657,4 +646,14 @@ void setInAppMessagingEnabled(boolean enabled) {
657646
Object getTriggerValue(String key) {
658647
return triggerController.getTriggerValue(key);
659648
}
649+
650+
@NonNull
651+
public ArrayList<OSInAppMessage> getInAppMessageDisplayQueue() {
652+
return messageDisplayQueue;
653+
}
654+
655+
@NonNull
656+
public List<OSInAppMessage> getRedisplayedInAppMessages() {
657+
return redisplayedInAppMessages;
658+
}
660659
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class OSInAppMessageDummyController extends OSInAppMessageController {
2222
}
2323

2424
@Override
25-
void initRedisplayData(OneSignalDbHelper dbInstance) {
25+
public void initRedisplayData(OneSignalDbHelper dbHelper) {
2626
}
2727

2828
@Override

OneSignalSDK/unittest/src/test/java/com/onesignal/InAppMessagingHelpers.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@ public static void resetSessionLaunchTime() {
3232

3333
public static void clearTestState() {
3434
OneSignal.pauseInAppMessages(false);
35-
ShadowOSInAppMessageController.displayedMessages.clear();
36-
ShadowOSInAppMessageController.dismissedMessages.clear();
37-
OSInAppMessageController.getController().messageDisplayQueue.clear();
35+
OSInAppMessageController.getController().getInAppMessageDisplayQueue().clear();
3836
}
3937

4038
// Convenience method that wraps an object in a JSON Array

OneSignalSDK/unittest/src/test/java/com/onesignal/OneSignalPackagePrivateHelper.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
import java.lang.reflect.Field;
1818
import java.util.ArrayList;
19+
import java.util.Arrays;
20+
import java.util.List;
1921
import java.util.Map;
2022
import java.util.Set;
2123

@@ -458,7 +460,24 @@ public static String getShowingInAppMessageId() {
458460
}
459461

460462
public static ArrayList<com.onesignal.OSInAppMessage> getInAppMessageDisplayQueue() {
461-
return com.onesignal.OSInAppMessageController.getController().messageDisplayQueue;
463+
return com.onesignal.OSInAppMessageController.getController().getInAppMessageDisplayQueue();
464+
}
465+
466+
public static List<OSTestInAppMessage> getRedisplayInAppMessages() {
467+
List<OSInAppMessage> messages = com.onesignal.OSInAppMessageController.getController().getRedisplayedInAppMessages();
468+
List<OSTestInAppMessage> testMessages = new ArrayList<>();
469+
470+
for (OSInAppMessage message : messages) {
471+
try {
472+
OSTestInAppMessage testInAppMessage = new OSTestInAppMessage(message);
473+
testInAppMessage.getDisplayStats().setDisplayStats(message.getDisplayStats());
474+
testMessages.add(testInAppMessage);
475+
476+
} catch (JSONException e) {
477+
e.printStackTrace();
478+
}
479+
}
480+
return testMessages;
462481
}
463482

464483
public static class OSInAppMessageController {

OneSignalSDK/unittest/src/test/java/com/onesignal/ShadowOSInAppMessageController.java

Lines changed: 0 additions & 37 deletions
This file was deleted.

0 commit comments

Comments
 (0)