Skip to content

Commit 87ff824

Browse files
committed
Add null check for currentActivityName
* currentActivityName under WebViewManager for IAMs, might end being null * Add log to know in which case might this field end null
1 parent 181a451 commit 87ff824

File tree

3 files changed

+35
-11
lines changed

3 files changed

+35
-11
lines changed

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,4 +600,20 @@ private ValueAnimator animateBackgroundColor(View backgroundView, int duration,
600600
endColor,
601601
animCallback);
602602
}
603+
604+
@Override
605+
public String toString() {
606+
return "InAppMessageView{" +
607+
"currentActivity=" + currentActivity +
608+
", pageWidth=" + pageWidth +
609+
", pageHeight=" + pageHeight +
610+
", dismissDuration=" + dismissDuration +
611+
", hasBackground=" + hasBackground +
612+
", shouldDismissWhenActive=" + shouldDismissWhenActive +
613+
", isDragging=" + isDragging +
614+
", disableDragDismiss=" + disableDragDismiss +
615+
", displayLocation=" + displayLocation +
616+
", webView=" + webView +
617+
'}';
618+
}
603619
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -660,7 +660,7 @@ private void queueMessageForDisplay(@NonNull OSInAppMessage message) {
660660
// Make sure no message is ever added to the queue more than once
661661
if (!messageDisplayQueue.contains(message)) {
662662
messageDisplayQueue.add(message);
663-
logger.debug("In app message with id, " + message.messageId + ", added to the queue");
663+
logger.debug("In app message with id: " + message.messageId + ", added to the queue");
664664
}
665665

666666
attemptToShowInAppMessage();
@@ -683,7 +683,7 @@ private void attemptToShowInAppMessage() {
683683
return;
684684
}
685685

686-
logger.debug("In app message is currently showing or there are no IAMs left in the queue!");
686+
logger.debug("In app message is currently showing or there are no IAMs left in the queue! isInAppMessageShowing: " + isInAppMessageShowing());
687687
}
688688
}
689689

@@ -726,7 +726,7 @@ void messageWasDismissed(@NonNull OSInAppMessage message, boolean failed) {
726726
}
727727

728728
void messageWasDismissedByBackPress(@NonNull OSInAppMessage message) {
729-
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.DEBUG, "OSInAppMessageController messageWasDismissed by back press: " + message.toString());
729+
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.DEBUG, "In app message OSInAppMessageController messageWasDismissed by back press: " + message.toString());
730730
// IAM was not dismissed by user, will be redisplay again until user dismiss it
731731
dismissCurrentMessage(message);
732732
}
@@ -753,7 +753,7 @@ private void dismissCurrentMessage(@Nullable OSInAppMessage message) {
753753
return;
754754
} else {
755755
String removedMessageId = messageDisplayQueue.remove(0).messageId;
756-
logger.debug("In app message with id, " + removedMessageId + ", dismissed (removed) from the queue!");
756+
logger.debug("In app message with id: " + removedMessageId + ", dismissed (removed) from the queue!");
757757
}
758758
}
759759

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

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
import android.os.Build;
77
import android.os.Handler;
88
import android.os.Looper;
9-
import androidx.annotation.NonNull;
10-
import androidx.annotation.Nullable;
119
import android.util.Base64;
1210
import android.view.View;
1311
import android.webkit.JavascriptInterface;
1412
import android.webkit.ValueCallback;
1513
import android.webkit.WebView;
1614

15+
import androidx.annotation.NonNull;
16+
import androidx.annotation.Nullable;
17+
1718
import org.json.JSONException;
1819
import org.json.JSONObject;
1920

@@ -63,7 +64,7 @@ boolean isBanner() {
6364
@NonNull private Activity activity;
6465
@NonNull private OSInAppMessage message;
6566

66-
private String currentActivityName = null;
67+
@Nullable private String currentActivityName = null;
6768
private Integer lastPageHeight = null;
6869

6970
interface OneSignalGenericCallback {
@@ -303,21 +304,28 @@ void available(final @NonNull Activity activity) {
303304
this.activity = activity;
304305
this.currentActivityName = activity.getLocalClassName();
305306

307+
OneSignal.Log(OneSignal.LOG_LEVEL.DEBUG, "In app message activity available " +
308+
"currentActivityName: " + currentActivityName + " lastActivityName: " + lastActivityName );
309+
306310
if (lastActivityName == null)
307311
showMessageView(null);
308312
else if (!lastActivityName.equals(currentActivityName)) {
309313
// Navigate to new activity while displaying current IAM
310314
if (messageView != null)
311315
messageView.removeAllViews();
312316
showMessageView(lastPageHeight);
313-
} else
317+
} else {
318+
// Activity rotated
314319
calculateHeightAndShowWebViewAfterNewActivity();
320+
}
315321
}
316322

317323
@Override
318-
void stopped(Activity activity) {
319-
OneSignal.Log(OneSignal.LOG_LEVEL.DEBUG, "In app message activity stopped, cleaning views");
320-
if (messageView != null && currentActivityName.equals(activity.getLocalClassName()))
324+
void stopped(@NonNull Activity activity) {
325+
OneSignal.Log(OneSignal.LOG_LEVEL.DEBUG, "In app message activity stopped, cleaning views, " +
326+
"currentActivityName: " + currentActivityName + "\nactivity: " + this.activity + "\nmessageView: " + messageView);
327+
328+
if (messageView != null && activity.getLocalClassName().equals(currentActivityName))
321329
messageView.removeAllViews();
322330
}
323331

0 commit comments

Comments
 (0)