Skip to content

Commit 6dfb29c

Browse files
authored
Updates to setLocationShared (#602)
* Added extra logging in the prompt, public method, and request so we have better insight for what the status of the location sharing is * Clearing last location after attaching to payload and setting location shared to false * Demo app updates with new switches and buttons for setLocationShared, promptLocation, & promptForPushNotificationsWithUserResponse
1 parent 35ce218 commit 6dfb29c

File tree

6 files changed

+162
-86
lines changed

6 files changed

+162
-86
lines changed

iOS_SDK/OneSignalDevApp/OneSignalDevApp/AppDelegate.m

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
7474
settings:@{kOSSettingsKeyAutoPrompt: @false,
7575
kOSSettingsKeyInAppLaunchURL: @true}];
7676

77-
[OneSignal promptLocation];
77+
// [OneSignal setLocationShared:false];
78+
7879
[OneSignal sendTag:@"someKey1122" value:@"03222017"];
7980

8081
[OneSignal addPermissionObserver:self];

iOS_SDK/OneSignalDevApp/OneSignalDevApp/Base.lproj/Main.storyboard

Lines changed: 107 additions & 54 deletions
Large diffs are not rendered by default.

iOS_SDK/OneSignalDevApp/OneSignalDevApp/ViewController.h

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,26 @@
3333

3434
@interface ViewController : UIViewController <OSInAppMessageDelegate>
3535

36-
@property (weak, nonatomic) IBOutlet UITextField *appIdTextField;
37-
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicatorView;
38-
@property (weak, nonatomic) IBOutlet UISegmentedControl *consentSegmentedControl;
39-
@property (weak, nonatomic) IBOutlet UISegmentedControl *subscriptionSegmentedControl;
40-
@property (weak, nonatomic) IBOutlet UISegmentedControl *inAppMessagingSegmentedControl;
41-
@property (weak, nonatomic) IBOutlet UITextField *addTriggerKey;
42-
@property (weak, nonatomic) IBOutlet UITextField *addTriggerValue;
43-
@property (weak, nonatomic) IBOutlet UIButton *addTriggerButton;
44-
@property (weak, nonatomic) IBOutlet UITextField *removeTriggerKey;
45-
@property (weak, nonatomic) IBOutlet UITextField *getTriggerKey;
46-
@property (weak, nonatomic) IBOutlet UILabel *infoLabel;
47-
@property (weak, nonatomic) IBOutlet UITextField *externalIdTextField;
48-
@property (weak, nonatomic) IBOutlet UITextField *outcomeName;
49-
@property (weak, nonatomic) IBOutlet UITextField *outcomeValueName;
50-
@property (weak, nonatomic) IBOutlet UITextField *outcomeValue;
51-
@property (weak, nonatomic) IBOutlet UITextField *outcomeUniqueName;
52-
@property (weak, nonatomic) IBOutlet UITextView *result;
36+
@property (weak, nonatomic) IBOutlet UITextField *appIdTextField;
37+
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicatorView;
38+
@property (weak, nonatomic) IBOutlet UISegmentedControl *consentSegmentedControl;
39+
@property (weak, nonatomic) IBOutlet UISegmentedControl *subscriptionSegmentedControl;
40+
@property (weak, nonatomic) IBOutlet UISegmentedControl *locationSharedSegementedControl;
41+
@property (weak, nonatomic) IBOutlet UISegmentedControl *inAppMessagingSegmentedControl;
42+
@property (weak, nonatomic) IBOutlet UIButton *promptPushButton;
43+
@property (weak, nonatomic) IBOutlet UIButton *promptLocationButton;
44+
@property (weak, nonatomic) IBOutlet UITextField *addTriggerKey;
45+
@property (weak, nonatomic) IBOutlet UITextField *addTriggerValue;
46+
@property (weak, nonatomic) IBOutlet UIButton *addTriggerButton;
47+
@property (weak, nonatomic) IBOutlet UITextField *removeTriggerKey;
48+
@property (weak, nonatomic) IBOutlet UITextField *getTriggerKey;
49+
@property (weak, nonatomic) IBOutlet UILabel *infoLabel;
50+
@property (weak, nonatomic) IBOutlet UITextField *externalIdTextField;
51+
@property (weak, nonatomic) IBOutlet UITextField *outcomeName;
52+
@property (weak, nonatomic) IBOutlet UITextField *outcomeValueName;
53+
@property (weak, nonatomic) IBOutlet UITextField *outcomeValue;
54+
@property (weak, nonatomic) IBOutlet UITextField *outcomeUniqueName;
55+
@property (weak, nonatomic) IBOutlet UITextView *result;
5356

5457
@end
5558

