Skip to content

Commit 6f9eac6

Browse files
committed
Use functions instead of classes for notif click listeners
1 parent 43b0e83 commit 6f9eac6

File tree

2 files changed

+14
-18
lines changed

2 files changed

+14
-18
lines changed

example/lib/main.dart

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class MyApp extends StatefulWidget {
1111
_MyAppState createState() => new _MyAppState();
1212
}
1313

14-
class _MyAppState extends State<MyApp> with OneSignalNotificationClickListener {
14+
class _MyAppState extends State<MyApp> {
1515
String _debugLabelString = "";
1616
String? _emailAddress;
1717
String? _smsNumber;
@@ -57,7 +57,13 @@ class _MyAppState extends State<MyApp> with OneSignalNotificationClickListener {
5757
print("Has permission " + state.toString());
5858
});
5959

60-
OneSignal.Notifications.addClickListener(this);
60+
OneSignal.Notifications.addClickListener((event) {
61+
print('NOTIFICATION CLICK LISTENER CALLED WITH EVENT: $event');
62+
this.setState(() {
63+
_debugLabelString =
64+
"Clicked notification: \n${event.notification.jsonRepresentation().replaceAll("\\n", "\n")}";
65+
});
66+
});
6167

6268
OneSignal.Notifications.addForegroundWillDisplayListener((event) {
6369
print(
@@ -112,14 +118,6 @@ class _MyAppState extends State<MyApp> with OneSignalNotificationClickListener {
112118
OneSignal.InAppMessages.paused(true);
113119
}
114120

115-
void onClickNotification(OSNotificationClickEvent event) {
116-
print('NOTIFICATION CLICK LISTENER CALLED WITH EVENT: $event');
117-
this.setState(() {
118-
_debugLabelString =
119-
"Clicked notification: \n${event.notification.jsonRepresentation().replaceAll("\\n", "\n")}";
120-
});
121-
}
122-
123121
void _handleSendTags() {
124122
print("Sending tags");
125123
OneSignal.User.addTagWithKey("test2", "val2");

lib/src/notifications.dart

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,12 @@ typedef void OnNotificationPermissionChangeObserver(bool permission);
1010
typedef void OnNotificationWillDisplayListener(
1111
OSNotificationWillDisplayEvent event);
1212

13-
class OneSignalNotificationClickListener {
14-
void onClickNotification(OSNotificationClickEvent event) {}
15-
}
13+
typedef void OnNotificationClickListener(OSNotificationClickEvent event);
1614

1715
class OneSignalNotifications {
1816
// event listeners
19-
List<OneSignalNotificationClickListener> _clickListeners =
20-
<OneSignalNotificationClickListener>[];
17+
List<OnNotificationClickListener> _clickListeners =
18+
<OnNotificationClickListener>[];
2119
List<OnNotificationWillDisplayListener> _willDisplayListeners =
2220
<OnNotificationWillDisplayListener>[];
2321

@@ -127,7 +125,7 @@ class OneSignalNotifications {
127125
Future<Null> _handleMethod(MethodCall call) async {
128126
if (call.method == 'OneSignal#onClickNotification') {
129127
for (var listener in _clickListeners) {
130-
listener.onClickNotification(
128+
listener(
131129
OSNotificationClickEvent(call.arguments.cast<String, dynamic>()));
132130
}
133131
} else if (call.method == 'OneSignal#onWillDisplayNotification') {
@@ -175,11 +173,11 @@ class OneSignalNotifications {
175173

176174
/// The notification click listener is called whenever the user opens a
177175
/// OneSignal push notification, or taps an action button on a notification.
178-
void addClickListener(OneSignalNotificationClickListener listener) {
176+
void addClickListener(OnNotificationClickListener listener) {
179177
_clickListeners.add(listener);
180178
}
181179

182-
void removeClickListener(OneSignalNotificationClickListener listener) {
180+
void removeClickListener(OnNotificationClickListener listener) {
183181
_clickListeners.remove(listener);
184182
}
185183
}

0 commit comments

Comments
 (0)