Skip to content

Commit 3fa99af

Browse files
committed
Using functions instead of classes for click listener
1 parent e7a1f33 commit 3fa99af

File tree

2 files changed

+12
-17
lines changed

2 files changed

+12
-17
lines changed

example/lib/main.dart

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ class _MyAppState extends State<MyApp>
1515
with
1616
OneSignalPushSubscriptionObserver,
1717
OneSignalPermissionObserver,
18-
OneSignalInAppMessageClickListener,
1918
OneSignalNotificationLifecycleListener,
2019
OneSignalNotificationClickListener {
2120
String _debugLabelString = "";
@@ -56,7 +55,12 @@ class _MyAppState extends State<MyApp>
5655
OneSignal.Notifications.addPermissionObserver(this);
5756
OneSignal.Notifications.addClickListener(this);
5857
OneSignal.Notifications.addLifecycleListener(this);
59-
OneSignal.InAppMessages.addClickListener(this);
58+
OneSignal.InAppMessages.addClickListener((event) {
59+
this.setState(() {
60+
_debugLabelString =
61+
"In App Message Clicked: \n${event.result.jsonRepresentation().replaceAll("\\n", "\n")}";
62+
});
63+
});
6064
OneSignal.InAppMessages.addWillDisplayListener((event) {
6165
print("ON WILL DISPLAY IN APP MESSAGE ${event.message.messageId}");
6266
});
@@ -97,13 +101,6 @@ class _MyAppState extends State<MyApp>
97101
print(state.current.jsonRepresentation());
98102
}
99103

100-
void onClickInAppMessage(OSInAppMessageClickEvent event) {
101-
this.setState(() {
102-
_debugLabelString =
103-
"In App Message Clicked: \n${event.result.jsonRepresentation().replaceAll("\\n", "\n")}";
104-
});
105-
}
106-
107104
void onClickNotification(OSNotificationClickEvent event) {
108105
print('NOTIFICATION CLICK LISTENER CALLED WITH EVENT: $event');
109106
this.setState(() {

lib/src/inappmessages.dart

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ import 'package:flutter/services.dart';
33
import 'package:onesignal_flutter/onesignal_flutter.dart';
44
import 'package:onesignal_flutter/src/inappmessage.dart';
55

6-
class OneSignalInAppMessageClickListener {
7-
void onClickInAppMessage(OSInAppMessageClickEvent event) {}
8-
}
6+
typedef void OnClickInAppMessageListener(OSInAppMessageClickEvent event);
97

108
typedef void OnWillDisplayInAppMessageListener(
119
OSInAppMessageWillDisplayEvent event);
@@ -25,8 +23,8 @@ class OneSignalInAppMessages {
2523
this._channel.setMethodCallHandler(_handleMethod);
2624
}
2725

28-
List<OneSignalInAppMessageClickListener> _clickListeners =
29-
<OneSignalInAppMessageClickListener>[];
26+
List<OnClickInAppMessageListener> _clickListeners =
27+
<OnClickInAppMessageListener>[];
3028
List<OnWillDisplayInAppMessageListener> _willDisplayListeners =
3129
<OnWillDisplayInAppMessageListener>[];
3230
List<OnDidDisplayInAppMessageListener> _didDisplayListeners =
@@ -83,7 +81,7 @@ class OneSignalInAppMessages {
8381
Future<Null> _handleMethod(MethodCall call) async {
8482
if (call.method == 'OneSignal#onClickInAppMessage') {
8583
for (var listener in _clickListeners) {
86-
listener.onClickInAppMessage(
84+
listener(
8785
OSInAppMessageClickEvent(call.arguments.cast<String, dynamic>()));
8886
}
8987
} else if (call.method == 'OneSignal#onWillDisplayInAppMessage') {
@@ -112,11 +110,11 @@ class OneSignalInAppMessages {
112110

113111
/// The in app message clicked handler is called whenever the user clicks a
114112
/// OneSignal IAM button or image with an action event attacthed to it
115-
void addClickListener(OneSignalInAppMessageClickListener listener) {
113+
void addClickListener(OnClickInAppMessageListener listener) {
116114
_clickListeners.add(listener);
117115
}
118116

119-
void removeClickListener(OneSignalInAppMessageClickListener listener) {
117+
void removeClickListener(OnClickInAppMessageListener listener) {
120118
_clickListeners.remove(listener);
121119
}
122120

0 commit comments

Comments
 (0)