Skip to content

Commit 550caa3

Browse files
committed
Add notification permission prompting to IAMs
Add support for notification permission prompting to In-App Messaging.
1 parent 8d6f602 commit 550caa3

File tree

2 files changed

+33
-4
lines changed

2 files changed

+33
-4
lines changed

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

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
import java.util.ArrayList;
1111
import java.util.List;
1212

13-
import static com.onesignal.OSInAppMessageLocationPrompt.LOCATION_PROMPT_KEY;
14-
1513
public class OSInAppMessageAction {
1614

1715
private static final String ID = "id";
@@ -117,8 +115,14 @@ private void parseOutcomes(JSONObject json) throws JSONException {
117115
private void parsePrompts(JSONObject json) throws JSONException {
118116
JSONArray promptsJsonArray = json.getJSONArray(PROMPTS);
119117
for (int i = 0; i < promptsJsonArray.length(); i++) {
120-
if (promptsJsonArray.get(i).equals(LOCATION_PROMPT_KEY) ) {
121-
prompts.add(new OSInAppMessageLocationPrompt());
118+
String promptType = promptsJsonArray.getString(i);
119+
switch (promptType) {
120+
case OSInAppMessagePushPrompt.PUSH_PROMPT_KEY:
121+
prompts.add(new OSInAppMessagePushPrompt());
122+
break;
123+
case OSInAppMessageLocationPrompt.LOCATION_PROMPT_KEY:
124+
prompts.add(new OSInAppMessageLocationPrompt());
125+
break;
122126
}
123127
}
124128
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.onesignal;
2+
3+
public class OSInAppMessagePushPrompt extends OSInAppMessagePrompt {
4+
5+
static final String PUSH_PROMPT_KEY = "push";
6+
7+
@Override
8+
void handlePrompt(OneSignal.OSPromptActionCompletionCallback callback) {
9+
OneSignal.promptForPushNotifications(
10+
true,
11+
accepted -> {
12+
OneSignal.PromptActionResult result = accepted ?
13+
OneSignal.PromptActionResult.PERMISSION_GRANTED :
14+
OneSignal.PromptActionResult.PERMISSION_DENIED;
15+
callback.onCompleted(result);
16+
}
17+
);
18+
}
19+
20+
@Override
21+
String getPromptKey() {
22+
return PUSH_PROMPT_KEY;
23+
}
24+
25+
}

0 commit comments

Comments
 (0)