diff --git a/iterableapi/src/main/java/com/iterable/iterableapi/IterableActionRunner.java b/iterableapi/src/main/java/com/iterable/iterableapi/IterableActionRunner.java index 8e9e04fd7..4476709d0 100644 --- a/iterableapi/src/main/java/com/iterable/iterableapi/IterableActionRunner.java +++ b/iterableapi/src/main/java/com/iterable/iterableapi/IterableActionRunner.java @@ -58,6 +58,7 @@ boolean executeAction(@NonNull Context context, @Nullable IterableAction action, * `false` if the handler did not handle this URL and no activity was found to open it with */ private boolean openUri(@NonNull Context context, @NonNull Uri uri, @NonNull IterableActionContext actionContext) { + boolean uriHandled = false; // Handle URL: check for deep links within the app if (!IterableUtil.isUrlOpenAllowed(uri.toString())) { return false; @@ -73,6 +74,11 @@ private boolean openUri(@NonNull Context context, @NonNull Uri uri, @NonNull Ite Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(uri); + if (context.getPackageManager() == null) { + IterableLogger.e(TAG, "Could not find package manager to handle deep link:" + uri); + return false; + } + List resolveInfos = context.getPackageManager().queryIntentActivities(intent, 0); if (resolveInfos.size() > 1) { for (ResolveInfo resolveInfo : resolveInfos) { @@ -88,11 +94,11 @@ private boolean openUri(@NonNull Context context, @NonNull Uri uri, @NonNull Ite if (intent.resolveActivity(context.getPackageManager()) != null) { context.startActivity(intent); - return true; + uriHandled = true; } else { IterableLogger.e(TAG, "Could not find activities to handle deep link:" + uri); - return false; } + return uriHandled; } /**