@@ -83,7 +83,7 @@ class OSInAppMessageController extends OSBackgroundManager implements OSDynamicT
83
83
private String userTagsString = null ;
84
84
85
85
@ Nullable
86
- private String pendingHTMLContent = null ;
86
+ private OSInAppMessageContent pendingMessageContent = null ;
87
87
88
88
private boolean waitForTags = false ;
89
89
@@ -775,18 +775,26 @@ public void tagsAvailable(JSONObject tags) {
775
775
if (tags != null ) {
776
776
userTagsString = tags .toString ();
777
777
}
778
- if (pendingHTMLContent != null ) {
778
+ if (pendingMessageContent != null ) {
779
779
if (!isPreview ) {
780
780
OneSignal .getSessionManager ().onInAppMessageReceived (message .messageId );
781
781
}
782
- WebViewManager .showHTMLString (message , taggedHTMLString (pendingHTMLContent ));
783
- pendingHTMLContent = null ;
782
+ pendingMessageContent .setContentHtml (taggedHTMLString (pendingMessageContent .getContentHtml ()));
783
+ WebViewManager .showMessageContent (message , pendingMessageContent );
784
+ pendingMessageContent = null ;
784
785
}
785
786
}
786
787
});
787
788
}
788
789
}
789
790
791
+ private OSInAppMessageContent parseMessageContentData (JSONObject data , OSInAppMessageInternal message ) {
792
+ OSInAppMessageContent content = new OSInAppMessageContent (data );
793
+ double displayDuration = data .optDouble ("display_duration" );
794
+ message .setDisplayDuration (displayDuration );
795
+ return content ;
796
+ }
797
+
790
798
private void displayMessage (@ NonNull final OSInAppMessageInternal message ) {
791
799
if (!inAppMessagingEnabled ) {
792
800
logger .verbose ("In app messaging is currently paused, in app messages will not be shown!" );
@@ -803,17 +811,19 @@ private void displayMessage(@NonNull final OSInAppMessageInternal message) {
803
811
public void onSuccess (String response ) {
804
812
try {
805
813
JSONObject jsonResponse = new JSONObject (response );
806
- String htmlStr = jsonResponse .getString ("html" );
807
-
808
- double displayDuration = jsonResponse .optDouble ("display_duration" );
809
- message .setDisplayDuration (displayDuration );
814
+ OSInAppMessageContent content = parseMessageContentData (jsonResponse , message );
815
+ if (content .getContentHtml () == null ) {
816
+ logger .debug ("displayMessage:OnSuccess: No HTML retrieved from loadMessageContent" );
817
+ return ;
818
+ }
810
819
if (waitForTags ) {
811
- pendingHTMLContent = htmlStr ;
820
+ pendingMessageContent = content ;
812
821
return ;
813
822
}
814
823
OneSignal .getSessionManager ().onInAppMessageReceived (message .messageId );
815
824
onMessageWillDisplay (message );
816
- WebViewManager .showHTMLString (message , taggedHTMLString (htmlStr ));
825
+ content .setContentHtml (taggedHTMLString (content .getContentHtml ()));
826
+ WebViewManager .showMessageContent (message , content );
817
827
} catch (JSONException e ) {
818
828
e .printStackTrace ();
819
829
}
@@ -858,16 +868,18 @@ void displayPreviewMessage(@NonNull String previewUUID) {
858
868
public void onSuccess (String response ) {
859
869
try {
860
870
JSONObject jsonResponse = new JSONObject (response );
861
- String htmlStr = jsonResponse .getString ("html" );
862
-
863
- double displayDuration = jsonResponse .optDouble ("display_duration" );
864
- message .setDisplayDuration (displayDuration );
871
+ OSInAppMessageContent content = parseMessageContentData (jsonResponse , message );
872
+ if (content .getContentHtml () == null ) {
873
+ logger .debug ("displayPreviewMessage:OnSuccess: No HTML retrieved from loadMessageContent" );
874
+ return ;
875
+ }
865
876
if (waitForTags ) {
866
- pendingHTMLContent = htmlStr ;
877
+ pendingMessageContent = content ;
867
878
return ;
868
879
}
869
880
onMessageWillDisplay (message );
870
- WebViewManager .showHTMLString (message , taggedHTMLString (htmlStr ));
881
+ content .setContentHtml (taggedHTMLString (content .getContentHtml ()));
882
+ WebViewManager .showMessageContent (message , content );
871
883
} catch (JSONException e ) {
872
884
e .printStackTrace ();
873
885
}
0 commit comments