Skip to content

Commit 3c87251

Browse files
committed
Contingence for delay params being null
1 parent 57bd9f9 commit 3c87251

File tree

2 files changed

+27
-9
lines changed

2 files changed

+27
-9
lines changed

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

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,10 @@ static OSInAppMessageController getInAppMessageController() {
403403
private static HashSet<String> postedOpenedNotifIds = new HashSet<>();
404404
private static final ArrayList<OSGetTagsHandler> pendingGetTagsHandlers = new ArrayList<>();
405405

406-
static DelayedConsentInitializationParameters delayedInitParams;
406+
private static DelayedConsentInitializationParameters delayedInitParams;
407+
static DelayedConsentInitializationParameters getDelayedInitParams() {
408+
return delayedInitParams;
409+
}
407410

408411
// Start PermissionState
409412
private static OSPermissionState currentPermissionState;
@@ -730,9 +733,8 @@ synchronized private static void init(Context context) {
730733
}
731734

732735
static void onRemoteParamSet() {
733-
if (delayedInitParams != null) // Remote Params called from init
734-
reassignDelayedInitParams();
735-
else if (inForeground) // Remote Params called from onAppFocus
736+
boolean initDelayed = reassignDelayedInitParams();
737+
if (!initDelayed && inForeground) // Remote Params called from onAppFocus
736738
onAppFocusLogic();
737739
}
738740

@@ -983,17 +985,33 @@ public static void provideUserConsent(boolean consent) {
983985
}
984986
}
985987

986-
private static void reassignDelayedInitParams() {
988+
private static boolean reassignDelayedInitParams() {
989+
String delayedAppId;
990+
Context delayedContext;
991+
if (delayedInitParams == null) {
992+
// Get the cached app id, if it exists
993+
delayedAppId = getSavedAppId();
994+
delayedContext = appContext;
995+
logger.error("Trying to continue OneSignal with null delayed params");
996+
} else {
997+
delayedAppId = delayedInitParams.appId;
998+
delayedContext = delayedInitParams.context;
999+
}
1000+
9871001
logger.debug("reassignDelayedInitParams with appContext: " + appContext);
988-
Context delayedContext = delayedInitParams.context;
989-
String delayedAppId = delayedInitParams.appId;
9901002

9911003
delayedInitParams = null;
9921004
setAppId(delayedAppId);
9931005

9941006
// Check to avoid extra initWithContext logging and logic
995-
if (!initDone)
1007+
if (!initDone) {
1008+
if (delayedContext == null) {
1009+
logger.error("Trying to continue OneSignal with null delayed params context");
1010+
return false;
1011+
}
9961012
initWithContext(delayedContext);
1013+
}
1014+
return true;
9971015
}
9981016

9991017
static OneSignalRemoteParams.Params getRemoteParams() {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ public static void OneSignal_onAppLostFocus() {
225225
}
226226

227227
public static DelayedConsentInitializationParameters OneSignal_delayedInitParams() {
228-
return OneSignal.delayedInitParams;
228+
return OneSignal.getDelayedInitParams();
229229
}
230230

231231
public static ConcurrentLinkedQueue<Runnable> OneSignal_taskQueueWaitingForInit() {

0 commit comments

Comments
 (0)