Skip to content

Commit a263695

Browse files
authored
Merge pull request #1405 from OneSignal/Feature/IAM_lifecycle_events
IAM Lifecycle Events
2 parents 6326ba5 + e750c00 commit a263695

18 files changed

+813
-526
lines changed

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44

55
import androidx.multidex.MultiDexApplication;
66

7+
import com.onesignal.OSInAppMessage;
78
import com.onesignal.OSNotification;
9+
import com.onesignal.OSInAppMessageLifecycleHandler;
810
import com.onesignal.OneSignal;
911
import com.onesignal.sdktest.R;
1012
import com.onesignal.sdktest.constant.Tag;
@@ -19,6 +21,27 @@ public class MainApplication extends MultiDexApplication {
1921
public void onCreate() {
2022
super.onCreate();
2123

24+
OSInAppMessageLifecycleHandler handler = new OSInAppMessageLifecycleHandler() {
25+
@Override
26+
public void onWillDisplayInAppMessage(OSInAppMessage message) {
27+
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.VERBOSE, "MainApplication onWillDisplayInAppMessage");
28+
}
29+
@Override
30+
public void onDidDisplayInAppMessage(OSInAppMessage message) {
31+
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.VERBOSE, "MainApplication onDidDisplayInAppMessage");
32+
}
33+
@Override
34+
public void onWillDismissInAppMessage(OSInAppMessage message) {
35+
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.VERBOSE, "MainApplication onWillDismissInAppMessage");
36+
}
37+
@Override
38+
public void onDidDismissInAppMessage(OSInAppMessage message) {
39+
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.VERBOSE, "MainApplication onDidDismissInAppMessage");
40+
}
41+
};
42+
43+
OneSignal.setInAppMessageLifecycleHandler(handler);
44+
2245
OneSignal.setLogLevel(OneSignal.LOG_LEVEL.VERBOSE, OneSignal.LOG_LEVEL.NONE);
2346

2447
// OneSignal Initialization

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

Lines changed: 15 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

@@ -388,6 +391,9 @@ private void startDismissTimerIfNeeded() {
388391

389392
scheduleDismissRunnable = new Runnable() {
390393
public void run() {
394+
if (messageController != null) {
395+
messageController.onMessageWillDismiss();
396+
}
391397
if (currentActivity != null) {
392398
dismissAndAwaitNextMessage(null);
393399
scheduleDismissRunnable = null;
@@ -489,9 +495,7 @@ private void dereferenceViews() {
489495
private void animateInAppMessage(WebViewManager.Position displayLocation, View messageView, View backgroundView) {
490496
final CardView messageViewCardView = messageView.findViewWithTag(IN_APP_MESSAGE_CARD_VIEW_TAG);
491497

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

496500
// Based on the location of the in app message apply and animation to match
497501
switch (displayLocation) {
@@ -508,7 +512,7 @@ private void animateInAppMessage(WebViewManager.Position displayLocation, View m
508512
}
509513
}
510514

511-
private Animation.AnimationListener createAnimationListenerForAndroidApi23Elevation(final CardView messageViewCardView) {
515+
private Animation.AnimationListener createAnimationListener(final CardView messageViewCardView) {
512516
return new Animation.AnimationListener() {
513517
@Override
514518
public void onAnimationStart(Animation animation) {
@@ -518,7 +522,12 @@ public void onAnimationStart(Animation animation) {
518522
@Override
519523
public void onAnimationEnd(Animation animation) {
520524
// For Android 6 API 23 devices, waits until end of animation to set elevation of CardView class
521-
messageViewCardView.setCardElevation(dpToPx(5));
525+
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.M) {
526+
messageViewCardView.setCardElevation(dpToPx(5));
527+
}
528+
if (messageController != null) {
529+
messageController.onMessageWasShown();
530+
}
522531
}
523532

524533
@Override

0 commit comments

Comments
 (0)