diff --git a/OneSignalSDK/onesignal/src/main/java/com/onesignal/OSInAppMessageAction.java b/OneSignalSDK/onesignal/src/main/java/com/onesignal/OSInAppMessageAction.java index ad55bb018a..f91f15cc26 100644 --- a/OneSignalSDK/onesignal/src/main/java/com/onesignal/OSInAppMessageAction.java +++ b/OneSignalSDK/onesignal/src/main/java/com/onesignal/OSInAppMessageAction.java @@ -10,8 +10,6 @@ import java.util.ArrayList; import java.util.List; -import static com.onesignal.OSInAppMessageLocationPrompt.LOCATION_PROMPT_KEY; - public class OSInAppMessageAction { private static final String ID = "id"; @@ -117,8 +115,14 @@ private void parseOutcomes(JSONObject json) throws JSONException { private void parsePrompts(JSONObject json) throws JSONException { JSONArray promptsJsonArray = json.getJSONArray(PROMPTS); for (int i = 0; i < promptsJsonArray.length(); i++) { - if (promptsJsonArray.get(i).equals(LOCATION_PROMPT_KEY) ) { - prompts.add(new OSInAppMessageLocationPrompt()); + String promptType = promptsJsonArray.getString(i); + switch (promptType) { + case OSInAppMessagePushPrompt.PUSH_PROMPT_KEY: + prompts.add(new OSInAppMessagePushPrompt()); + break; + case OSInAppMessageLocationPrompt.LOCATION_PROMPT_KEY: + prompts.add(new OSInAppMessageLocationPrompt()); + break; } } } diff --git a/OneSignalSDK/onesignal/src/main/java/com/onesignal/OSInAppMessagePushPrompt.java b/OneSignalSDK/onesignal/src/main/java/com/onesignal/OSInAppMessagePushPrompt.java new file mode 100644 index 0000000000..80c7cbe81e --- /dev/null +++ b/OneSignalSDK/onesignal/src/main/java/com/onesignal/OSInAppMessagePushPrompt.java @@ -0,0 +1,25 @@ +package com.onesignal; + +public class OSInAppMessagePushPrompt extends OSInAppMessagePrompt { + + static final String PUSH_PROMPT_KEY = "push"; + + @Override + void handlePrompt(OneSignal.OSPromptActionCompletionCallback callback) { + OneSignal.promptForPushNotifications( + true, + accepted -> { + OneSignal.PromptActionResult result = accepted ? + OneSignal.PromptActionResult.PERMISSION_GRANTED : + OneSignal.PromptActionResult.PERMISSION_DENIED; + callback.onCompleted(result); + } + ); + } + + @Override + String getPromptKey() { + return PUSH_PROMPT_KEY; + } + +}