Skip to content

Commit 829b1f6

Browse files
committed
Using OSInAppMessageContent to pass layout properties
1 parent 8338f38 commit 829b1f6

File tree

3 files changed

+22
-29
lines changed

3 files changed

+22
-29
lines changed

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

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import android.view.WindowManager;
2020
import android.view.animation.Animation;
2121
import android.webkit.WebView;
22-
import android.widget.LinearLayout;
2322
import android.widget.PopupWindow;
2423
import android.widget.RelativeLayout;
2524

@@ -84,12 +83,12 @@ interface InAppMessageViewListener {
8483
private InAppMessageViewListener messageController;
8584
private Runnable scheduleDismissRunnable;
8685

87-
InAppMessageView(@NonNull WebView webView, @NonNull WebViewManager.Position displayLocation, int pageHeight, double dismissDuration, boolean disableDragDismiss) {
86+
InAppMessageView(@NonNull WebView webView, @NonNull OSInAppMessageContent content, boolean disableDragDismiss) {
8887
this.webView = webView;
89-
this.displayLocation = displayLocation;
90-
this.pageHeight = pageHeight;
88+
this.displayLocation = content.getDisplayLocation();
89+
this.pageHeight = content.getPageHeight();
9190
this.pageWidth = ViewGroup.LayoutParams.MATCH_PARENT;
92-
this.dismissDuration = Double.isNaN(dismissDuration) ? 0 : dismissDuration;
91+
this.dismissDuration = content.getDismissDuration() == null ? 0 : dismissDuration;
9392
this.hasBackground = !displayLocation.isBanner();
9493
this.disableDragDismiss = disableDragDismiss;
9594
}
@@ -117,17 +116,7 @@ void checkIfShouldDismiss() {
117116
finishAfterDelay(null);
118117
}
119118
}
120-
121-
void useHeightMargins(boolean shouldUseMargin) {
122-
marginPxSizeBottom = shouldUseMargin ? MARGIN_PX_SIZE : 0;
123-
marginPxSizeTop = shouldUseMargin ? MARGIN_PX_SIZE : 0;
124-
}
125-
126-
void useWidthMargins(boolean shouldUseMargin) {
127-
marginPxSizeLeft = shouldUseMargin ? MARGIN_PX_SIZE : 0;
128-
marginPxSizeRight = shouldUseMargin ? MARGIN_PX_SIZE : 0;
129-
}
130-
119+
131120
/**
132121
* This will fired when the device is rotated for example with a new provided height for the WebView
133122
* Called to shrink or grow the WebView when it receives a JS resize event with a new height.

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

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ boolean isBanner() {
6464

6565
@NonNull private Activity activity;
6666
@NonNull private OSInAppMessageInternal message;
67+
@NonNull private OSInAppMessageContent messageContent;
6768

6869
@Nullable private String currentActivityName = null;
6970
private Integer lastPageHeight = null;
@@ -77,9 +78,10 @@ interface OneSignalGenericCallback {
7778
void onComplete();
7879
}
7980

80-
protected WebViewManager(@NonNull OSInAppMessageInternal message, @NonNull Activity activity) {
81+
protected WebViewManager(@NonNull OSInAppMessageInternal message, @NonNull Activity activity, @NonNull OSInAppMessageContent content) {
8182
this.message = message;
8283
this.activity = activity;
84+
this.messageContent = content;
8385
}
8486

8587
/**
@@ -91,7 +93,7 @@ protected WebViewManager(@NonNull OSInAppMessageInternal message, @NonNull Activ
9193
*/
9294
static void showMessageContent(@NonNull final OSInAppMessageInternal message, @NonNull final OSInAppMessageContent content) {
9395
final Activity currentActivity = OneSignal.getCurrentActivity();
94-
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.DEBUG, "in app message showHTMLString on currentActivity: " + currentActivity);
96+
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.DEBUG, "in app message showMessageContent on currentActivity: " + currentActivity);
9597
/* IMPORTANT
9698
* This is the starting route for grabbing the current Activity and passing it to InAppMessageView */
9799
if (currentActivity != null) {
@@ -103,11 +105,11 @@ static void showMessageContent(@NonNull final OSInAppMessageInternal message, @N
103105
@Override
104106
public void onComplete() {
105107
lastInstance = null;
106-
initInAppMessage(currentActivity, message, content.getContentHtml());
108+
initInAppMessage(currentActivity, message, content);
107109
}
108110
});
109111
} else {
110-
initInAppMessage(currentActivity, message, content.getContentHtml());
112+
initInAppMessage(currentActivity, message, content);
111113
}
112114
return;
113115
}
@@ -130,14 +132,14 @@ static void dismissCurrentInAppMessage() {
130132
}
131133
}
132134

133-
private static void initInAppMessage(@NonNull final Activity currentActivity, @NonNull OSInAppMessageInternal message, @NonNull String htmlStr) {
135+
private static void initInAppMessage(@NonNull final Activity currentActivity, @NonNull OSInAppMessageInternal message, @NonNull OSInAppMessageContent content) {
134136
try {
135137
final String base64Str = Base64.encodeToString(
136-
htmlStr.getBytes("UTF-8"),
138+
content.getContentHtml().getBytes("UTF-8"),
137139
Base64.NO_WRAP
138140
);
139141

140-
final WebViewManager webViewManager = new WebViewManager(message, currentActivity);
142+
final WebViewManager webViewManager = new WebViewManager(message, currentActivity, content);
141143
lastInstance = webViewManager;
142144

143145
// Web view must be created on the main thread.
@@ -200,7 +202,9 @@ private void handleRenderComplete(JSONObject jsonObject) {
200202
Position displayType = getDisplayLocation(jsonObject);
201203
int pageHeight = displayType == Position.FULL_SCREEN ? -1 : getPageHeightData(jsonObject);
202204
boolean dragToDismissDisabled = getDragToDismissDisabled(jsonObject);
203-
createNewInAppMessageView(displayType, pageHeight, dragToDismissDisabled);
205+
messageContent.setDisplayLocation(displayType);
206+
messageContent.setPageHeight(pageHeight);
207+
createNewInAppMessageView(dragToDismissDisabled);
204208
}
205209

206210
private int getPageHeightData(JSONObject jsonObject) {
@@ -414,9 +418,9 @@ private void setMessageView(InAppMessageView view) {
414418
}
415419
}
416420

417-
private void createNewInAppMessageView(@NonNull Position displayLocation, int pageHeight, boolean dragToDismissDisabled) {
418-
lastPageHeight = pageHeight;
419-
InAppMessageView newView = new InAppMessageView(webView, displayLocation, pageHeight, message.getDisplayDuration(), dragToDismissDisabled);
421+
private void createNewInAppMessageView(boolean dragToDismissDisabled) {
422+
lastPageHeight = messageContent.getPageHeight();
423+
InAppMessageView newView = new InAppMessageView(webView, messageContent, dragToDismissDisabled);
420424
setMessageView(newView);
421425
messageView.setMessageController(new InAppMessageView.InAppMessageViewListener() {
422426
@Override

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -621,8 +621,8 @@ public void dismissAndAwaitNextMessage(@Nullable final OneSignalGenericCallback
621621
super.dismissAndAwaitNextMessage(callback);
622622
}
623623

624-
protected WebViewManager(@NonNull OSInAppMessageInternal message, @NonNull Activity activity) {
625-
super(message, activity);
624+
protected WebViewManager(@NonNull OSInAppMessageInternal message, @NonNull Activity activity, @NonNull com.onesignal.OSInAppMessageContent content) {
625+
super(message, activity, content);
626626
}
627627
}
628628

0 commit comments

Comments
 (0)