iOS_SDK/OneSignalDevApp/OneSignalDevApp/ViewController.m

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ - (void)viewDidLoad {
4343

4444
self.subscriptionSegmentedControl.selectedSegmentIndex = (NSInteger) OneSignal.getPermissionSubscriptionState.subscriptionStatus.subscribed;
4545

46+
self.locationSharedSegementedControl.selectedSegmentIndex = (NSInteger) OneSignal.isLocationShared;
47+
4648
self.inAppMessagingSegmentedControl.selectedSegmentIndex = (NSInteger) ![OneSignal isInAppMessagingPaused];
4749

4850
self.appIdTextField.text = [AppDelegate getOneSignalAppId];
@@ -83,13 +85,6 @@ - (IBAction)getTriggersAction:(id)sender {
8385
}
8486

8587
- (IBAction)sendTagButton:(id)sender {
86-
// [self promptForNotificationsWithNativeiOS10Code];
87-
// [OneSignal registerForPushNotifications];
88-
89-
[OneSignal promptForPushNotificationsWithUserResponse:^(BOOL accepted) {
90-
NSLog(@"NEW SDK 2.5.0 METHDO: promptForPushNotificationsWithUserResponse: %d", accepted);
91-
}];
92-
9388
[OneSignal sendTag:@"key1"
9489
value:@"value1"
9590
onSuccess:^(NSDictionary *result) {
@@ -106,6 +101,18 @@ - (IBAction)sendTagButton:(id)sender {
106101
}];
107102
}
108103

104+
- (IBAction)promptPushAction:(UIButton *)sender {
105+
// [self promptForNotificationsWithNativeiOS10Code];
106+
// [OneSignal registerForPushNotifications];
107+
[OneSignal promptForPushNotificationsWithUserResponse:^(BOOL accepted) {
108+
NSLog(@"OneSignal Demo App promptForPushNotificationsWithUserResponse: %d", accepted);
109+
}];
110+
}
111+
112+
- (IBAction)promptLocationAction:(UIButton *)sender {
113+
[OneSignal promptLocation];
114+
}
115+
109116
- (IBAction)setEmailButtonPressed:(UIButton *)sender {
110117
[AppDelegate setOneSignalAppId:self.appIdTextField.text];
111118
}
@@ -135,6 +142,11 @@ - (IBAction)subscriptionSegmentedControlValueChanged:(UISegmentedControl *)sende
135142
[OneSignal setSubscription:(bool) sender.selectedSegmentIndex];
136143
}
137144

145+
- (IBAction)locationSharedSegmentedControlValueChanged:(UISegmentedControl *)sender {
146+
NSLog(@"View controller location sharing status: %i", (int) sender.selectedSegmentIndex);
147+
[OneSignal setLocationShared:(bool) sender.selectedSegmentIndex];
148+
}
149+
138150
- (IBAction)inAppMessagingSegmentedControlValueChanged:(UISegmentedControl *)sender {
139151
NSLog(@"View controller in app messaging paused: %i", (int) !sender.selectedSegmentIndex);
140152
[OneSignal pauseInAppMessages:(bool) !sender.selectedSegmentIndex];

iOS_SDK/OneSignalSDK/Source/OneSignal.m

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1381,11 +1381,16 @@ + (void)setSubscription:(BOOL)enable {
13811381

13821382

13831383
+ (void)setLocationShared:(BOOL)enable {
1384-
mShareLocation = enable;
1384+
mShareLocation = enable;
1385+
[OneSignal onesignal_Log:ONE_S_LL_VERBOSE message:[NSString stringWithFormat:@"setLocationShared called with status: %d", (int) enable]];
1386+
1387+
if (!enable) {
1388+
[OneSignal onesignal_Log:ONE_S_LL_VERBOSE message:@"setLocationShared set false, clearing last location!"];
1389+
[OneSignalLocation clearLastLocation];
1390+
}
13851391
}
13861392

13871393
+ (void) promptLocation {
1388-
13891394
// return if the user has not granted privacy permissions
13901395
if ([self shouldLogMissingPrivacyConsentErrorWithMethodName:@"promptLocation"])
13911396
return;
@@ -1397,7 +1402,6 @@ + (BOOL)isLocationShared {
13971402
return mShareLocation;
13981403
}
13991404

1400-
14011405
+ (void)handleDidFailRegisterForRemoteNotification:(NSError*)err {
14021406
waitingForApnsResponse = false;
14031407

@@ -1649,12 +1653,16 @@ + (void)registerUserInternal {
16491653

16501654

16511655
if (mShareLocation && [OneSignalLocation lastLocation]) {
1656+
[OneSignal onesignal_Log:ONE_S_LL_VERBOSE message:@"Attaching device location to 'on_session' request payload"];
16521657
dataDic[@"lat"] = [NSNumber numberWithDouble:[OneSignalLocation lastLocation]->cords.latitude];
16531658
dataDic[@"long"] = [NSNumber numberWithDouble:[OneSignalLocation lastLocation]->cords.longitude];
16541659
dataDic[@"loc_acc_vert"] = [NSNumber numberWithDouble:[OneSignalLocation lastLocation]->verticalAccuracy];
16551660
dataDic[@"loc_acc"] = [NSNumber numberWithDouble:[OneSignalLocation lastLocation]->horizontalAccuracy];
1656-
[OneSignalLocation clearLastLocation];
1657-
}
1661+
} else
1662+
[OneSignal onesignal_Log:ONE_S_LL_VERBOSE message:@"Not sending location with 'on_session' request payload, setLocationShared is false or lastLocation is null"];
1663+
1664+
// Clear last location after attaching data to payload or not
1665+
[OneSignalLocation clearLastLocation];
16581666

16591667
let pushDataDic = (NSMutableDictionary *)[dataDic mutableCopy];
16601668
pushDataDic[@"identifier"] = self.currentSubscriptionState.pushToken;

iOS_SDK/OneSignalSDK/Source/OneSignalLocation.m

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ + (void)clearLastLocation {
9797
}
9898
}
9999

100-
+ (void) getLocation:(bool)prompt {
100+
+ (void)getLocation:(bool)prompt {
101101
if (hasDelayed)
102102
[OneSignalLocation internalGetLocation:prompt];
103103
else {
@@ -217,7 +217,6 @@ + (void)internalGetLocation:(bool)prompt {
217217
#pragma mark CLLocationManagerDelegate
218218

219219
- (void)locationManager:(id)manager didUpdateLocations:(NSArray *)locations {
220-
221220
// return if the user has not granted privacy permissions or location shared is false
222221
if ([OneSignal requiresUserPrivacyConsent] || ![OneSignal isLocationShared])
223222
return;

0 commit comments

Comments
 (0)