@@ -38,6 +38,14 @@ - (id)init {
38
38
39
39
extern " C"
40
40
{
41
+ void addValueOrEmpty (NSMutableDictionary *dictionary, NSString *key, NSObject *value) {
42
+ if (nil != value) {
43
+ [dictionary setObject: [NSString stringWithFormat: @" %@ " , value] forKey: key];
44
+ } else {
45
+ [dictionary setObject: @" " forKey: key];
46
+ }
47
+ }
48
+
41
49
void _AdjustLaunchApp (const char * appToken, const char * environment, const char * sdkPrefix, int allowSuppressLogLevel, int logLevel,
42
50
int eventBuffering, int sendInBackground, double delayStart, const char * userAgent, int launchDeferredDeeplink, const char * sceneName,
43
51
int isAttributionCallbackImplemented, int isEventSuccessCallbackImplemented, int isEventFailureCallbackImplemented,
@@ -122,7 +130,7 @@ void _AdjustTrackEvent(const char* eventToken, double revenue, const char* curre
122
130
NSArray *arrayCallbackParameters = ConvertArrayParameters (jsonCallbackParameters);
123
131
124
132
if (arrayCallbackParameters != nil ) {
125
- int count = [arrayCallbackParameters count ];
133
+ NSUInteger count = [arrayCallbackParameters count ];
126
134
127
135
for (int i = 0 ; i < count;) {
128
136
NSString *key = arrayCallbackParameters[i];
@@ -138,7 +146,7 @@ void _AdjustTrackEvent(const char* eventToken, double revenue, const char* curre
138
146
NSArray *arrayPartnerParameters = ConvertArrayParameters (jsonPartnerParameters);
139
147
140
148
if (arrayPartnerParameters != nil ) {
141
- int count = [arrayPartnerParameters count ];
149
+ NSUInteger count = [arrayPartnerParameters count ];
142
150
143
151
for (int i = 0 ; i < count;) {
144
152
NSString *key = arrayPartnerParameters[i];
@@ -201,12 +209,69 @@ void _AdjustSetDeviceToken(const char* deviceToken) {
201
209
202
210
char * _AdjustGetIdfa () {
203
211
NSString *idfa = [Adjust idfa ];
212
+
213
+ if (nil == idfa) {
214
+ return NULL ;
215
+ }
216
+
204
217
const char * idfaCString = [idfa UTF8String ];
218
+
219
+ if (NULL == idfaCString) {
220
+ return NULL ;
221
+ }
222
+
205
223
char * idfaCStringCopy = strdup (idfaCString);
206
224
207
225
return idfaCStringCopy;
208
226
}
209
227
228
+ char * _AdjustGetAdid () {
229
+ NSString *adid = [Adjust adid ];
230
+
231
+ if (nil == adid) {
232
+ return NULL ;
233
+ }
234
+
235
+ const char * adidCString = [adid UTF8String ];
236
+
237
+ if (NULL == adidCString) {
238
+ return NULL ;
239
+ }
240
+
241
+ char * adidCStringCopy = strdup (adidCString);
242
+
243
+ return adidCStringCopy;
244
+ }
245
+
246
+ char * _AdjustGetAttribution () {
247
+ ADJAttribution *attribution = [Adjust attribution ];
248
+
249
+ if (nil == attribution) {
250
+ return NULL ;
251
+ }
252
+
253
+ NSMutableDictionary *dictionary = [NSMutableDictionary dictionary ];
254
+
255
+ addValueOrEmpty (dictionary, @" trackerToken" , attribution.trackerToken );
256
+ addValueOrEmpty (dictionary, @" trackerName" , attribution.trackerName );
257
+ addValueOrEmpty (dictionary, @" network" , attribution.network );
258
+ addValueOrEmpty (dictionary, @" campaign" , attribution.campaign );
259
+ addValueOrEmpty (dictionary, @" creative" , attribution.creative );
260
+ addValueOrEmpty (dictionary, @" adgroup" , attribution.adgroup );
261
+ addValueOrEmpty (dictionary, @" clickLabel" , attribution.clickLabel );
262
+ addValueOrEmpty (dictionary, @" adid" , attribution.adid );
263
+
264
+ NSData *dataAttribution = [NSJSONSerialization dataWithJSONObject: dictionary options: 0 error: nil ];
265
+ NSString *stringAttribution = [[NSString alloc ] initWithBytes: [dataAttribution bytes ]
266
+ length: [dataAttribution length ]
267
+ encoding: NSUTF8StringEncoding];
268
+
269
+ const char * attributionCString = [stringAttribution UTF8String ];
270
+ char * attributionCStringCopy = strdup (attributionCString);
271
+
272
+ return attributionCStringCopy;
273
+ }
274
+
210
275
void _AdjustSendFirstPackages () {
211
276
[Adjust sendFirstPackages ];
212
277
}
0 commit comments