1
1
import 'dart:async' ;
2
2
import 'package:flutter/services.dart' ;
3
+ import 'package:onesignal_flutter/onesignal_flutter.dart' ;
3
4
import 'package:onesignal_flutter/src/inappmessage.dart' ;
4
5
5
6
class OneSignalInAppMessageClickListener {
6
7
void onClickInAppMessage (OSInAppMessageClickEvent event) {}
7
8
}
8
9
9
- class OneSignalInAppMessageLifecycleListener {
10
- void onWillDisplayInAppMessage (OSInAppMessageWillDisplayEvent event) {}
11
- void onDidDisplayInAppMessage (OSInAppMessageDidDisplayEvent event) {}
12
- void onWillDismissInAppMessage (OSInAppMessageWillDismissEvent event) {}
13
- void onDidDismissInAppMessage (OSInAppMessageDidDismissEvent event) {}
14
- }
10
+ typedef void OnWillDisplayInAppMessageListener (
11
+ OSInAppMessageWillDisplayEvent event);
12
+ typedef void OnDidDisplayInAppMessageListener (
13
+ OSInAppMessageDidDisplayEvent event);
14
+ typedef void OnWillDismissInAppMessageListener (
15
+ OSInAppMessageWillDismissEvent event);
16
+ typedef void OnDidDismissInAppMessageListener (
17
+ OSInAppMessageDidDismissEvent event);
15
18
16
19
class OneSignalInAppMessages {
17
20
// private channels used to bridge to ObjC/Java
@@ -24,8 +27,14 @@ class OneSignalInAppMessages {
24
27
25
28
List <OneSignalInAppMessageClickListener > _clickListeners =
26
29
< OneSignalInAppMessageClickListener > [];
27
- List <OneSignalInAppMessageLifecycleListener > _lifecycleListeners =
28
- < OneSignalInAppMessageLifecycleListener > [];
30
+ List <OnWillDisplayInAppMessageListener > _willDisplayListeners =
31
+ < OnWillDisplayInAppMessageListener > [];
32
+ List <OnDidDisplayInAppMessageListener > _didDisplayListeners =
33
+ < OnDidDisplayInAppMessageListener > [];
34
+ List <OnWillDismissInAppMessageListener > _willDismissListeners =
35
+ < OnWillDismissInAppMessageListener > [];
36
+ List <OnDidDismissInAppMessageListener > _didDismissListeners =
37
+ < OnDidDismissInAppMessageListener > [];
29
38
30
39
/// Adds a single key, value trigger, which will trigger an in app message
31
40
/// if one exists matching the specific trigger added
@@ -78,23 +87,23 @@ class OneSignalInAppMessages {
78
87
OSInAppMessageClickEvent (call.arguments.cast <String , dynamic >()));
79
88
}
80
89
} else if (call.method == 'OneSignal#onWillDisplayInAppMessage' ) {
81
- for (var listener in _lifecycleListeners ) {
82
- listener. onWillDisplayInAppMessage (OSInAppMessageWillDisplayEvent (
90
+ for (var listener in _willDisplayListeners ) {
91
+ listener (OSInAppMessageWillDisplayEvent (
83
92
call.arguments.cast <String , dynamic >()));
84
93
}
85
94
} else if (call.method == 'OneSignal#onDidDisplayInAppMessage' ) {
86
- for (var listener in _lifecycleListeners ) {
87
- listener. onDidDisplayInAppMessage (OSInAppMessageDidDisplayEvent (
95
+ for (var listener in _didDisplayListeners ) {
96
+ listener (OSInAppMessageDidDisplayEvent (
88
97
call.arguments.cast <String , dynamic >()));
89
98
}
90
99
} else if (call.method == 'OneSignal#onWillDismissInAppMessage' ) {
91
- for (var listener in _lifecycleListeners ) {
92
- listener. onWillDismissInAppMessage (OSInAppMessageWillDismissEvent (
100
+ for (var listener in _willDismissListeners ) {
101
+ listener (OSInAppMessageWillDismissEvent (
93
102
call.arguments.cast <String , dynamic >()));
94
103
}
95
104
} else if (call.method == 'OneSignal#onDidDismissInAppMessage' ) {
96
- for (var listener in _lifecycleListeners ) {
97
- listener. onDidDismissInAppMessage (OSInAppMessageDidDismissEvent (
105
+ for (var listener in _didDismissListeners ) {
106
+ listener (OSInAppMessageDidDismissEvent (
98
107
call.arguments.cast <String , dynamic >()));
99
108
}
100
109
}
@@ -107,16 +116,39 @@ class OneSignalInAppMessages {
107
116
_clickListeners.add (listener);
108
117
}
109
118
110
- void removeClickListener (OneSignalInAppMessageLifecycleListener listener) {
119
+ void removeClickListener (OneSignalInAppMessageClickListener listener) {
111
120
_clickListeners.remove (listener);
112
121
}
113
122
114
- void addLifecycleListener (OneSignalInAppMessageLifecycleListener listener) {
115
- _lifecycleListeners.add (listener);
123
+ void addWillDisplayListener (OnWillDisplayInAppMessageListener listener) {
124
+ _willDisplayListeners.add (listener);
125
+ }
126
+
127
+ void removeWillDisplayListener (OnWillDisplayInAppMessageListener listener) {
128
+ _willDisplayListeners.remove (listener);
129
+ }
130
+
131
+ void addDidDisplayListener (OnDidDisplayInAppMessageListener listener) {
132
+ _didDisplayListeners.add (listener);
133
+ }
134
+
135
+ void removeDidDisplayListener (OnDidDisplayInAppMessageListener listener) {
136
+ _didDisplayListeners.remove (listener);
137
+ }
138
+
139
+ void addWillDismissListener (OnWillDismissInAppMessageListener listener) {
140
+ _willDismissListeners.add (listener);
141
+ }
142
+
143
+ void removeWillDismissListener (OnWillDismissInAppMessageListener listener) {
144
+ _willDismissListeners.remove (listener);
145
+ }
146
+
147
+ void addDidDismissListener (OnDidDismissInAppMessageListener listener) {
148
+ _didDismissListeners.add (listener);
116
149
}
117
150
118
- void removeLifecycleListener (
119
- OneSignalInAppMessageLifecycleListener listener) {
120
- _lifecycleListeners.remove (listener);
151
+ void removeDidDismissListener (OnDidDismissInAppMessageListener listener) {
152
+ _didDismissListeners.remove (listener);
121
153
}
122
154
}
0 commit comments