Skip to content

Commit a9a0e54

Browse files
authored
Merge pull request #1352 from OneSignal/v5_location_sharing
Location sharing with OneSignal now defaults to false
2 parents 4b92542 + ad5e7f2 commit a9a0e54

File tree

7 files changed

+19
-15
lines changed

7 files changed

+19
-15
lines changed

MIGRATION_GUIDE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -694,11 +694,11 @@ OneSignal.Notifications.addClickListener(myListener)
694694

695695
## Location Namespace
696696

697-
The Location namespace is accessible via `OneSignal.Location` and provide access to location-scoped functionality.
697+
The Location namespace is accessible via `OneSignal.Location` and provide access to location-scoped functionality. As of `v5.1.0`, location sharing must be enabled by setting `isShared` to `true`.
698698

699699
| **Swift** | **Objective-C** | **Description** |
700700
| ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
701-
| `let isShared: Bool = OneSignal.Location.isShared`<br><br>`OneSignal.Location.isShared = true` | `BOOL isShared = [OneSignal.Location isShared]`<br><br>`[OneSignal.Location setShared:true]` | *Whether location is currently shared with OneSignal.* |
701+
| `let isShared: Bool = OneSignal.Location.isShared`<br><br>`OneSignal.Location.isShared = true` | `BOOL isShared = [OneSignal.Location isShared]`<br><br>`[OneSignal.Location setShared:true]` | *Whether location is currently shared with OneSignal. As of `v5.1.0`, this is false by default, and you must set to `true` to enable sharing.* |
702702
| `OneSignal.Location.requestPermission()` | `[OneSignal.Location requestPermission]` | *Use this method to manually prompt the user for location permissions. This allows for geotagging so you send notifications to users based on location.* |
703703

704704

iOS_SDK/OneSignalSDK/OneSignalCore/Source/OneSignalCommonDefines.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,10 @@
118118
// can use them directly.
119119
#define DEFAULT_UNAUTHORIZATIONOPTIONS (UNAuthorizationOptionSound + UNAuthorizationOptionBadge + UNAuthorizationOptionAlert)
120120

121+
// Class Names used with NSClassFromString
122+
#define ONE_SIGNAL_LOCATION_CLASS_NAME @"OneSignalLocationManager"
123+
#define ONE_SIGNAL_IN_APP_MESSAGES_CLASS_NAME @"OneSignalInAppMessages"
124+
121125
// iOS Parameter Names
122126
#define IOS_FBA @"fba"
123127
#define IOS_USES_PROVISIONAL_AUTHORIZATION @"uses_provisional_auth"

iOS_SDK/OneSignalSDK/OneSignalCore/Source/RemoteParameters/OSRemoteParamController.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ - (BOOL)hasPrivacyConsentKey {
5353
}
5454

5555
- (BOOL)isLocationShared {
56-
return [OneSignalUserDefaults.initShared getSavedBoolForKey:OSUD_LOCATION_ENABLED defaultValue:YES];
56+
return [OneSignalUserDefaults.initShared getSavedBoolForKey:OSUD_LOCATION_ENABLED defaultValue:NO];
5757
}
5858

