Skip to content

Commit b6285e1

Browse files
authored
Merge pull request #653 from OneSignal/user_model/Session-methods-Android
[User Model] Session method implementation + Android
2 parents 415cbb6 + 471dc7e commit b6285e1

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed

android/src/main/java/com/onesignal/flutter/OneSignalPlugin.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ private void init(Context context, BinaryMessenger messenger)
4848

4949
OneSignalDebug.registerWith(messenger);
5050
OneSignalLocation.registerWith(messenger);
51+
OneSignalSession.registerWith(messenger);
5152
// OneSignalTagsController.registerWith(messenger);
5253
// OneSignalInAppMessagingController.registerWith(messenger);
5354
// OneSignalOutcomeEventsController.registerWith(messenger);
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package com.onesignal.flutter;
2+
3+
import com.onesignal.OneSignal;
4+
5+
import java.util.HashMap;
6+
import java.util.concurrent.atomic.AtomicBoolean;
7+
8+
import io.flutter.plugin.common.BinaryMessenger;
9+
import io.flutter.plugin.common.MethodCall;
10+
import io.flutter.plugin.common.MethodChannel;
11+
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
12+
import io.flutter.plugin.common.MethodChannel.Result;
13+
import io.flutter.plugin.common.PluginRegistry;
14+
import io.flutter.plugin.common.PluginRegistry.Registrar;
15+
16+
public class OneSignalSession extends FlutterRegistrarResponder implements MethodCallHandler {
17+
private MethodChannel channel;
18+
19+
static void registerWith(BinaryMessenger messenger) {
20+
OneSignalSession controller = new OneSignalSession();
21+
controller.messenger = messenger;
22+
controller.channel = new MethodChannel(messenger, "OneSignal#session");
23+
controller.channel.setMethodCallHandler(controller);
24+
}
25+
26+
@Override
27+
public void onMethodCall(MethodCall call, Result result) {
28+
if (call.method.contentEquals("OneSignal#addOutcome"))
29+
this.addOutcome(call, result);
30+
else if (call.method.contentEquals("OneSignal#addUniqueOutcome"))
31+
this.addUniqueOutcome(call, result);
32+
else if (call.method.contentEquals("OneSignal#addOutcomeWithValue"))
33+
this.addOutcomeWithValue(call, result);
34+
else
35+
replyNotImplemented(result);
36+
}
37+
38+
private void addOutcome(MethodCall call, Result result) {
39+
String name = (String) call.arguments;
40+
41+
if (name == null || name.isEmpty()) {
42+
replyError(result, "OneSignal", "addOutcome() name must not be null or empty", null);
43+
return;
44+
}
45+
46+
OneSignal.getSession().addOutcome(name);
47+
replySuccess(result, null);
48+
}
49+
50+
private void addUniqueOutcome(MethodCall call, Result result) {
51+
String name = (String) call.arguments;
52+
53+
if (name == null || name.isEmpty()) {
54+
replyError(result, "OneSignal", "sendUniqueOutcome() name must not be null or empty", null);
55+
return;
56+
}
57+
58+
OneSignal.getSession().addUniqueOutcome(name);
59+
replySuccess(result, null);
60+
}
61+
62+
private void addOutcomeWithValue(MethodCall call, Result result) {
63+
String name = call.argument("outcome_name");
64+
Double value = call.argument("outcome_value");
65+
66+
if (name == null || name.isEmpty()) {
67+
replyError(result, "OneSignal", "sendOutcomeWithValue() name must not be null or empty", null);
68+
return;
69+
}
70+
71+
if (value == null) {
72+
replyError(result, "OneSignal", "sendOutcomeWithValue() value must not be null", null);
73+
return;
74+
}
75+
76+
OneSignal.getSession().addOutcomeWithValue(name, value.floatValue());
77+
replySuccess(result, null);
78+
}
79+
80+
}

0 commit comments

Comments
 (0)