Skip to content

Commit 8264005

Browse files
authored
Merge pull request #61 from Iterable/bugfix/ITBL-6310-inapp-npe-fix
[ITBL-6310] Fix NPEs when in-apps are resized after being dismissed
2 parents 7d1269a + b24b67b commit 8264005

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

iterableapi/src/main/java/com/iterable/iterableapi/IterableInAppHTMLNotification.java

+5
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,11 @@ public void resize(final float height) {
181181
getOwnerActivity().runOnUiThread(new Runnable() {
182182
@Override
183183
public void run() {
184+
// Since this is run asynchronously, notification might've been dismissed already
185+
if (notification == null) {
186+
return;
187+
}
188+
184189
DisplayMetrics displayMetrics = getOwnerActivity().getResources().getDisplayMetrics();
185190
Window window = notification.getWindow();
186191
Rect insetPadding = notification.insetPadding;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.iterable.iterableapi;
2+
3+
import android.app.Activity;
4+
import android.graphics.Rect;
5+
6+
import com.iterable.iterableapi.unit.BaseTest;
7+
8+
import org.junit.Test;
9+
import org.robolectric.Robolectric;
10+
import org.robolectric.android.controller.ActivityController;
11+
12+
public class IterableInAppHTMLNotificationTest extends BaseTest {
13+
14+
@Test
15+
public void testDoNotCrashOnResizeAfterDismiss() {
16+
ActivityController<Activity> controller = Robolectric.buildActivity(Activity.class).create().start();
17+
Activity activity = controller.get();
18+
19+
IterableInAppManager.showIterableNotificationHTML(activity, "", "", null, 0.0, new Rect());
20+
21+
IterableInAppHTMLNotification notification = IterableInAppHTMLNotification.getInstance();
22+
notification.dismiss();
23+
notification.resize(500.0f);
24+
}
25+
}

0 commit comments

Comments
 (0)