Skip to content

Commit 4943698

Browse files
fadi-georgegithub-actions[bot]
andauthored
feat: add custom events support (#1114)
Co-authored-by: github-actions[bot] <noreply@onesignal.com>
1 parent ca631f2 commit 4943698

13 files changed

Lines changed: 163 additions & 40 deletions

File tree

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,5 @@ android {
3838
}
3939

4040
dependencies {
41-
implementation 'com.onesignal:OneSignal:5.4.2'
41+
implementation 'com.onesignal:OneSignal:5.6.1'
4242
}
-9 Bytes
Binary file not shown.

android/gradle/wrapper/gradle-wrapper.properties

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
#Thu Oct 17 14:56:12 PDT 2019
21
distributionBase=GRADLE_USER_HOME
32
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
4+
networkTimeout=10000
5+
validateDistributionUrl=true
46
zipStoreBase=GRADLE_USER_HOME
57
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip

android/gradlew.bat

Lines changed: 10 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public void onMethodCall(MethodCall call, Result result) {
4747
else if (call.method.contentEquals("OneSignal#removeTags")) this.removeTags(call, result);
4848
else if (call.method.contentEquals("OneSignal#getTags")) this.getTags(call, result);
4949
else if (call.method.contentEquals("OneSignal#lifecycleInit")) this.lifecycleInit(result);
50+
else if (call.method.contentEquals("OneSignal#trackEvent")) this.trackEvent(call, result);
5051
else replyNotImplemented(result);
5152
}
5253

@@ -165,6 +166,13 @@ private void getTags(MethodCall call, Result result) {
165166
replySuccess(result, OneSignal.getUser().getTags());
166167
}
167168

169+
private void trackEvent(MethodCall call, Result result) {
170+
String name = call.argument("name");
171+
Map<String, Object> properties = call.argument("properties");
172+
OneSignal.getUser().trackEvent(name, properties);
173+
replySuccess(result, null);
174+
}
175+
168176
@Override
169177
public void onUserStateChange(UserChangedState userChangedState) {
170178
try {

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ spotless {
1919
java {
2020
target 'android/**/*.java', 'example/android/app/**/*.java'
2121
targetExclude '**/build/**', '**/GeneratedPluginRegistrant.java'
22-
palantirJavaFormat('2.28.0')
22+
palantirJavaFormat('2.85.0')
2323
removeUnusedImports()
2424
trimTrailingWhitespace()
2525
endWithNewline()

example/ios/Podfile.lock

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,49 +2,49 @@ PODS:
22
- Flutter (1.0.0)
33
- onesignal_flutter (5.3.4):
44
- Flutter
5-
- OneSignalXCFramework (= 5.2.16)
6-
- OneSignalXCFramework (5.2.16):
7-
- OneSignalXCFramework/OneSignalComplete (= 5.2.16)
8-
- OneSignalXCFramework/OneSignal (5.2.16):
5+
- OneSignalXCFramework (= 5.4.0)
6+
- OneSignalXCFramework (5.4.0):
7+
- OneSignalXCFramework/OneSignalComplete (= 5.4.0)
8+
- OneSignalXCFramework/OneSignal (5.4.0):
99
- OneSignalXCFramework/OneSignalCore
1010
- OneSignalXCFramework/OneSignalExtension
1111
- OneSignalXCFramework/OneSignalLiveActivities
1212
- OneSignalXCFramework/OneSignalNotifications
1313
- OneSignalXCFramework/OneSignalOSCore
1414
- OneSignalXCFramework/OneSignalOutcomes
1515
- OneSignalXCFramework/OneSignalUser
16-
- OneSignalXCFramework/OneSignalComplete (5.2.16):
16+
- OneSignalXCFramework/OneSignalComplete (5.4.0):
1717
- OneSignalXCFramework/OneSignal
1818
- OneSignalXCFramework/OneSignalInAppMessages
1919
- OneSignalXCFramework/OneSignalLocation
20-
- OneSignalXCFramework/OneSignalCore (5.2.16)
21-
- OneSignalXCFramework/OneSignalExtension (5.2.16):
20+
- OneSignalXCFramework/OneSignalCore (5.4.0)
21+
- OneSignalXCFramework/OneSignalExtension (5.4.0):
2222
- OneSignalXCFramework/OneSignalCore
2323
- OneSignalXCFramework/OneSignalOutcomes
24-
- OneSignalXCFramework/OneSignalInAppMessages (5.2.16):
24+
- OneSignalXCFramework/OneSignalInAppMessages (5.4.0):
2525
- OneSignalXCFramework/OneSignalCore
2626
- OneSignalXCFramework/OneSignalNotifications
2727
- OneSignalXCFramework/OneSignalOSCore
2828
- OneSignalXCFramework/OneSignalOutcomes
2929
- OneSignalXCFramework/OneSignalUser
30-
- OneSignalXCFramework/OneSignalLiveActivities (5.2.16):
30+
- OneSignalXCFramework/OneSignalLiveActivities (5.4.0):
3131
- OneSignalXCFramework/OneSignalCore
3232
- OneSignalXCFramework/OneSignalOSCore
3333
- OneSignalXCFramework/OneSignalUser
34-
- OneSignalXCFramework/OneSignalLocation (5.2.16):
34+
- OneSignalXCFramework/OneSignalLocation (5.4.0):
3535
- OneSignalXCFramework/OneSignalCore
3636
- OneSignalXCFramework/OneSignalNotifications
3737
- OneSignalXCFramework/OneSignalOSCore
3838
- OneSignalXCFramework/OneSignalUser
39-
- OneSignalXCFramework/OneSignalNotifications (5.2.16):
39+
- OneSignalXCFramework/OneSignalNotifications (5.4.0):
4040
- OneSignalXCFramework/OneSignalCore
4141
- OneSignalXCFramework/OneSignalExtension
4242
- OneSignalXCFramework/OneSignalOutcomes
43-
- OneSignalXCFramework/OneSignalOSCore (5.2.16):
43+
- OneSignalXCFramework/OneSignalOSCore (5.4.0):
4444
- OneSignalXCFramework/OneSignalCore
45-
- OneSignalXCFramework/OneSignalOutcomes (5.2.16):
45+
- OneSignalXCFramework/OneSignalOutcomes (5.4.0):
4646
- OneSignalXCFramework/OneSignalCore
47-
- OneSignalXCFramework/OneSignalUser (5.2.16):
47+
- OneSignalXCFramework/OneSignalUser (5.4.0):
4848
- OneSignalXCFramework/OneSignalCore
4949
- OneSignalXCFramework/OneSignalNotifications
5050
- OneSignalXCFramework/OneSignalOSCore
@@ -67,8 +67,8 @@ EXTERNAL SOURCES:
6767

6868
SPEC CHECKSUMS:
6969
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
70-
onesignal_flutter: 1c287b13a09745d60ce7c82a9e80b1dce8e56e64
71-
OneSignalXCFramework: 8ed6648481bee0bd973a138fecd80331b798524f
70+
onesignal_flutter: d9678a4f6766dbb8482d651a61e9daf292fa43e7
71+
OneSignalXCFramework: 95b6391df5a91b448003149c1a633ade42ceca1e
7272

7373
PODFILE CHECKSUM: 008ee3527530ade7ae7311fc02a615df31949c2e
7474

example/lib/main.dart

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'dart:async';
2+
import 'dart:io';
23

34
import 'package:flutter/material.dart';
45
import 'package:onesignal_flutter/onesignal_flutter.dart';
@@ -144,6 +145,43 @@ class _MyAppState extends State<MyApp> {
144145
print(tags);
145146
}
146147

148+
void _handleTrackEvent() {
149+
print("Tracking events");
150+
151+
// Detect platform
152+
String platform = Platform.isAndroid
153+
? 'android'
154+
: Platform.isIOS
155+
? 'ios'
156+
: 'unknown';
157+
158+
// Track event without properties
159+
OneSignal.User.trackEvent("Flutter-$platform-noprops");
160+
161+
// Track event with properties
162+
OneSignal.User.trackEvent("Flutter-$platform", {
163+
"someNum": 123,
164+
"someFloat": 3.14159,
165+
"someString": "abc",
166+
"someBool": true,
167+
"someObject": {
168+
"abc": "123",
169+
"nested": {
170+
"def": '456',
171+
},
172+
"ghi": null,
173+
},
174+
"someArray": [1, 2],
175+
"someMixedArray": [
176+
1,
177+
"2",
178+
{"abc": "123"},
179+
null,
180+
],
181+
"someNull": null,
182+
});
183+
}
184+
147185
void _handlePromptForPushPermission() {
148186
print("Prompting for Permission");
149187
OneSignal.Notifications.requestPermission(true);
@@ -326,6 +364,10 @@ class _MyAppState extends State<MyApp> {
326364
new OneSignalButton(
327365
"Get Tags", _handleGetTags, !_enableConsentButton)
328366
]),
367+
new TableRow(children: [
368+
new OneSignalButton(
369+
"Track Event", _handleTrackEvent, !_enableConsentButton)
370+
]),
329371
new TableRow(children: [
330372
new OneSignalButton("Prompt for Push Permission",
331373
_handlePromptForPushPermission, !_enableConsentButton)

ios/Classes/OSFlutterUser.m

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ - (void)handleMethodCall:(FlutterMethodCall *)call
7676
[self addSms:call withResult:result];
7777
else if ([@"OneSignal#removeSms" isEqualToString:call.method])
7878
[self removeSms:call withResult:result];
79+
else if ([@"OneSignal#trackEvent" isEqualToString:call.method])
80+
[self trackEvent:call withResult:result];
7981
else if ([@"OneSignal#lifecycleInit" isEqualToString:call.method])
8082
[self lifecycleInit:call withResult:result];
8183
else
@@ -145,6 +147,18 @@ - (void)removeSms:(FlutterMethodCall *)call withResult:(FlutterResult)result {
145147
result(nil);
146148
}
147149

150+
- (void)trackEvent:(FlutterMethodCall *)call withResult:(FlutterResult)result {
151+
NSString *name = call.arguments[@"name"];
152+
NSDictionary *properties = call.arguments[@"properties"];
153+
154+
if (properties == (id)[NSNull null]) {
155+
properties = nil;
156+
}
157+
158+
[OneSignal.User trackEventWithName:name properties:properties];
159+
result(nil);
160+
}
161+
148162
- (void)lifecycleInit:(FlutterMethodCall *)call
149163
withResult:(FlutterResult)result {
150164
[OneSignal.User removeObserver:self];

ios/onesignal_flutter.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Pod::Spec.new do |s|
1313
s.source_files = 'Classes/**/*'
1414
s.public_header_files = 'Classes/**/*.h'
1515
s.dependency 'Flutter'
16-
s.dependency 'OneSignalXCFramework', '5.2.16'
16+
s.dependency 'OneSignalXCFramework', '5.4.0'
1717
s.ios.deployment_target = '11.0'
1818
s.static_framework = true
1919
end

0 commit comments

Comments
 (0)