com.onesignal.unity.ios 5.0.5 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  <dependencies>
2
2
  <iosPods>
3
- <iosPod name="OneSignalXCFramework" version="5.0.2" addToAllTargets="true" />
3
+ <iosPod name="OneSignalXCFramework" version="5.1.0" addToAllTargets="true" />
4
4
  </iosPods>
5
5
  </dependencies>
@@ -48,12 +48,12 @@ using OneSignalSDK.iOS.LiveActivities;
48
48
 
49
49
  namespace OneSignalSDK.iOS {
50
50
  public sealed partial class OneSignaliOS : OneSignalPlatform {
51
- [DllImport("__Internal")] private static extern void _setConsentGiven(bool consent);
52
- [DllImport("__Internal")] private static extern void _setConsentRequired(bool required);
53
- [DllImport("__Internal")] private static extern void _initialize(string appId);
54
- [DllImport("__Internal")] private static extern void _login(string externalId);
55
- [DllImport("__Internal")] private static extern void _loginWithJwtBearerToken(string externalId, string jwtBearerToken);
56
- [DllImport("__Internal")] private static extern void _logout();
51
+ [DllImport("__Internal")] private static extern void _oneSignalSetConsentGiven(bool consent);
52
+ [DllImport("__Internal")] private static extern void _oneSignalSetConsentRequired(bool required);
53
+ [DllImport("__Internal")] private static extern void _oneSignalInitialize(string appId);
54
+ [DllImport("__Internal")] private static extern void _oneSignalLogin(string externalId);
55
+ [DllImport("__Internal")] private static extern void _oneSignalLoginWithJwtBearerToken(string externalId, string jwtBearerToken);
56
+ [DllImport("__Internal")] private static extern void _oneSignalLogout();
57
57
 
58
58
  private iOSUserManager _user;
59
59
  private iOSSessionManager _session;
@@ -105,15 +105,15 @@ namespace OneSignalSDK.iOS {
105
105
  }
106
106
 
107
107
  public override bool ConsentGiven {
108
- set => _setConsentGiven(value);
108
+ set => _oneSignalSetConsentGiven(value);
109
109
  }
110
110
 
111
111
  public override bool ConsentRequired {
112
- set => _setConsentRequired(value);
112
+ set => _oneSignalSetConsentRequired(value);
113
113
  }
114
114
 
115
115
  public override void Initialize(string appId) {
116
- _initialize(appId);
116
+ _oneSignalInitialize(appId);
117
117
 
118
118
  if (_inAppMessages == null) {
119
119
  _inAppMessages = new iOSInAppMessagesManager();
@@ -147,14 +147,14 @@ namespace OneSignalSDK.iOS {
147
147
 
148
148
  public override void Login(string externalId, string jwtBearerToken = null) {
149
149
  if (jwtBearerToken == null) {
150
- _login(externalId);
150
+ _oneSignalLogin(externalId);
151
151
  } else {
152
- _loginWithJwtBearerToken(externalId, jwtBearerToken);
152
+ _oneSignalLoginWithJwtBearerToken(externalId, jwtBearerToken);
153
153
  }
154
154
  }
155
155
 
156
156
  public override void Logout() {
157
- _logout();
157
+ _oneSignalLogout();
158
158
  }
159
159
  }
160
160
  }
@@ -29,8 +29,8 @@
29
29
 
30
30
  @interface OneSignalBridgeUtil : NSObject
31
31
 
32
- const char* jsonStringFromDictionary(NSDictionary *dictionary);
33
- NSDictionary* dictionaryFromJsonString(const char* jsonString);
34
- NSArray* arrayFromJsonString(const char* jsonString);
32
+ const char* oneSignalJsonStringFromDictionary(NSDictionary *dictionary);
33
+ NSDictionary* oneSignalDictionaryFromJsonString(const char* jsonString);
34
+ NSArray* oneSignalArrayFromJsonString(const char* jsonString);
35
35
 
36
36
  @end
@@ -29,7 +29,7 @@
29
29
 
30
30
  @implementation OneSignalBridgeUtil
31
31
 
32
- const char* jsonStringFromDictionary(NSDictionary *dictionary) {
32
+ const char* oneSignalJsonStringFromDictionary(NSDictionary *dictionary) {
33
33
  NSError *error;
34
34
  NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:0 error:&error];
35
35
  NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
@@ -37,7 +37,7 @@ const char* jsonStringFromDictionary(NSDictionary *dictionary) {
37
37
  }
38
38
 
39
39
  template <typename TObj>
40
- TObj objFromJsonString(const char* jsonString) {
40
+ TObj oneSignalObjFromJsonString(const char* jsonString) {
41
41
  NSData* jsonData = [[NSString stringWithUTF8String:jsonString] dataUsingEncoding:NSUTF8StringEncoding];
42
42
  NSError* error = nil;
43
43
  TObj arr = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
@@ -48,12 +48,12 @@ TObj objFromJsonString(const char* jsonString) {
48
48
  return arr;
49
49
  }
50
50
 
51
- NSDictionary* dictionaryFromJsonString(const char* jsonString) {
52
- return objFromJsonString<NSDictionary*>(jsonString);
51
+ NSDictionary* oneSignalDictionaryFromJsonString(const char* jsonString) {
52
+ return oneSignalObjFromJsonString<NSDictionary*>(jsonString);
53
53
  }
54
54
 
55
- NSArray* arrayFromJsonString(const char* jsonString) {
56
- return objFromJsonString<NSArray*>(jsonString);
55
+ NSArray* oneSignalArrayFromJsonString(const char* jsonString) {
56
+ return oneSignalObjFromJsonString<NSArray*>(jsonString);
57
57
  }
58
58
 
59
59
  @end
@@ -41,27 +41,27 @@
41
41
  */
42
42
 
43
43
  extern "C" {
44
- void _initialize(const char* appId) {
44
+ void _oneSignalInitialize(const char* appId) {
45
45
  [OneSignal initialize:TO_NSSTRING(appId) withLaunchOptions:nil];
46
46
  }
47
47
 
48
- void _login(const char* externalId) {
48
+ void _oneSignalLogin(const char* externalId) {
49
49
  [OneSignal login:TO_NSSTRING(externalId)];
50
50
  }
51
51
 
52
- void _loginWithJwtBearerToken(const char* externalId, const char* token) {
52
+ void _oneSignalLoginWithJwtBearerToken(const char* externalId, const char* token) {
53
53
  [OneSignal login:TO_NSSTRING(externalId) withToken:TO_NSSTRING(token)];
54
54
  }
55
55
 
56
- void _logout() {
56
+ void _oneSignalLogout() {
57
57
  [OneSignal logout];
58
58
  }
59
59
 
60
- void _setConsentGiven(bool consent) {
60
+ void _oneSignalSetConsentGiven(bool consent) {
61
61
  [OneSignal setConsentGiven:consent];
62
62
  }
63
63
 
64
- void _setConsentRequired(bool required) {
64
+ void _oneSignalSetConsentRequired(bool required) {
65
65
  [OneSignal setConsentRequired:required];
66
66
  }
67
67
  }
@@ -30,11 +30,11 @@
30
30
  #import <OneSignalFramework/OneSignalFramework.h>
31
31
 
32
32
  extern "C" {
33
- void _debugSetLogLevel(int logLevel) {
33
+ void _oneSignalDebugSetLogLevel(int logLevel) {
34
34
  [OneSignal.Debug setLogLevel:(ONE_S_LOG_LEVEL) logLevel];
35
35
  }
36
36
 
37
- void _debugSetAlertLevel(int alertLevel) {
37
+ void _oneSignalDebugSetAlertLevel(int alertLevel) {
38
38
  [OneSignal.Debug setAlertLevel:(ONE_S_LOG_LEVEL) alertLevel];
39
39
  }
40
40
  }
@@ -97,8 +97,8 @@ typedef void (*ClickListenerDelegate)(const char* message, const char* result, i
97
97
 
98
98
  - (void)onClickInAppMessage:(OSInAppMessageClickEvent * _Nonnull)event {
99
99
  if (_clickDelegate != nil) {
100
- auto message = jsonStringFromDictionary([[event message] jsonRepresentation]);
101
- auto result = jsonStringFromDictionary([[event result] jsonRepresentation]);
100
+ auto message = oneSignalJsonStringFromDictionary([[event message] jsonRepresentation]);
101
+ auto result = oneSignalJsonStringFromDictionary([[event result] jsonRepresentation]);
102
102
  _clickDelegate(message, result, event.result.urlTarget);
103
103
  }
104
104
  }
@@ -110,55 +110,55 @@ typedef void (*ClickListenerDelegate)(const char* message, const char* result, i
110
110
  */
111
111
 
112
112
  extern "C" {
113
- void _inAppMessagesSetWillDisplayCallback(StringListenerDelegate callback) {
113
+ void _oneSignalInAppMessagesSetWillDisplayCallback(StringListenerDelegate callback) {
114
114
  [[OneSignalInAppMessagesObserver sharedInAppMessagesObserver] setWillDisplayDelegate:callback];
115
115
  }
116
116
 
117
- void _inAppMessagesSetDidDisplayCallback(StringListenerDelegate callback) {
117
+ void _oneSignalInAppMessagesSetDidDisplayCallback(StringListenerDelegate callback) {
118
118
  [[OneSignalInAppMessagesObserver sharedInAppMessagesObserver] setDidDisplayDelegate:callback];
119
119
  }
120
120
 
121
- void _inAppMessagesSetWillDismissCallback(StringListenerDelegate callback) {
121
+ void _oneSignalInAppMessagesSetWillDismissCallback(StringListenerDelegate callback) {
122
122
  [[OneSignalInAppMessagesObserver sharedInAppMessagesObserver] setWillDismissDelegate:callback];
123
123
  }
124
124
 
125
- void _inAppMessagesSetDidDismissCallback(StringListenerDelegate callback) {
125
+ void _oneSignalInAppMessagesSetDidDismissCallback(StringListenerDelegate callback) {
126
126
  [[OneSignalInAppMessagesObserver sharedInAppMessagesObserver] setDidDismissDelegate:callback];
127
127
  }
128
128
 
129
- void _inAppMessagesSetClickCallback(ClickListenerDelegate callback) {
129
+ void _oneSignalInAppMessagesSetClickCallback(ClickListenerDelegate callback) {
130
130
  [[OneSignalInAppMessagesObserver sharedInAppMessagesObserver] setClickDelegate:callback];
131
131
  }
132
132
 
133
- void _inAppMessagesSetPaused(bool paused) {
133
+ void _oneSignalInAppMessagesSetPaused(bool paused) {
134
134
  [OneSignal.InAppMessages paused:paused];
135
135
  }
136
136
 
137
- bool _inAppMessagesGetPaused() {
137
+ bool _oneSignalInAppMessagesGetPaused() {
138
138
  return [OneSignal.InAppMessages paused];
139
139
  }
140
140
 
141
- void _inAppMessagesAddTrigger(const char* key, const char* value) {
141
+ void _oneSignalInAppMessagesAddTrigger(const char* key, const char* value) {
142
142
  [OneSignal.InAppMessages addTrigger:TO_NSSTRING(key) withValue:TO_NSSTRING(value)];
143
143
  }
144
144
 
145
- void _inAppMessagesAddTriggers(const char* triggersJson) {
146
- NSDictionary *triggers = dictionaryFromJsonString(triggersJson);
145
+ void _oneSignalInAppMessagesAddTriggers(const char* triggersJson) {
146
+ NSDictionary *triggers = oneSignalDictionaryFromJsonString(triggersJson);
147
147
 
148
148
  [OneSignal.InAppMessages addTriggers:triggers];
149
149
  }
150
150
 
151
- void _inAppMessagesRemoveTrigger(const char* key) {
151
+ void _oneSignalInAppMessagesRemoveTrigger(const char* key) {
152
152
  [OneSignal.InAppMessages removeTrigger:TO_NSSTRING(key)];
153
153
  }
154
154
 
155
- void _inAppMessagesRemoveTriggers(const char* triggersJson) {
156
- NSArray *triggers = arrayFromJsonString(triggersJson);
155
+ void _oneSignalInAppMessagesRemoveTriggers(const char* triggersJson) {
156
+ NSArray *triggers = oneSignalArrayFromJsonString(triggersJson);
157
157
 
158
158
  [OneSignal.InAppMessages removeTriggers:triggers];
159
159
  }
160
160
 
161
- void _inAppMessagesClearTriggers() {
161
+ void _oneSignalInAppMessagesClearTriggers() {
162
162
  [OneSignal.InAppMessages clearTriggers];
163
163
  }
164
164
  }
@@ -43,14 +43,14 @@ typedef void (*BooleanResponseDelegate)(int hashCode, bool response);
43
43
  */
44
44
 
45
45
  extern "C" {
46
- void _enterLiveActivity(const char* activityId, const char* token, int hashCode, BooleanResponseDelegate callback) {
46
+ void _oneSignalEnterLiveActivity(const char* activityId, const char* token, int hashCode, BooleanResponseDelegate callback) {
47
47
  [OneSignal.LiveActivities enter:TO_NSSTRING(activityId)
48
48
  withToken:TO_NSSTRING(token)
49
49
  withSuccess:^(NSDictionary *result) { CALLBACK(YES); }
50
50
  withFailure:^(NSError *error) { CALLBACK(NO); }];
51
51
  }
52
52
 
53
- void _exitLiveActivity(const char* activityId, int hashCode, BooleanResponseDelegate callback) {
53
+ void _oneSignalExitLiveActivity(const char* activityId, int hashCode, BooleanResponseDelegate callback) {
54
54
  [OneSignal.LiveActivities exit:TO_NSSTRING(activityId)
55
55
  withSuccess:^(NSDictionary *result) { CALLBACK(YES); }
56
56
  withFailure:^(NSError *error) { CALLBACK(NO); }];
@@ -30,15 +30,15 @@
30
30
  #import <OneSignalFramework/OneSignalFramework.h>
31
31
 
32
32
  extern "C" {
33
- bool _locationGetIsShared() {
33
+ bool _oneSignalLocationGetIsShared() {
34
34
  return [OneSignal.Location isShared];
35
35
  }
36
36
 
37
- void _locationSetIsShared(bool shared) {
37
+ void _oneSignalLocationSetIsShared(bool shared) {
38
38
  [OneSignal.Location setShared:shared];
39
39
  }
40
40
 
41
- void _locationRequestPermission() {
41
+ void _oneSignalLocationRequestPermission() {
42
42
  [OneSignal.Location requestPermission];
43
43
  }
44
44
  }
@@ -118,47 +118,47 @@ typedef void (*ClickListenerDelegate)(const char* notification, const char* resu
118
118
  */
119
119
 
120
120
  extern "C" {
121
- bool _notificationsGetPermission() {
121
+ bool _oneSignalNotificationsGetPermission() {
122
122
  return [OneSignal.Notifications permission];
123
123
  }
124
124
 
125
- bool _notificationsGetCanRequestPermission() {
125
+ bool _oneSignalNotificationsGetCanRequestPermission() {
126
126
  return [OneSignal.Notifications canRequestPermission];
127
127
  }
128
128
 
129
- int _notificationsGetPermissionNative() {
129
+ int _oneSignalNotificationsGetPermissionNative() {
130
130
  return [OneSignal.Notifications permissionNative];
131
131
  }
132
132
 
133
- void _notificationsClearAll() {
133
+ void _oneSignalNotificationsClearAll() {
134
134
  [OneSignal.Notifications clearAll];
135
135
  }
136
136
 
137
- void _notificationsRequestPermission(bool fallbackToSettings, int hashCode, BooleanResponseDelegate callback) {
137
+ void _oneSignalNotificationsRequestPermission(bool fallbackToSettings, int hashCode, BooleanResponseDelegate callback) {
138
138
  [OneSignal.Notifications requestPermission:^(BOOL accepted) {
139
139
  CALLBACK(accepted);
140
140
  } fallbackToSettings:fallbackToSettings];
141
141
  }
142
142
 
143
- void _notificationsAddPermissionObserver(PermissionListenerDelegate callback) {
143
+ void _oneSignalNotificationsAddPermissionObserver(PermissionListenerDelegate callback) {
144
144
  [[OneSignalNotificationsObserver sharedNotificationsObserver] setPermissionDelegate:callback];
145
145
  }
146
146
 
147
- void _notificationsSetForegroundWillDisplayCallback(WillDisplayListenerDelegate callback) {
147
+ void _oneSignalNotificationsSetForegroundWillDisplayCallback(WillDisplayListenerDelegate callback) {
148
148
  [[OneSignalNotificationsObserver sharedNotificationsObserver] setWillDisplayDelegate:callback];
149
149
  }
150
150
 
151
- void _notificationsWillDisplayEventPreventDefault(const char* notifcationId) {
151
+ void _oneSignalNotificationsWillDisplayEventPreventDefault(const char* notifcationId) {
152
152
  NSString *key = [NSString stringWithUTF8String:notifcationId];
153
153
  [[OneSignalNotificationsObserver sharedNotificationsObserver] notificationsWillDisplayEventPreventDefault:key];
154
154
  }
155
155
 
156
- void _notificationsDisplay(const char* notifcationId) {
156
+ void _oneSignalNotificationsDisplay(const char* notifcationId) {
157
157
  NSString *key = [NSString stringWithUTF8String:notifcationId];
158
158
  [[OneSignalNotificationsObserver sharedNotificationsObserver] notificationsDisplay:key];
159
159
  }
160
160
 
161
- void _notificationsSetClickCallback(ClickListenerDelegate callback) {
161
+ void _oneSignalNotificationsSetClickCallback(ClickListenerDelegate callback) {
162
162
  [[OneSignalNotificationsObserver sharedNotificationsObserver] setClickDelegate:callback];
163
163
 
164
164
  [OneSignal.Notifications addClickListener:[OneSignalNotificationsObserver sharedNotificationsObserver]];
@@ -40,15 +40,15 @@
40
40
  */
41
41
 
42
42
  extern "C" {
43
- void _sessionAddOutcome(const char* name) {
43
+ void _oneSignalSessionAddOutcome(const char* name) {
44
44
  [OneSignal.Session addOutcome:TO_NSSTRING(name)];
45
45
  }
46
46
 
47
- void _sessionAddUniqueOutcome(const char* name) {
47
+ void _oneSignalSessionAddUniqueOutcome(const char* name) {
48
48
  [OneSignal.Session addUniqueOutcome:TO_NSSTRING(name)];
49
49
  }
50
50
 
51
- void _sessionAddOutcomeWithValue(const char* name, float value) {
51
+ void _oneSignalSessionAddOutcomeWithValue(const char* name, float value) {
52
52
  [OneSignal.Session addOutcomeWithValue:TO_NSSTRING(name)
53
53
  value:@(value)];
54
54
  }
@@ -31,6 +31,7 @@
31
31
  #import "OneSignalBridgeUtil.h"
32
32
 
33
33
  typedef void (*StateListenerDelegate)(const char* current, const char* previous);
34
+ typedef void (*UserStateListenerDelegate)(const char* current);
34
35
 
35
36
  /*
36
37
  * Helpers
@@ -70,41 +71,80 @@ typedef void (*StateListenerDelegate)(const char* current, const char* previous)
70
71
 
71
72
  - (void)onPushSubscriptionDidChangeWithState:(OSPushSubscriptionChangedState*)state {
72
73
  if (_pushSubscriptionDelegate != nil) {
73
- auto curr = jsonStringFromDictionary([[state current] jsonRepresentation]);
74
- auto prev = jsonStringFromDictionary([[state previous] jsonRepresentation]);
74
+ auto curr = oneSignalJsonStringFromDictionary([[state current] jsonRepresentation]);
75
+ auto prev = oneSignalJsonStringFromDictionary([[state previous] jsonRepresentation]);
75
76
  _pushSubscriptionDelegate(curr, prev);
76
77
  }
77
78
  }
78
79
 
79
80
  @end
80
81
 
82
+ /*
83
+ * User state observer singleton for global callbacks
84
+ */
85
+
86
+ @interface OneSignalUserStateObserver : NSObject <OSUserStateObserver>
87
+
88
+ + (instancetype) sharedUserObserver;
89
+ @property UserStateListenerDelegate userStateDelegate;
90
+
91
+ @end
92
+
93
+ @implementation OneSignalUserStateObserver
94
+
95
+ + (instancetype) sharedUserObserver {
96
+ static dispatch_once_t pred = 0;
97
+ static id _sharedObject = nil;
98
+ dispatch_once(&pred, ^{
99
+ _sharedObject = [[self alloc] init];
100
+ });
101
+ return _sharedObject;
102
+ }
103
+
104
+ - (instancetype) init {
105
+ if (self = [super init]) {
106
+ [OneSignal.User addObserver:self];
107
+ }
108
+
109
+ return self;
110
+ }
111
+
112
+ - (void)onUserStateDidChangeWithState:(OSUserChangedState*)state {
113
+ if (_userStateDelegate != nil) {
114
+ auto curr = oneSignalJsonStringFromDictionary([[state current] jsonRepresentation]);
115
+ _userStateDelegate(curr);
116
+ }
117
+ }
118
+
119
+ @end
120
+
81
121
  /*
82
122
  * Bridge methods
83
123
  * We use strdup because Unity attempts to free the memory after we return the value
84
124
  */
85
125
 
86
126
  extern "C" {
87
- void _userSetLanguage(const char* languageCode) {
127
+ void _oneSignalUserSetLanguage(const char* languageCode) {
88
128
  [OneSignal.User setLanguage:TO_NSSTRING(languageCode)];
89
129
  }
90
130
 
91
- void _userAddAlias(const char* aliasLabel, const char* aliasId) {
131
+ void _oneSignalUserAddAlias(const char* aliasLabel, const char* aliasId) {
92
132
  [OneSignal.User addAliasWithLabel:TO_NSSTRING(aliasLabel)
93
133
  id:TO_NSSTRING(aliasId)];
94
134
  }
95
135
 
96
- void _userAddAliases(const char* aliasesJson) {
97
- NSDictionary *aliases = dictionaryFromJsonString(aliasesJson);
136
+ void _oneSignalUserAddAliases(const char* aliasesJson) {
137
+ NSDictionary *aliases = oneSignalDictionaryFromJsonString(aliasesJson);
98
138
 
99
139
  [OneSignal.User addAliases:aliases];
100
140
  }
101
141
 
102
- void _userRemoveAlias(const char* aliasLabel) {
142
+ void _oneSignalUserRemoveAlias(const char* aliasLabel) {
103
143
  [OneSignal.User removeAlias:TO_NSSTRING(aliasLabel)];
104
144
  }
105
145
 
106
- void _userRemoveAliases(const char* aliasesJson) {
107
- NSArray *aliases = arrayFromJsonString(aliasesJson);
146
+ void _oneSignalUserRemoveAliases(const char* aliasesJson) {
147
+ NSArray *aliases = oneSignalArrayFromJsonString(aliasesJson);
108
148
 
109
149
  if (aliases == nil) {
110
150
  NSLog(@"[Onesignal] Could not parse aliases to delete");
@@ -114,39 +154,43 @@ extern "C" {
114
154
  [OneSignal.User removeAliases:aliases];
115
155
  }
116
156
 
117
- void _userAddEmail(const char* email) {
157
+ void _oneSignalUserAddEmail(const char* email) {
118
158
  [OneSignal.User addEmail:TO_NSSTRING(email)];
119
159
  }
120
160
 
121
- void _userRemoveEmail(const char* email) {
161
+ void _oneSignalUserRemoveEmail(const char* email) {
122
162
  [OneSignal.User removeEmail:TO_NSSTRING(email)];
123
163
  }
124
164
 
125
- void _userAddSms(const char* smsNumber) {
165
+ void _oneSignalUserAddSms(const char* smsNumber) {
126
166
  [OneSignal.User addSms:TO_NSSTRING(smsNumber)];
127
167
  }
128
168
 
129
- void _userRemoveSms(const char* smsNumber) {
169
+ void _oneSignalUserRemoveSms(const char* smsNumber) {
130
170
  [OneSignal.User removeSms:TO_NSSTRING(smsNumber)];
131
171
  }
132
172
 
133
- void _userAddTag(const char* key, const char* value) {
173
+ const char* _oneSignalUserGetTags() {
174
+ return strdup(oneSignalJsonStringFromDictionary([OneSignal.User getTags]));
175
+ }
176
+
177
+ void _oneSignalUserAddTag(const char* key, const char* value) {
134
178
  [OneSignal.User addTagWithKey:TO_NSSTRING(key)
135
179
  value:TO_NSSTRING(value)];
136
180
  }
137
181
 
138
- void _userAddTags(const char* tagsJson) {
139
- NSDictionary *tags = dictionaryFromJsonString(tagsJson);
182
+ void _oneSignalUserAddTags(const char* tagsJson) {
183
+ NSDictionary *tags = oneSignalDictionaryFromJsonString(tagsJson);
140
184
 
141
185
  [OneSignal.User addTags:tags];
142
186
  }
143
187
 
144
- void _userRemoveTag(const char* key) {
188
+ void _oneSignalUserRemoveTag(const char* key) {
145
189
  [OneSignal.User removeTag:TO_NSSTRING(key)];
146
190
  }
147
191
 
148
- void _userRemoveTags(const char* tagsJson) {
149
- NSArray *tags = arrayFromJsonString(tagsJson);
192
+ void _oneSignalUserRemoveTags(const char* tagsJson) {
193
+ NSArray *tags = oneSignalArrayFromJsonString(tagsJson);
150
194
 
151
195
  if (tags == nil) {
152
196
  NSLog(@"[Onesignal] Could not parse tags to delete");
@@ -156,27 +200,51 @@ extern "C" {
156
200
  [OneSignal.User removeTags:tags];
157
201
  }
158
202
 
159
- const char* _pushSubscriptionGetId() {
203
+ const char* _oneSignalUserGetOneSignalId(){
204
+ if (OneSignal.User.onesignalId == NULL) {
205
+ return NULL;
206
+ }
207
+ return strdup([OneSignal.User.onesignalId UTF8String]);
208
+ }
209
+
210
+ const char* _oneSignalUserGetExternalId(){
211
+ if (OneSignal.User.externalId == NULL) {
212
+ return NULL;
213
+ }
214
+ return strdup([OneSignal.User.externalId UTF8String]);
215
+ }
216
+
217
+ const char* _oneSignalPushSubscriptionGetId() {
218
+ if (OneSignal.User.pushSubscription.id == NULL) {
219
+ return NULL;
220
+ }
160
221
  return strdup([OneSignal.User.pushSubscription.id UTF8String]);
161
222
  }
162
223
 
163
- const char* _pushSubscriptionGetToken() {
224
+ const char* _oneSignalPushSubscriptionGetToken() {
225
+ if (OneSignal.User.pushSubscription.token == NULL) {
226
+ return NULL;
227
+ }
164
228
  return strdup([OneSignal.User.pushSubscription.token UTF8String]);
165
229
  }
166
230
 
167
- bool _pushSubscriptionGetOptedIn() {
231
+ bool _oneSignalPushSubscriptionGetOptedIn() {
168
232
  return OneSignal.User.pushSubscription.optedIn;
169
233
  }
170
234
 
171
- void _pushSubscriptionOptIn() {
235
+ void _oneSignalPushSubscriptionOptIn() {
172
236
  [OneSignal.User.pushSubscription optIn];
173
237
  }
174
238
 
175
- void _pushSubscriptionOptOut() {
239
+ void _oneSignalPushSubscriptionOptOut() {
176
240
  [OneSignal.User.pushSubscription optOut];
177
241
  }
178
242
 
179
- void _pushSubscriptionAddStateChangedCallback(StateListenerDelegate callback) {
243
+ void _oneSignalPushSubscriptionAddStateChangedCallback(StateListenerDelegate callback) {
180
244
  [[OneSignalUserObserver sharedUserObserver] setPushSubscriptionDelegate:callback];
181
245
  }
182
- }
246
+
247
+ void _oneSignalUserAddStateChangedCallback(UserStateListenerDelegate callback) {
248
+ [[OneSignalUserStateObserver sharedUserObserver] setUserStateDelegate:callback];
249
+ }
250
+ }
@@ -31,12 +31,11 @@
31
31
  #import "UIApplication+OneSignalUnity.h"
32
32
  #import <objc/runtime.h>
33
33
 
34
- // from OneSignalSelectorHelpers.m
35
- static Class getClassWithProtocolInHierarchy(Class searchClass, Protocol *protocolToFind) {
34
+ static Class oneSignalGetClassWithProtocolInHierarchy(Class searchClass, Protocol *protocolToFind) {
36
35
  if (!class_conformsToProtocol(searchClass, protocolToFind)) {
37
36
  if ([searchClass superclass] == [NSObject class])
38
37
  return nil;
39
- Class foundClass = getClassWithProtocolInHierarchy([searchClass superclass], protocolToFind);
38
+ Class foundClass = oneSignalGetClassWithProtocolInHierarchy([searchClass superclass], protocolToFind);
40
39
  if (foundClass)
41
40
  return foundClass;
42
41
  return searchClass;
@@ -45,7 +44,7 @@ static Class getClassWithProtocolInHierarchy(Class searchClass, Protocol *protoc
45
44
  }
46
45
 
47
46
  // from OneSignalSelectorHelpers.m
48
- BOOL injectSelector(Class newClass, SEL newSel, Class addToClass, SEL makeLikeSel) {
47
+ BOOL oneSignalInjectSelector(Class newClass, SEL newSel, Class addToClass, SEL makeLikeSel) {
49
48
  Method newMeth = class_getInstanceMethod(newClass, newSel);
50
49
  IMP imp = method_getImplementation(newMeth);
51
50
 
@@ -82,9 +81,9 @@ static bool swizzled = false;
82
81
  return;
83
82
  }
84
83
 
85
- Class delegateClass = getClassWithProtocolInHierarchy([delegate class], @protocol(UIApplicationDelegate));
84
+ Class delegateClass = oneSignalGetClassWithProtocolInHierarchy([delegate class], @protocol(UIApplicationDelegate));
86
85
 
87
- injectSelector(
86
+ oneSignalInjectSelector(
88
87
  self.class, @selector(oneSignalApplication:didFinishLaunchingWithOptions:),
89
88
  delegateClass, @selector(application:didFinishLaunchingWithOptions:)
90
89
  );
@@ -96,7 +95,7 @@ static bool swizzled = false;
96
95
 
97
96
  - (BOOL)oneSignalApplication:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
98
97
  [OneSignalWrapper setSdkType:@"unity"];
99
- [OneSignalWrapper setSdkVersion:@"050005"];
98
+ [OneSignalWrapper setSdkVersion:@"050100"];
100
99
  [OneSignal initialize:nil withLaunchOptions:launchOptions];
101
100
 
102
101
  if ([self respondsToSelector:@selector(oneSignalApplication:didFinishLaunchingWithOptions:)])
@@ -32,8 +32,8 @@ using OneSignalSDK.Debug.Models;
32
32
 
33
33
  namespace OneSignalSDK.iOS.Debug {
34
34
  internal sealed class iOSDebugManager : IDebugManager {
35
- [DllImport("__Internal")] private static extern void _debugSetLogLevel(int logLevel);
36
- [DllImport("__Internal")] private static extern void _debugSetAlertLevel(int alertlLevel);
35
+ [DllImport("__Internal")] private static extern void _oneSignalDebugSetLogLevel(int logLevel);
36
+ [DllImport("__Internal")] private static extern void _oneSignalDebugSetAlertLevel(int alertlLevel);
37
37
 
38
38
  private LogLevel _logLevel = LogLevel.Warn;
39
39
  private LogLevel _alertLevel = LogLevel.None;
@@ -42,7 +42,7 @@ namespace OneSignalSDK.iOS.Debug {
42
42
  get => _logLevel;
43
43
  set {
44
44
  _logLevel = value;
45
- _debugSetLogLevel((int) value);
45
+ _oneSignalDebugSetLogLevel((int) value);
46
46
  }
47
47
  }
48
48
 
@@ -50,7 +50,7 @@ namespace OneSignalSDK.iOS.Debug {
50
50
  get => _alertLevel;
51
51
  set {
52
52
  _alertLevel = value;
53
- _debugSetAlertLevel((int) value);
53
+ _oneSignalDebugSetAlertLevel((int) value);
54
54
  }
55
55
  }
56
56
  }
@@ -33,9 +33,9 @@ using OneSignalSDK.Notifications.Models;
33
33
 
34
34
  namespace OneSignalSDK.iOS.Notifications.Models {
35
35
  public sealed class iOSDisplayableNotification : Notification, IDisplayableNotification {
36
- [DllImport("__Internal")] private static extern void _notificationsDisplay(string notificationId);
36
+ [DllImport("__Internal")] private static extern void _oneSignalNotificationsDisplay(string notificationId);
37
37
 
38
38
  public void Display()
39
- => _notificationsDisplay(this.NotificationId);
39
+ => _oneSignalNotificationsDisplay(this.NotificationId);
40
40
  }
41
41
  }
@@ -36,19 +36,19 @@ using OneSignalSDK.InAppMessages.Internal;
36
36
 
37
37
  namespace OneSignalSDK.iOS.InAppMessages {
38
38
  internal sealed class iOSInAppMessagesManager : IInAppMessagesManager {
39
- [DllImport("__Internal")] private static extern void _inAppMessagesSetWillDisplayCallback(StringListenerDelegate callback);
40
- [DllImport("__Internal")] private static extern void _inAppMessagesSetDidDisplayCallback(StringListenerDelegate callback);
41
- [DllImport("__Internal")] private static extern void _inAppMessagesSetWillDismissCallback(StringListenerDelegate callback);
42
- [DllImport("__Internal")] private static extern void _inAppMessagesSetDidDismissCallback(StringListenerDelegate callback);
43
- [DllImport("__Internal")] private static extern void _inAppMessagesSetClickCallback(ClickListenerDelegate callback);
44
-
45
- [DllImport("__Internal")] private static extern void _inAppMessagesSetPaused(bool paused);
46
- [DllImport("__Internal")] private static extern bool _inAppMessagesGetPaused();
47
- [DllImport("__Internal")] private static extern void _inAppMessagesAddTrigger(string key, string value);
48
- [DllImport("__Internal")] private static extern void _inAppMessagesAddTriggers(string triggersJson);
49
- [DllImport("__Internal")] private static extern void _inAppMessagesRemoveTrigger(string key);
50
- [DllImport("__Internal")] private static extern void _inAppMessagesRemoveTriggers(string triggersJson);
51
- [DllImport("__Internal")] private static extern void _inAppMessagesClearTriggers();
39
+ [DllImport("__Internal")] private static extern void _oneSignalInAppMessagesSetWillDisplayCallback(StringListenerDelegate callback);
40
+ [DllImport("__Internal")] private static extern void _oneSignalInAppMessagesSetDidDisplayCallback(StringListenerDelegate callback);
41
+ [DllImport("__Internal")] private static extern void _oneSignalInAppMessagesSetWillDismissCallback(StringListenerDelegate callback);
42
+ [DllImport("__Internal")] private static extern void _oneSignalInAppMessagesSetDidDismissCallback(StringListenerDelegate callback);
43
+ [DllImport("__Internal")] private static extern void _oneSignalInAppMessagesSetClickCallback(ClickListenerDelegate callback);
44
+
45
+ [DllImport("__Internal")] private static extern void _oneSignalInAppMessagesSetPaused(bool paused);
46
+ [DllImport("__Internal")] private static extern bool _oneSignalInAppMessagesGetPaused();
47
+ [DllImport("__Internal")] private static extern void _oneSignalInAppMessagesAddTrigger(string key, string value);
48
+ [DllImport("__Internal")] private static extern void _oneSignalInAppMessagesAddTriggers(string triggersJson);
49
+ [DllImport("__Internal")] private static extern void _oneSignalInAppMessagesRemoveTrigger(string key);
50
+ [DllImport("__Internal")] private static extern void _oneSignalInAppMessagesRemoveTriggers(string triggersJson);
51
+ [DllImport("__Internal")] private static extern void _oneSignalInAppMessagesClearTriggers();
52
52
 
53
53
  private delegate void StringListenerDelegate(string response);
54
54
  private delegate void ClickListenerDelegate(string message, string result, int urlType);
@@ -66,31 +66,31 @@ namespace OneSignalSDK.iOS.InAppMessages {
66
66
  }
67
67
 
68
68
  public bool Paused {
69
- get => _inAppMessagesGetPaused();
70
- set => _inAppMessagesSetPaused(value);
69
+ get => _oneSignalInAppMessagesGetPaused();
70
+ set => _oneSignalInAppMessagesSetPaused(value);
71
71
  }
72
72
 
73
73
  public void AddTrigger(string key, string value)
74
- => _inAppMessagesAddTrigger(key, value.ToString());
74
+ => _oneSignalInAppMessagesAddTrigger(key, value.ToString());
75
75
 
76
76
  public void AddTriggers(Dictionary<string, string> triggers)
77
- => _inAppMessagesAddTriggers(Json.Serialize(triggers));
77
+ => _oneSignalInAppMessagesAddTriggers(Json.Serialize(triggers));
78
78
 
79
79
  public void RemoveTrigger(string key)
80
- => _inAppMessagesRemoveTrigger(key);
80
+ => _oneSignalInAppMessagesRemoveTrigger(key);
81
81
 
82
82
  public void RemoveTriggers(params string[] keys)
83
- => _inAppMessagesRemoveTriggers(Json.Serialize(keys));
83
+ => _oneSignalInAppMessagesRemoveTriggers(Json.Serialize(keys));
84
84
 
85
85
  public void ClearTriggers()
86
- => _inAppMessagesClearTriggers();
86
+ => _oneSignalInAppMessagesClearTriggers();
87
87
 
88
88
  public void Initialize() {
89
- _inAppMessagesSetWillDisplayCallback(_onWillDisplay);
90
- _inAppMessagesSetDidDisplayCallback(_onDidDisplay);
91
- _inAppMessagesSetWillDismissCallback(_onWillDismiss);
92
- _inAppMessagesSetDidDismissCallback(_onDidDismiss);
93
- _inAppMessagesSetClickCallback(_onClicked);
89
+ _oneSignalInAppMessagesSetWillDisplayCallback(_onWillDisplay);
90
+ _oneSignalInAppMessagesSetDidDisplayCallback(_onDidDisplay);
91
+ _oneSignalInAppMessagesSetWillDismissCallback(_onWillDismiss);
92
+ _oneSignalInAppMessagesSetDidDismissCallback(_onDidDismiss);
93
+ _oneSignalInAppMessagesSetClickCallback(_onClicked);
94
94
  }
95
95
 
96
96
  [AOT.MonoPInvokeCallback(typeof(StringListenerDelegate))]
@@ -32,20 +32,20 @@ using OneSignalSDK.iOS.Utilities;
32
32
 
33
33
  namespace OneSignalSDK.iOS.LiveActivities {
34
34
  internal sealed class iOSLiveActivitiesManager : ILiveActivitiesManager {
35
- [DllImport("__Internal")] private static extern void _enterLiveActivity(string activityId, string token, int hashCode, BooleanResponseDelegate callback);
36
- [DllImport("__Internal")] private static extern void _exitLiveActivity(string activityId, int hashCode, BooleanResponseDelegate callback);
35
+ [DllImport("__Internal")] private static extern void _oneSignalEnterLiveActivity(string activityId, string token, int hashCode, BooleanResponseDelegate callback);
36
+ [DllImport("__Internal")] private static extern void _oneSignalExitLiveActivity(string activityId, int hashCode, BooleanResponseDelegate callback);
37
37
 
38
38
  private delegate void BooleanResponseDelegate(int hashCode, bool response);
39
39
 
40
40
  public async Task<bool> EnterAsync(string activityId, string token) {
41
41
  var (proxy, hashCode) = WaitingProxy._setupProxy<bool>();
42
- _enterLiveActivity(activityId, token, hashCode, BooleanCallbackProxy);
42
+ _oneSignalEnterLiveActivity(activityId, token, hashCode, BooleanCallbackProxy);
43
43
  return await proxy;
44
44
  }
45
45
 
46
46
  public async Task<bool> ExitAsync(string activityId) {
47
47
  var (proxy, hashCode) = WaitingProxy._setupProxy<bool>();
48
- _exitLiveActivity(activityId, hashCode, BooleanCallbackProxy);
48
+ _oneSignalExitLiveActivity(activityId, hashCode, BooleanCallbackProxy);
49
49
  return await proxy;
50
50
  }
51
51
 
@@ -32,17 +32,17 @@ using System.Runtime.InteropServices;
32
32
 
33
33
  namespace OneSignalSDK.iOS.Location {
34
34
  internal sealed class iOSLocationManager : ILocationManager {
35
- [DllImport("__Internal")] private static extern bool _locationGetIsShared();
36
- [DllImport("__Internal")] private static extern void _locationSetIsShared(bool shared);
37
- [DllImport("__Internal")] private static extern void _locationRequestPermission();
35
+ [DllImport("__Internal")] private static extern bool _oneSignalLocationGetIsShared();
36
+ [DllImport("__Internal")] private static extern void _oneSignalLocationSetIsShared(bool shared);
37
+ [DllImport("__Internal")] private static extern void _oneSignalLocationRequestPermission();
38
38
 
39
39
  public bool IsShared {
40
- get => _locationGetIsShared();
41
- set => _locationSetIsShared(value);
40
+ get => _oneSignalLocationGetIsShared();
41
+ set => _oneSignalLocationSetIsShared(value);
42
42
  }
43
43
 
44
44
  public void RequestPermission() {
45
- _locationRequestPermission();
45
+ _oneSignalLocationRequestPermission();
46
46
  }
47
47
  }
48
48
  }
@@ -38,15 +38,15 @@ using OneSignalSDK.iOS.Notifications.Models;
38
38
 
39
39
  namespace OneSignalSDK.iOS.Notifications {
40
40
  internal sealed class iOSNotificationsManager : INotificationsManager {
41
- [DllImport("__Internal")] private static extern bool _notificationsGetPermission();
42
- [DllImport("__Internal")] private static extern bool _notificationsGetCanRequestPermission();
43
- [DllImport("__Internal")] private static extern int _notificationsGetPermissionNative();
44
- [DllImport("__Internal")] private static extern void _notificationsRequestPermission(bool fallbackToSettings, int hashCode, BooleanResponseDelegate callback);
45
- [DllImport("__Internal")] private static extern void _notificationsClearAll();
46
- [DllImport("__Internal")] private static extern void _notificationsAddPermissionObserver(PermissionListenerDelegate callback);
47
- [DllImport("__Internal")] private static extern void _notificationsSetForegroundWillDisplayCallback(WillDisplayListenerDelegate callback);
48
- [DllImport("__Internal")] private static extern void _notificationsWillDisplayEventPreventDefault(string notificationId);
49
- [DllImport("__Internal")] private static extern void _notificationsSetClickCallback(ClickListenerDelegate callback);
41
+ [DllImport("__Internal")] private static extern bool _oneSignalNotificationsGetPermission();
42
+ [DllImport("__Internal")] private static extern bool _oneSignalNotificationsGetCanRequestPermission();
43
+ [DllImport("__Internal")] private static extern int _oneSignalNotificationsGetPermissionNative();
44
+ [DllImport("__Internal")] private static extern void _oneSignalNotificationsRequestPermission(bool fallbackToSettings, int hashCode, BooleanResponseDelegate callback);
45
+ [DllImport("__Internal")] private static extern void _oneSignalNotificationsClearAll();
46
+ [DllImport("__Internal")] private static extern void _oneSignalNotificationsAddPermissionObserver(PermissionListenerDelegate callback);
47
+ [DllImport("__Internal")] private static extern void _oneSignalNotificationsSetForegroundWillDisplayCallback(WillDisplayListenerDelegate callback);
48
+ [DllImport("__Internal")] private static extern void _oneSignalNotificationsWillDisplayEventPreventDefault(string notificationId);
49
+ [DllImport("__Internal")] private static extern void _oneSignalNotificationsSetClickCallback(ClickListenerDelegate callback);
50
50
 
51
51
  private delegate void PermissionListenerDelegate(bool permission);
52
52
  private delegate void WillDisplayListenerDelegate(string notification);
@@ -66,7 +66,7 @@ namespace OneSignalSDK.iOS.Notifications {
66
66
 
67
67
  if (!_clickNativeListenerSet) {
68
68
  _clickNativeListenerSet = true;
69
- _notificationsSetClickCallback(_onClicked);
69
+ _oneSignalNotificationsSetClickCallback(_onClicked);
70
70
  }
71
71
  }
72
72
  remove { _clicked -= value; }
@@ -79,30 +79,30 @@ namespace OneSignalSDK.iOS.Notifications {
79
79
  }
80
80
 
81
81
  public bool Permission {
82
- get => _notificationsGetPermission();
82
+ get => _oneSignalNotificationsGetPermission();
83
83
  }
84
84
 
85
85
  public bool CanRequestPermission {
86
- get => _notificationsGetCanRequestPermission();
86
+ get => _oneSignalNotificationsGetCanRequestPermission();
87
87
  }
88
88
 
89
89
  public NotificationPermission PermissionNative {
90
- get => (NotificationPermission)_notificationsGetPermissionNative();
90
+ get => (NotificationPermission)_oneSignalNotificationsGetPermissionNative();
91
91
  }
92
92
 
93
93
  public async Task<bool> RequestPermissionAsync(bool fallbackToSettings) {
94
94
  var (proxy, hashCode) = WaitingProxy._setupProxy<bool>();
95
- _notificationsRequestPermission(fallbackToSettings, hashCode, BooleanCallbackProxy);
95
+ _oneSignalNotificationsRequestPermission(fallbackToSettings, hashCode, BooleanCallbackProxy);
96
96
  return await proxy;
97
97
  }
98
98
 
99
99
  public void ClearAllNotifications() {
100
- _notificationsClearAll();
100
+ _oneSignalNotificationsClearAll();
101
101
  }
102
102
 
103
103
  public void Initialize() {
104
- _notificationsAddPermissionObserver(_onPermissionStateChanged);
105
- _notificationsSetForegroundWillDisplayCallback(_onForegroundWillDisplay);
104
+ _oneSignalNotificationsAddPermissionObserver(_onPermissionStateChanged);
105
+ _oneSignalNotificationsSetForegroundWillDisplayCallback(_onForegroundWillDisplay);
106
106
  }
107
107
 
108
108
  [AOT.MonoPInvokeCallback(typeof(PermissionListenerDelegate))]
@@ -137,7 +137,7 @@ namespace OneSignalSDK.iOS.Notifications {
137
137
  public InternalNotificationWillDisplayEventArgs(IDisplayableNotification notification) : base(notification) { }
138
138
 
139
139
  public override void PreventDefault() {
140
- _notificationsWillDisplayEventPreventDefault(this.Notification.NotificationId);
140
+ _oneSignalNotificationsWillDisplayEventPreventDefault(this.Notification.NotificationId);
141
141
  }
142
142
  }
143
143
 
@@ -35,12 +35,12 @@ using OneSignalSDK.Debug.Utilities;
35
35
 
36
36
  namespace OneSignalSDK.iOS.User.Models {
37
37
  internal sealed class iOSPushSubscription : IPushSubscription {
38
- [DllImport("__Internal")] private static extern string _pushSubscriptionGetId();
39
- [DllImport("__Internal")] private static extern string _pushSubscriptionGetToken();
40
- [DllImport("__Internal")] private static extern bool _pushSubscriptionGetOptedIn();
41
- [DllImport("__Internal")] private static extern void _pushSubscriptionOptIn();
42
- [DllImport("__Internal")] private static extern void _pushSubscriptionOptOut();
43
- [DllImport("__Internal")] private static extern void _pushSubscriptionAddStateChangedCallback(StateListenerDelegate callback);
38
+ [DllImport("__Internal")] private static extern string _oneSignalPushSubscriptionGetId();
39
+ [DllImport("__Internal")] private static extern string _oneSignalPushSubscriptionGetToken();
40
+ [DllImport("__Internal")] private static extern bool _oneSignalPushSubscriptionGetOptedIn();
41
+ [DllImport("__Internal")] private static extern void _oneSignalPushSubscriptionOptIn();
42
+ [DllImport("__Internal")] private static extern void _oneSignalPushSubscriptionOptOut();
43
+ [DllImport("__Internal")] private static extern void _oneSignalPushSubscriptionAddStateChangedCallback(StateListenerDelegate callback);
44
44
 
45
45
  public delegate void StateListenerDelegate(string current, string previous);
46
46
 
@@ -53,25 +53,25 @@ namespace OneSignalSDK.iOS.User.Models {
53
53
  }
54
54
 
55
55
  public string Id {
56
- get => _pushSubscriptionGetId();
56
+ get => _oneSignalPushSubscriptionGetId();
57
57
  }
58
58
 
59
59
  public string Token {
60
- get => _pushSubscriptionGetToken();
60
+ get => _oneSignalPushSubscriptionGetToken();
61
61
  }
62
62
 
63
63
  public bool OptedIn {
64
- get => _pushSubscriptionGetOptedIn();
64
+ get => _oneSignalPushSubscriptionGetOptedIn();
65
65
  }
66
66
 
67
67
  public void OptIn()
68
- => _pushSubscriptionOptIn();
68
+ => _oneSignalPushSubscriptionOptIn();
69
69
 
70
70
  public void OptOut()
71
- => _pushSubscriptionOptOut();
71
+ => _oneSignalPushSubscriptionOptOut();
72
72
 
73
73
  public void Initialize() {
74
- _pushSubscriptionAddStateChangedCallback(_onPushSubscriptionStateChanged);
74
+ _oneSignalPushSubscriptionAddStateChangedCallback(_onPushSubscriptionStateChanged);
75
75
  }
76
76
 
77
77
  [AOT.MonoPInvokeCallback(typeof(StateListenerDelegate))]
@@ -31,17 +31,17 @@ using System.Runtime.InteropServices;
31
31
 
32
32
  namespace OneSignalSDK.iOS.Session {
33
33
  internal sealed class iOSSessionManager : ISessionManager {
34
- [DllImport("__Internal")] private static extern void _sessionAddOutcome(string name);
35
- [DllImport("__Internal")] private static extern void _sessionAddUniqueOutcome(string name);
36
- [DllImport("__Internal")] private static extern void _sessionAddOutcomeWithValue(string name, float value);
34
+ [DllImport("__Internal")] private static extern void _oneSignalSessionAddOutcome(string name);
35
+ [DllImport("__Internal")] private static extern void _oneSignalSessionAddUniqueOutcome(string name);
36
+ [DllImport("__Internal")] private static extern void _oneSignalSessionAddOutcomeWithValue(string name, float value);
37
37
 
38
38
  public void AddOutcome(string name)
39
- => _sessionAddOutcome(name);
39
+ => _oneSignalSessionAddOutcome(name);
40
40
 
41
41
  public void AddUniqueOutcome(string name)
42
- => _sessionAddUniqueOutcome(name);
42
+ => _oneSignalSessionAddUniqueOutcome(name);
43
43
 
44
44
  public void AddOutcomeWithValue(string name, float value)
45
- => _sessionAddOutcomeWithValue(name, value);
45
+ => _oneSignalSessionAddOutcomeWithValue(name, value);
46
46
  }
47
47
  }
@@ -27,80 +27,123 @@
27
27
 
28
28
 
29
29
  using UnityEngine;
30
+ using System;
30
31
  using System.Collections.Generic;
31
32
  using System.Runtime.InteropServices;
32
33
  using OneSignalSDK.User;
34
+ using OneSignalSDK.User.Internal;
33
35
  using OneSignalSDK.User.Models;
34
36
  using OneSignalSDK.iOS.User.Models;
35
37
 
36
38
  namespace OneSignalSDK.iOS.User {
37
39
  internal sealed class iOSUserManager : IUserManager {
38
- [DllImport("__Internal")] private static extern void _userSetLanguage(string languageCode);
39
- [DllImport("__Internal")] private static extern void _userAddAlias(string aliasLabel, string aliasId);
40
- [DllImport("__Internal")] private static extern void _userAddAliases(string aliasesJson);
41
- [DllImport("__Internal")] private static extern void _userRemoveAlias(string aliasLabel);
42
- [DllImport("__Internal")] private static extern void _userRemoveAliases(string aliasesJson);
43
- [DllImport("__Internal")] private static extern void _userAddEmail(string email);
44
- [DllImport("__Internal")] private static extern void _userRemoveEmail(string email);
45
- [DllImport("__Internal")] private static extern void _userAddSms(string smsNumber);
46
- [DllImport("__Internal")] private static extern void _userRemoveSms(string smsNumber);
47
- [DllImport("__Internal")] private static extern void _userAddTag(string key, string value);
48
- [DllImport("__Internal")] private static extern void _userAddTags(string tagsJson);
49
- [DllImport("__Internal")] private static extern void _userRemoveTag(string key);
50
- [DllImport("__Internal")] private static extern void _userRemoveTags(string tagsJson);
40
+ [DllImport("__Internal")] private static extern string _oneSignalUserGetOneSignalId();
41
+ [DllImport("__Internal")] private static extern string _oneSignalUserGetExternalId();
42
+ [DllImport("__Internal")] private static extern void _oneSignalUserSetLanguage(string languageCode);
43
+ [DllImport("__Internal")] private static extern void _oneSignalUserAddAlias(string aliasLabel, string aliasId);
44
+ [DllImport("__Internal")] private static extern void _oneSignalUserAddAliases(string aliasesJson);
45
+ [DllImport("__Internal")] private static extern void _oneSignalUserRemoveAlias(string aliasLabel);
46
+ [DllImport("__Internal")] private static extern void _oneSignalUserRemoveAliases(string aliasesJson);
47
+ [DllImport("__Internal")] private static extern void _oneSignalUserAddEmail(string email);
48
+ [DllImport("__Internal")] private static extern void _oneSignalUserRemoveEmail(string email);
49
+ [DllImport("__Internal")] private static extern void _oneSignalUserAddSms(string smsNumber);
50
+ [DllImport("__Internal")] private static extern void _oneSignalUserRemoveSms(string smsNumber);
51
+ [DllImport("__Internal")] private static extern string _oneSignalUserGetTags();
52
+ [DllImport("__Internal")] private static extern void _oneSignalUserAddTag(string key, string value);
53
+ [DllImport("__Internal")] private static extern void _oneSignalUserAddTags(string tagsJson);
54
+ [DllImport("__Internal")] private static extern void _oneSignalUserRemoveTag(string key);
55
+ [DllImport("__Internal")] private static extern void _oneSignalUserRemoveTags(string tagsJson);
56
+ [DllImport("__Internal")] private static extern void _oneSignalUserAddStateChangedCallback(UserStateListenerDelegate callback);
57
+
58
+ public delegate void UserStateListenerDelegate(string current);
59
+
60
+ public event EventHandler<UserStateChangedEventArgs> Changed;
51
61
 
52
62
  private iOSPushSubscription _pushSubscription;
63
+
64
+ private static iOSUserManager _instance;
53
65
 
54
66
  public iOSUserManager() {
67
+ _instance = this;
55
68
  _pushSubscription = new iOSPushSubscription();
56
69
  }
57
70
 
71
+ public string OneSignalId {
72
+ get => _oneSignalUserGetOneSignalId();
73
+ }
74
+
75
+ public string ExternalId {
76
+ get => _oneSignalUserGetExternalId();
77
+ }
78
+
58
79
  public IPushSubscription PushSubscription {
59
80
  get => _pushSubscription;
60
81
  }
61
82
 
62
83
  public string Language {
63
- set => _userSetLanguage(value);
84
+ set => _oneSignalUserSetLanguage(value);
85
+ }
86
+
87
+ public Dictionary<string, string> GetTags() {
88
+ Dictionary<string, object> raw = (Dictionary<string, object>)Json.Deserialize(_oneSignalUserGetTags());
89
+ Dictionary<string, string> dict = new Dictionary<string, string>();
90
+ foreach (KeyValuePair<string, object> kvp in raw) dict.Add(kvp.Key, kvp.Value.ToString());
91
+ return dict;
64
92
  }
65
93
 
66
94
  public void AddTag(string key, string value)
67
- =>_userAddTag(key, value);
95
+ =>_oneSignalUserAddTag(key, value);
68
96
 
69
97
  public void AddTags(Dictionary<string, string> tags)
70
- => _userAddTags(Json.Serialize(tags));
98
+ => _oneSignalUserAddTags(Json.Serialize(tags));
71
99
 
72
100
  public void RemoveTag(string key)
73
- => _userRemoveTag(key);
101
+ => _oneSignalUserRemoveTag(key);
74
102
 
75
103
  public void RemoveTags(params string[] keys)
76
- => _userRemoveTags(Json.Serialize(keys));
104
+ => _oneSignalUserRemoveTags(Json.Serialize(keys));
77
105
 
78
106
  public void AddAlias(string label, string id)
79
- => _userAddAlias(label, id);
107
+ => _oneSignalUserAddAlias(label, id);
80
108
 
81
109
  public void AddAliases(Dictionary<string, string> aliases)
82
- => _userAddAliases(Json.Serialize(aliases));
110
+ => _oneSignalUserAddAliases(Json.Serialize(aliases));
83
111
 
84
112
  public void RemoveAlias(string label)
85
- => _userRemoveAlias(label);
113
+ => _oneSignalUserRemoveAlias(label);
86
114
 
87
115
  public void RemoveAliases(params string[] labels)
88
- => _userRemoveAliases(Json.Serialize(labels));
116
+ => _oneSignalUserRemoveAliases(Json.Serialize(labels));
89
117
 
90
118
  public void AddEmail(string email)
91
- => _userAddEmail(email);
119
+ => _oneSignalUserAddEmail(email);
92
120
 
93
121
  public void RemoveEmail(string email)
94
- => _userRemoveEmail(email);
122
+ => _oneSignalUserRemoveEmail(email);
95
123
 
96
124
  public void AddSms(string sms)
97
- => _userAddSms(sms);
125
+ => _oneSignalUserAddSms(sms);
98
126
 
99
127
  public void RemoveSms(string sms)
100
- => _userRemoveSms(sms);
128
+ => _oneSignalUserRemoveSms(sms);
101
129
 
102
130
  public void Initialize() {
103
131
  _pushSubscription.Initialize();
132
+ _oneSignalUserAddStateChangedCallback(_onUserStateChanged);
133
+ }
134
+
135
+ [AOT.MonoPInvokeCallback(typeof(UserStateListenerDelegate))]
136
+ private static void _onUserStateChanged(string current) {
137
+ var curr = JsonUtility.FromJson<UserState>(current);
138
+
139
+ UserChangedState userChangedState = new UserChangedState(curr);
140
+ UserStateChangedEventArgs args = new UserStateChangedEventArgs(userChangedState);
141
+
142
+ EventHandler<UserStateChangedEventArgs> handler = _instance.Changed;
143
+ if (handler != null)
144
+ {
145
+ UnityMainThreadDispatch.Post(state => handler(_instance, args));
146
+ }
104
147
  }
105
148
  }
106
149
  }
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "com.onesignal.unity.ios",
3
3
  "displayName": "OneSignal Unity SDK - iOS",
4
- "version": "5.0.5",
4
+ "version": "5.1.0",
5
5
  "unity": "2018.4",
6
6
  "description": "OneSignal is the market leader in customer engagement, powering mobile push, web push, email, and in-app messages.",
7
7
  "dependencies": {
8
- "com.onesignal.unity.core": "5.0.5"
8
+ "com.onesignal.unity.core": "5.1.0"
9
9
  },
10
10
  "keywords": [
11
11
  "push-notifications",