-
Notifications
You must be signed in to change notification settings - Fork 236
Expand file tree
/
Copy pathOneSignalPlugin.java
More file actions
110 lines (90 loc) · 4.15 KB
/
OneSignalPlugin.java
File metadata and controls
110 lines (90 loc) · 4.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package com.onesignal.flutter;
import android.content.Context;
import androidx.annotation.NonNull;
import com.onesignal.OneSignal;
import com.onesignal.common.OneSignalWrapper;
import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.embedding.engine.plugins.activity.ActivityAware;
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding;
import io.flutter.plugin.common.BinaryMessenger;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
import io.flutter.plugin.common.MethodChannel.Result;
/** OnesignalPlugin */
public class OneSignalPlugin extends FlutterMessengerResponder
implements FlutterPlugin, MethodCallHandler, ActivityAware {
public OneSignalPlugin() {}
private void init(Context context, BinaryMessenger messenger) {
this.context = context;
this.messenger = messenger;
OneSignalWrapper.setSdkType("flutter");
// For 5.0.0, hard code to reflect SDK version
OneSignalWrapper.setSdkVersion("050404");
channel = new MethodChannel(messenger, "OneSignal");
channel.setMethodCallHandler(this);
OneSignalDebug.registerWith(messenger);
OneSignalLocation.registerWith(messenger);
OneSignalSession.registerWith(messenger);
OneSignalInAppMessages.registerWith(messenger);
OneSignalUser.registerWith(messenger);
OneSignalPushSubscription.registerWith(messenger);
OneSignalNotifications.registerWith(messenger);
}
@Override
public void onAttachedToEngine(@NonNull FlutterPlugin.FlutterPluginBinding flutterPluginBinding) {
init(flutterPluginBinding.getApplicationContext(), flutterPluginBinding.getBinaryMessenger());
}
@Override
public void onDetachedFromEngine(@NonNull FlutterPlugin.FlutterPluginBinding binding) {
onDetachedFromEngine();
}
private void onDetachedFromEngine() {}
@Override
public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) {
this.context = binding.getActivity();
}
@Override
public void onDetachedFromActivity() {}
@Override
public void onReattachedToActivityForConfigChanges(@NonNull ActivityPluginBinding binding) {}
@Override
public void onDetachedFromActivityForConfigChanges() {}
@Override
public void onMethodCall(MethodCall call, Result result) {
if (call.method.contentEquals("OneSignal#initialize")) this.initWithContext(call, result);
else if (call.method.contentEquals("OneSignal#consentRequired")) this.setConsentRequired(call, result);
else if (call.method.contentEquals("OneSignal#consentGiven")) this.setConsentGiven(call, result);
else if (call.method.contentEquals("OneSignal#login")) this.login(call, result);
else if (call.method.contentEquals("OneSignal#loginWithJWT")) this.loginWithJWT(call, result);
else if (call.method.contentEquals("OneSignal#logout")) this.logout(call, result);
else replyNotImplemented(result);
}
private void initWithContext(MethodCall call, Result reply) {
String appId = call.argument("appId");
OneSignal.initWithContext(context, appId);
replySuccess(reply, null);
}
private void setConsentRequired(MethodCall call, Result reply) {
boolean required = call.argument("required");
OneSignal.setConsentRequired(required);
replySuccess(reply, null);
}
private void setConsentGiven(MethodCall call, Result reply) {
boolean granted = call.argument("granted");
OneSignal.setConsentGiven(granted);
replySuccess(reply, null);
}
private void login(MethodCall call, Result result) {
OneSignal.login((String) call.argument("externalId"));
replySuccess(result, null);
}
private void loginWithJWT(MethodCall call, Result result) {
OneSignal.login((String) call.argument("externalId"), (String) call.argument("jwt"));
replySuccess(result, null);
}
private void logout(MethodCall call, Result result) {
OneSignal.logout();
replySuccess(result, null);
}
}