Skip to content

Commit fcf406b

Browse files
committed
Implement setLanguage network call
* Add setLanguageOnServer method to OneSignal implementation * Execute network call using stateSynchronizer.updateLanguage * Add shouldLogMissingPrivacyConsentErrorWithMethodName for setLanguage
1 parent 99cf779 commit fcf406b

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

iOS_SDK/OneSignalSDK/Source/OneSignal.m

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1896,6 +1896,8 @@ + (void)registerUserInternal {
18961896
if (self.playerTags.tagsToSend) {
18971897
[self performSelector:@selector(sendTagsToServer) withObject:nil afterDelay:5];
18981898
}
1899+
1900+
//TODO: Check for Pending Language State and add a put call for it
18991901

19001902
// Try to send location
19011903
[OneSignalLocation sendLocation];
@@ -2699,11 +2701,32 @@ + (id)getTriggerValueForKey:(NSString *)key {
26992701
}
27002702

27012703
+ (void)setLanguage:(NSString * _Nonnull)language {
2704+
// return if the user has not granted privacy permissions
2705+
if ([self shouldLogMissingPrivacyConsentErrorWithMethodName:@"setLanguage"])
2706+
return;
2707+
27022708
let languageProviderAppDefined = [LanguageProviderAppDefined new];
27032709
[languageProviderAppDefined setLanguage:language];
27042710
[languageContext setStrategy:languageProviderAppDefined];
27052711

2712+
//Can't send Language if there exists not LanguageContext or language
2713+
if (languageContext.language)
2714+
[self setLanguageOnServer];
27062715
}
2716+
2717+
// Called only with a delay to batch network calls.
2718+
+ (void)setLanguageOnServer {
2719+
2720+
// return if the user has not granted privacy permissions
2721+
if ([self shouldLogMissingPrivacyConsentErrorWithMethodName:nil])
2722+
return;
2723+
2724+
if (!languageContext.language) //Add Language null check
2725+
return;
2726+
2727+
[OneSignal.stateSynchronizer updateLanguage:languageContext.language appId:appId];
2728+
}
2729+
27072730
+ (void)setExternalUserId:(NSString * _Nonnull)externalId {
27082731

27092732
// return if the user has not granted privacy permissions

0 commit comments

Comments
 (0)