5959
- (void)saveLocationShared:(BOOL)shared {

iOS_SDK/OneSignalSDK/OneSignalInAppMessages/Model/OSInAppMessageLocationPrompt.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ - (void)handlePrompt:(void (^)(PromptActionResult result))completionHandler {
5252
This code calls [OneSignalLocation promptLocationFallbackToSettings:true completionHandler:completionHandler];
5353
*/
5454
BOOL fallback = YES;
55-
let oneSignalLocationManager = NSClassFromString(@"OneSignalLocationManager");
55+
let oneSignalLocationManager = NSClassFromString(ONE_SIGNAL_LOCATION_CLASS_NAME);
5656
if (oneSignalLocationManager != nil && [oneSignalLocationManager respondsToSelector:@selector(promptLocationFallbackToSettings:completionHandler:)]) {
5757
NSMethodSignature* signature = [oneSignalLocationManager methodSignatureForSelector:@selector(promptLocationFallbackToSettings:completionHandler:)];
5858
NSInvocation* invocation = [NSInvocation invocationWithMethodSignature: signature];

iOS_SDK/OneSignalSDK/Source/OSMigrationController.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ @implementation OSMigrationController
4141

4242
- (void)migrate {
4343
[self migrateToVersion_02_14_00_AndGreater];
44-
let oneSignalInAppMessages = NSClassFromString(@"OneSignalInAppMessages");
44+
let oneSignalInAppMessages = NSClassFromString(ONE_SIGNAL_IN_APP_MESSAGES_CLASS_NAME);
4545
if (oneSignalInAppMessages != nil && [oneSignalInAppMessages respondsToSelector:@selector(migrate)]) {
4646
[oneSignalInAppMessages performSelector:@selector(migrate)];
4747
}

iOS_SDK/OneSignalSDK/Source/OneSignal.m

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ + (void)logout {
208208
}
209209

210210
+ (Class<OSInAppMessages>)InAppMessages {
211-
let oneSignalInAppMessages = NSClassFromString(@"OneSignalInAppMessages");
211+
let oneSignalInAppMessages = NSClassFromString(ONE_SIGNAL_IN_APP_MESSAGES_CLASS_NAME);
212212
if (oneSignalInAppMessages != nil && [oneSignalInAppMessages respondsToSelector:@selector(InAppMessages)]) {
213213
return [oneSignalInAppMessages performSelector:@selector(InAppMessages)];
214214
} else {
@@ -222,7 +222,7 @@ + (void)logout {
222222
}
223223

224224
+ (Class<OSLocation>)Location {
225-
let oneSignalLocationManager = NSClassFromString(@"OneSignalLocationManager");
225+
let oneSignalLocationManager = NSClassFromString(ONE_SIGNAL_LOCATION_CLASS_NAME);
226226
if (oneSignalLocationManager != nil && [oneSignalLocationManager respondsToSelector:@selector(Location)]) {
227227
return [oneSignalLocationManager performSelector:@selector(Location)];
228228
} else {
@@ -380,7 +380,7 @@ + (void)startNewSessionInternal {
380380
[OneSignalTrackFirebaseAnalytics trackInfluenceOpenEvent];
381381

382382
// Clear last location after attaching data to user state or not
383-
let oneSignalLocation = NSClassFromString(@"OneSignalLocation");
383+
let oneSignalLocation = NSClassFromString(ONE_SIGNAL_LOCATION_CLASS_NAME);
384384
if (oneSignalLocation != nil && [oneSignalLocation respondsToSelector:@selector(clearLastLocation)]) {
385385
[oneSignalLocation performSelector:@selector(clearLastLocation)];
386386
}
@@ -394,7 +394,7 @@ + (void)startNewSessionInternal {
394394
// The OSMessagingController is an OSPushSubscriptionObserver so that we pull IAMs once we have the sub id
395395
NSString *subscriptionId = OneSignalUserManagerImpl.sharedInstance.pushSubscriptionId;
396396
if (subscriptionId) {
397-
let oneSignalInAppMessages = NSClassFromString(@"OneSignalInAppMessages");
397+
let oneSignalInAppMessages = NSClassFromString(ONE_SIGNAL_IN_APP_MESSAGES_CLASS_NAME);
398398
if (oneSignalInAppMessages != nil && [oneSignalInAppMessages respondsToSelector:@selector(getInAppMessagesFromServer:)]) {
399399
[oneSignalInAppMessages performSelector:@selector(getInAppMessagesFromServer:) withObject:subscriptionId];
400400
}
@@ -414,7 +414,7 @@ + (void)startNewSessionInternal {
414414
}
415415

416416
+ (void)startInAppMessages {
417-
let oneSignalInAppMessages = NSClassFromString(@"OneSignalInAppMessages");
417+
let oneSignalInAppMessages = NSClassFromString(ONE_SIGNAL_IN_APP_MESSAGES_CLASS_NAME);
418418
if (oneSignalInAppMessages != nil && [oneSignalInAppMessages respondsToSelector:@selector(start)]) {
419419
[oneSignalInAppMessages performSelector:@selector(start)];
420420
}
@@ -426,7 +426,7 @@ + (void)startOutcomes {
426426
}
427427

428428
+ (void)startLocation {
429-
let oneSignalLocation = NSClassFromString(@"OneSignalLocation");
429+
let oneSignalLocation = NSClassFromString(ONE_SIGNAL_LOCATION_CLASS_NAME);
430430
if (oneSignalLocation != nil && [oneSignalLocation respondsToSelector:@selector(start)]) {
431431
[oneSignalLocation performSelector:@selector(start)];
432432
}
@@ -619,7 +619,7 @@ + (void)downloadIOSParamsWithAppId:(NSString *)appId {
619619
[[OSRemoteParamController sharedController] saveRemoteParams:result];
620620
if ([[OSRemoteParamController sharedController] hasLocationKey]) {
621621
BOOL shared = [result[IOS_LOCATION_SHARED] boolValue];
622-
let oneSignalLocation = NSClassFromString(@"OneSignalLocation");
622+
let oneSignalLocation = NSClassFromString(ONE_SIGNAL_LOCATION_CLASS_NAME);
623623
if (oneSignalLocation != nil && [oneSignalLocation respondsToSelector:@selector(startLocationSharedWithFlag:)]) {
624624
[OneSignalCoreHelper callSelector:@selector(startLocationSharedWithFlag:) onObject:oneSignalLocation withArg:shared];
625625
}

iOS_SDK/OneSignalSDK/Source/OneSignalLifecycleObserver.m

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,11 @@ - (void)didBecomeActive {
8181

8282
if ([OneSignalConfigManager getAppId]) {
8383
[OneSignalTracker onFocus:NO];
84-
let oneSignalLocation = NSClassFromString(@"OneSignalLocation");
84+
let oneSignalLocation = NSClassFromString(ONE_SIGNAL_LOCATION_CLASS_NAME);
8585
if (oneSignalLocation != nil && [oneSignalLocation respondsToSelector:@selector(onFocus:)]) {
8686
[OneSignalCoreHelper callSelector:@selector(onFocus:) onObject:oneSignalLocation withArg:YES];
8787
}
88-
let oneSignalInAppMessages = NSClassFromString(@"OneSignalInAppMessages");
88+
let oneSignalInAppMessages = NSClassFromString(ONE_SIGNAL_IN_APP_MESSAGES_CLASS_NAME);
8989
if (oneSignalInAppMessages != nil && [oneSignalInAppMessages respondsToSelector:@selector(onApplicationDidBecomeActive)]) {
9090
[oneSignalInAppMessages performSelector:@selector(onApplicationDidBecomeActive)];
9191
}
@@ -105,7 +105,7 @@ - (void)willResignActive {
105105
- (void)didEnterBackground {
106106
[OneSignalLog onesignalLog:ONE_S_LL_VERBOSE message:@"application/scene didEnterBackground"];
107107
if ([OneSignalConfigManager getAppId]) {
108-
let oneSignalLocation = NSClassFromString(@"OneSignalLocation");
108+
let oneSignalLocation = NSClassFromString(ONE_SIGNAL_LOCATION_CLASS_NAME);
109109
if (oneSignalLocation != nil && [oneSignalLocation respondsToSelector:@selector(onFocus:)]) {
110110
[OneSignalCoreHelper callSelector:@selector(onFocus:) onObject:oneSignalLocation withArg:NO];
111111
}

0 commit comments

Comments
 (0)