Skip to content

Commit 4dfa6f5

Browse files
committed
Moved onMessageWasShown to onAnimationEnd
- Seems to work fine for IAM and carousel - Known issue with prompts (problems around dismiss)
1 parent 87f0952 commit 4dfa6f5

File tree

3 files changed

+24
-14
lines changed

3 files changed

+24
-14
lines changed

Examples/OneSignalDemo/app/src/main/java/com/onesignal/sdktest/application/MainApplication.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,19 @@ public void onCreate() {
2525
OSIAMLifecycleHandler handler = new OSIAMLifecycleHandler() {
2626
@Override
2727
public void onWillDisplayInAppMessage(OSInAppMessage message) {
28-
return;
28+
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.VERBOSE, "MainApplication onWillDisplayInAppMessage");
2929
}
3030
@Override
3131
public void onDidDisplayInAppMessage(OSInAppMessage message) {
32-
return;
32+
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.VERBOSE, "MainApplication onDidDisplayInAppMessage");
3333
}
3434
@Override
3535
public void onWillDismissInAppMessage(OSInAppMessage message) {
36-
return;
36+
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.VERBOSE, "MainApplication onWillDismissInAppMessage");
3737
}
3838
@Override
3939
public void onDidDismissInAppMessage(OSInAppMessage message) {
40-
return;
40+
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.VERBOSE, "MainApplication onDidDismissInAppMessage");
4141
}
4242
};
4343

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ class InAppMessageView {
6161

6262
interface InAppMessageViewListener {
6363
void onMessageWasShown();
64+
void onMessageWillDismiss();
6465
void onMessageWasDismissed();
6566
}
6667

@@ -243,7 +244,6 @@ public void run() {
243244

244245
if (messageController != null) {
245246
animateInAppMessage(displayLocation, draggableRelativeLayout, parentRelativeLayout);
246-
messageController.onMessageWasShown();
247247
}
248248

249249
startDismissTimerIfNeeded();
@@ -310,6 +310,9 @@ private void setUpDraggableLayout(final Context context,
310310
draggableRelativeLayout.setListener(new DraggableRelativeLayout.DraggableListener() {
311311
@Override
312312
public void onDismiss() {
313+
if (messageController != null) {
314+
messageController.onMessageWillDismiss();
315+
}
313316
finishAfterDelay(null);
314317
}
315318

@@ -489,9 +492,7 @@ private void dereferenceViews() {
489492
private void animateInAppMessage(WebViewManager.Position displayLocation, View messageView, View backgroundView) {
490493
final CardView messageViewCardView = messageView.findViewWithTag(IN_APP_MESSAGE_CARD_VIEW_TAG);
491494

492-
Animation.AnimationListener cardViewAnimCallback = null;
493-
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.M)
494-
cardViewAnimCallback = createAnimationListenerForAndroidApi23Elevation(messageViewCardView);
495+
Animation.AnimationListener cardViewAnimCallback = createAnimationListener(messageViewCardView);
495496

496497
// Based on the location of the in app message apply and animation to match
497498
switch (displayLocation) {
@@ -508,7 +509,7 @@ private void animateInAppMessage(WebViewManager.Position displayLocation, View m
508509
}
509510
}
510511

511-
private Animation.AnimationListener createAnimationListenerForAndroidApi23Elevation(final CardView messageViewCardView) {
512+
private Animation.AnimationListener createAnimationListener(final CardView messageViewCardView) {
512513
return new Animation.AnimationListener() {
513514
@Override
514515
public void onAnimationStart(Animation animation) {
@@ -518,7 +519,12 @@ public void onAnimationStart(Animation animation) {
518519
@Override
519520
public void onAnimationEnd(Animation animation) {
520521
// For Android 6 API 23 devices, waits until end of animation to set elevation of CardView class
521-
messageViewCardView.setCardElevation(dpToPx(5));
522+
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.M) {
523+
messageViewCardView.setCardElevation(dpToPx(5));
524+
}
525+
if (messageController != null) {
526+
messageController.onMessageWasShown();
527+
}
522528
}
523529

524530
@Override

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

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,9 +235,6 @@ private void handleActionTaken(JSONObject jsonObject) throws JSONException {
235235

236236
boolean close = body.getBoolean("close");
237237
if (close) {
238-
if (message != null) {
239-
OneSignal.getInAppMessageController().onMessageWillDismiss(message);
240-
}
241238
dismissAndAwaitNextMessage(null);
242239
}
243240
}
@@ -408,6 +405,11 @@ public void onMessageWasShown() {
408405
OneSignal.getInAppMessageController().onMessageWasShown(message);
409406
}
410407

408+
@Override
409+
public void onMessageWillDismiss() {
410+
OneSignal.getInAppMessageController().onMessageWillDismiss(message);
411+
}
412+
411413
@Override
412414
public void onMessageWasDismissed() {
413415
OneSignal.getInAppMessageController().messageWasDismissed(message);
@@ -451,7 +453,9 @@ protected void dismissAndAwaitNextMessage(@Nullable final OneSignalGenericCallba
451453
callback.onComplete();
452454
return;
453455
}
454-
456+
if (message != null && messageView != null) {
457+
OneSignal.getInAppMessageController().onMessageWillDismiss(message);
458+
}
455459
messageView.dismissAndAwaitNextMessage(new OneSignalGenericCallback() {
456460
@Override
457461
public void onComplete() {

0 commit comments

Comments
 (0)