Skip to content

Commit bc33bc4

Browse files
committed
Make Live Activities namespace
* Make Live Activities namespace `OneSignal.LiveActivities`
1 parent 63b034f commit bc33bc4

File tree

9 files changed

+90
-78
lines changed

9 files changed

+90
-78
lines changed

iOS_SDK/OneSignalDevApp/OneSignalDevApp/ViewController.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ - (IBAction)startAndEnterLiveActivity:(id)sender {
241241
if (activityId && activityId.length) {
242242
[LiveActivityController createActivityWithCompletionHandler:^(NSString * token) {
243243
if(token){
244-
[OneSignal enterLiveActivity:activityId withToken:token];
244+
[OneSignal.LiveActivities enter:activityId withToken:token];
245245
}
246246
}];
247247
}
@@ -251,7 +251,7 @@ - (IBAction)startAndEnterLiveActivity:(id)sender {
251251
}
252252
- (IBAction)exitLiveActivity:(id)sender {
253253
if (self.activityId.text && self.activityId.text.length) {
254-
[OneSignal exitLiveActivity:self.activityId.text];
254+
[OneSignal.LiveActivities exit:self.activityId.text];
255255
}
256256
}
257257

iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@
205205
918CB0301E73388E0067130F /* OneSignalFramework.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 912411F01E73342200E41FD7 /* OneSignalFramework.h */; };
206206
91C7725E1E7CCE1000D612D0 /* OneSignalInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 91C7725D1E7CCE1000D612D0 /* OneSignalInternal.h */; };
207207
91F60F7D1E80E4E400706E60 /* UncaughtExceptionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 91F60F7C1E80E4E400706E60 /* UncaughtExceptionHandler.m */; };
208-
944F7ED1296F9F0700AEBA54 /* OneSignalLiveActivityController.h in Headers */ = {isa = PBXBuildFile; fileRef = 944F7ED0296F892400AEBA54 /* OneSignalLiveActivityController.h */; };
208+
944F7ED1296F9F0700AEBA54 /* OneSignalLiveActivityController.h in Headers */ = {isa = PBXBuildFile; fileRef = 944F7ED0296F892400AEBA54 /* OneSignalLiveActivityController.h */; settings = {ATTRIBUTES = (Public, ); }; };
209209
944F7ED2296F9F1200AEBA54 /* OneSignalLiveActivityController.m in Sources */ = {isa = PBXBuildFile; fileRef = 944F7ECE296F890900AEBA54 /* OneSignalLiveActivityController.m */; };
210210
9D3300F523145AF3000F0A83 /* OneSignalViewHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D3300F223145AF3000F0A83 /* OneSignalViewHelper.m */; };
211211
9D3300F623145AF3000F0A83 /* OneSignalViewHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D3300F223145AF3000F0A83 /* OneSignalViewHelper.m */; };

iOS_SDK/OneSignalSDK/OneSignalCore/Source/API/OSRequests.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,14 @@ NS_ASSUME_NONNULL_END
5353
@end
5454

5555
@interface OSRequestLiveActivityEnter: OneSignalRequest
56-
+ (instancetype _Nonnull)withUserId:(NSString * _Nonnull)userId
56+
+ (instancetype _Nonnull)withSubscriptionId:(NSString * _Nonnull)subscriptionId
5757
appId:(NSString * _Nonnull)appId
5858
activityId:(NSString * _Nonnull)activityId
5959
token:(NSString * _Nonnull)token;
6060
@end
6161

6262
@interface OSRequestLiveActivityExit: OneSignalRequest
63-
+ (instancetype _Nonnull)withUserId:(NSString * _Nonnull)userId
63+
+ (instancetype _Nonnull)withSubscriptionId:(NSString * _Nonnull)subscriptionId
6464
appId:(NSString * _Nonnull)appId
6565
activityId:(NSString * _Nonnull)activityId;
6666
@end

iOS_SDK/OneSignalSDK/OneSignalCore/Source/API/OSRequests.m

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,14 @@ + (instancetype)trackUsageData:(NSString *)osUsageData appId:(NSString *)appId {
107107
@end
108108

109109
@implementation OSRequestLiveActivityEnter
110-
+ (instancetype)withUserId:(NSString * _Nonnull)userId
110+
+ (instancetype)withSubscriptionId:(NSString * _Nonnull)subscriptionId
111111
appId:(NSString * _Nonnull)appId
112112
activityId:(NSString * _Nonnull)activityId
113113
token:(NSString * _Nonnull)token {
114114
let request = [OSRequestLiveActivityEnter new];
115115
let params = [NSMutableDictionary new];
116116
params[@"push_token"] = token;
117-
params[@"subscription_id"] = userId; // pre-5.X.X subscription_id = player_id = userId
117+
params[@"subscription_id"] = subscriptionId; // pre-5.X.X subscription_id = player_id = userId
118118
params[@"device_type"] = @0;
119119
request.parameters = params;
120120
request.method = POST;
@@ -127,15 +127,15 @@ + (instancetype)withUserId:(NSString * _Nonnull)userId
127127
@end
128128

129129
@implementation OSRequestLiveActivityExit
130-
+ (instancetype)withUserId:(NSString * _Nonnull)userId
130+
+ (instancetype)withSubscriptionId:(NSString * _Nonnull)subscriptionId
131131
appId:(NSString * _Nonnull)appId
132132
activityId:(NSString * _Nonnull)activityId {
133133
let request = [OSRequestLiveActivityExit new];
134134
request.method = DELETE;
135135

136136
NSString *urlSafeActivityId = [activityId stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLUserAllowedCharacterSet]];
137137

138-
request.path = [NSString stringWithFormat:@"apps/%@/live_activities/%@/token/%@", appId, urlSafeActivityId, userId];
138+
request.path = [NSString stringWithFormat:@"apps/%@/live_activities/%@/token/%@", appId, urlSafeActivityId, subscriptionId];
139139

140140
return request;
141141
}

iOS_SDK/OneSignalSDK/Source/OneSignal.m

Lines changed: 10 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
#import "OneSignalJailbreakDetection.h"
3434
#import "OneSignalMobileProvision.h"
3535
#import "OneSignalHelper.h"
36-
#import "OneSignalLiveActivityController.h"
3736

3837
// #import "UNUserNotificationCenter+OneSignal.h" // TODO: This is in Notifications
3938
#import "OneSignalSelectorHelpers.h"
@@ -223,6 +222,8 @@ + (void)logout {
223222
[OneSignalUserManagerImpl.sharedInstance logout];
224223
}
225224

225+
#pragma mark: Namespaces
226+
226227
+ (Class<OSNotifications>)Notifications {
227228
return [OSNotificationsManager Notifications];
228229
}
@@ -235,10 +236,18 @@ + (void)logout {
235236
return [OneSignalInAppMessaging InAppMessages];
236237
}
237238

239+
+ (Class<OSLiveActivities>)LiveActivities {
240+
return [OneSignalLiveActivityController LiveActivities];
241+
}
242+
238243
+ (Class<OSLocation>)Location {
239244
return [OneSignalLocation Location];
240245
}
241246

247+
+ (Class<OSDebug>)Debug {
248+
return [OneSignalLog Debug];
249+
}
250+
242251
#pragma mark Initialization
243252

244253
/*
@@ -334,51 +343,6 @@ + (void)setProvidesNotificationSettingsView:(BOOL)providesView {
334343
}
335344
}
336345

337-
#pragma mark: LIVE ACTIVITIES
338-
339-
+ (void)enterLiveActivity:(NSString * _Nonnull)activityId withToken:(NSString * _Nonnull)token {
340-
341-
if ([OSPrivacyConsentController shouldLogMissingPrivacyConsentErrorWithMethodName:@"enterLiveActivity:"])
342-
return;
343-
344-
[self enterLiveActivity:activityId withToken:token withSuccess:nil withFailure:nil];
345-
}
346-
347-
+ (void)enterLiveActivity:(NSString * _Nonnull)activityId withToken:(NSString * _Nonnull)token withSuccess:(OSResultSuccessBlock _Nullable)successBlock withFailure:(OSFailureBlock _Nullable)failureBlock{
348-
349-
if ([OSPrivacyConsentController shouldLogMissingPrivacyConsentErrorWithMethodName:@"enterLiveActivity:onSuccess:onFailure:"]) {
350-
if (failureBlock) {
351-
NSError *error = [NSError errorWithDomain:@"com.onesignal.tags" code:0 userInfo:@{@"error" : @"Your application has called enterLiveActivity:onSuccess:onFailure: before the user granted privacy permission. Please call `consentGranted(bool)` in order to provide user privacy consent"}];
352-
failureBlock(error);
353-
}
354-
return;
355-
}
356-
357-
[OneSignalLiveActivityController enterLiveActivity:activityId appId:appId withToken:token withSuccess: successBlock withFailure: failureBlock];
358-
}
359-
360-
+ (void)exitLiveActivity:(NSString * _Nonnull)activityId{
361-
362-
if ([OSPrivacyConsentController shouldLogMissingPrivacyConsentErrorWithMethodName:@"enterLiveActivity:"])
363-
return;
364-
365-
[self exitLiveActivity:activityId withSuccess:nil withFailure:nil];
366-
}
367-
368-
+ (void)exitLiveActivity:(NSString * _Nonnull)activityId withSuccess:(OSResultSuccessBlock _Nullable)successBlock withFailure:(OSFailureBlock _Nullable)failureBlock{
369-
370-
if ([OSPrivacyConsentController shouldLogMissingPrivacyConsentErrorWithMethodName:@"exitLiveActivity:onSuccess:onFailure:"]) {
371-
if (failureBlock) {
372-
NSError *error = [NSError errorWithDomain:@"com.onesignal.tags" code:0 userInfo:@{@"error" : @"Your application has called exitLiveActivity:onSuccess:onFailure: before the user granted privacy permission. Please call `consentGranted(bool)` in order to provide user privacy consent"}];
373-
failureBlock(error);
374-
}
375-
return;
376-
}
377-
378-
[OneSignalLiveActivityController exitLiveActivity:activityId appId:appId withSuccess: successBlock withFailure: failureBlock];
379-
}
380-
381-
382346
#pragma mark Initialization
383347

384348
+ (BOOL)shouldStartNewSession {
@@ -790,11 +754,6 @@ + (BOOL)sendSessionEndOutcomes:(NSNumber*)totalTimeActive params:(OSFocusCallPar
790754
return true;
791755
}
792756

793-
#pragma mark Logging
794-
+ (Class<OSDebug>)Debug {
795-
return [OneSignalLog Debug];
796-
}
797-
798757
@end
799758

800759
@implementation OneSignal (SessionStatusDelegate)

iOS_SDK/OneSignalSDK/Source/OneSignalFramework.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
#import <OneSignalOSCore/OneSignalOSCore.h>
5050
#import <OneSignalNotifications/OneSignalNotifications.h>
5151
#import "OneSignalInAppMessaging.h"
52+
#import "OneSignalLiveActivityController.h"
5253
#import "OneSignalLocation.h"
5354

5455
#pragma clang diagnostic push
@@ -85,11 +86,7 @@ NS_SWIFT_NAME(login(externalId:token:));
8586
+ (void)setProvidesNotificationSettingsView:(BOOL)providesView;
8687

8788
#pragma mark Live Activity
88-
+ (void)enterLiveActivity:(NSString * _Nonnull)activityId withToken:(NSString * _Nonnull)token;
89-
+ (void)enterLiveActivity:(NSString * _Nonnull)activityId withToken:(NSString * _Nonnull)token withSuccess:(OSResultSuccessBlock _Nullable)successBlock withFailure:(OSFailureBlock _Nullable)failureBlock;
90-
91-
+ (void)exitLiveActivity:(NSString * _Nonnull)activityId;
92-
+ (void)exitLiveActivity:(NSString * _Nonnull)activityId withSuccess:(OSResultSuccessBlock _Nullable)successBlock withFailure:(OSFailureBlock _Nullable)failureBlock;
89+
+ (Class<OSLiveActivities>)LiveActivities NS_REFINED_FOR_SWIFT;
9390

9491
#pragma mark Logging
9592
+ (Class<OSDebug>)Debug NS_REFINED_FOR_SWIFT;

iOS_SDK/OneSignalSDK/Source/OneSignalLiveActivityController.h

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,18 @@
3030

3131
#import <OneSignalUser/OneSignalUser-Swift.h>
3232

33-
@interface OneSignalLiveActivityController: NSObject<OSPushSubscriptionObserver>
34-
35-
+ (void)enterLiveActivity:(NSString * _Nonnull)activityId appId:(NSString *)appId withToken:(NSString * _Nonnull)token withSuccess:(OSResultSuccessBlock _Nullable)successBlock withFailure:(OSFailureBlock _Nullable)failureBlock;
36-
+ (void)exitLiveActivity:(NSString * _Nonnull)activityId appId:(NSString *)appId withSuccess:(OSResultSuccessBlock _Nullable)successBlock withFailure:(OSFailureBlock _Nullable)failureBlock;
37-
33+
/**
34+
Public API for the LiveActivities namespace.
35+
*/
36+
@protocol OSLiveActivities <NSObject>
37+
+ (void)enter:(NSString * _Nonnull)activityId withToken:(NSString * _Nonnull)token;
38+
+ (void)enter:(NSString * _Nonnull)activityId withToken:(NSString * _Nonnull)token withSuccess:(OSResultSuccessBlock _Nullable)successBlock withFailure:(OSFailureBlock _Nullable)failureBlock;
39+
+ (void)exit:(NSString * _Nonnull)activityId;
40+
+ (void)exit:(NSString * _Nonnull)activityId withSuccess:(OSResultSuccessBlock _Nullable)successBlock withFailure:(OSFailureBlock _Nullable)failureBlock;
41+
@end
3842

43+
@interface OneSignalLiveActivityController: NSObject <OSLiveActivities, OSPushSubscriptionObserver>
44+
+ (Class<OSLiveActivities>_Nonnull)LiveActivities;
3945
@end
4046

4147
#endif /* OneSignalLiveActivityController_h */

iOS_SDK/OneSignalSDK/Source/OneSignalLiveActivityController.m

Lines changed: 54 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@
2626
*/
2727

2828
#import <Foundation/Foundation.h>
29-
#import <OneSignalFramework.h>
30-
#import <OneSignalUser/OneSignalUser-Swift.h>
29+
#import <OneSignalCore/OneSignalCore.h>
3130
#import "OneSignalLiveActivityController.h"
3231

3332
@interface OSPendingLiveActivityUpdate: NSObject
@@ -76,6 +75,11 @@ + (OneSignalLiveActivityController *)sharedInstance {
7675
});
7776
return sharedInstance;
7877
}
78+
79+
+ (Class<OSLiveActivities>)LiveActivities {
80+
return self;
81+
}
82+
7983
+ (void)initialize {
8084
subscriptionId = OneSignalUserManagerImpl.sharedInstance.pushSubscriptionId;
8185
OneSignalLiveActivityController *shared = OneSignalLiveActivityController.sharedInstance;
@@ -89,19 +93,40 @@ - (void)onOSPushSubscriptionChangedWithStateChanges:(OSPushSubscriptionStateChan
8993
}
9094
}
9195

96+
+ (void)enter:(NSString * _Nonnull)activityId withToken:(NSString * _Nonnull)token {
97+
98+
if ([OSPrivacyConsentController shouldLogMissingPrivacyConsentErrorWithMethodName:@"enterLiveActivity:"])
99+
return;
100+
101+
[self enter:activityId withToken:token withSuccess:nil withFailure:nil];
102+
}
103+
104+
+ (void)enter:(NSString * _Nonnull)activityId withToken:(NSString * _Nonnull)token withSuccess:(OSResultSuccessBlock _Nullable)successBlock withFailure:(OSFailureBlock _Nullable)failureBlock{
105+
106+
if ([OSPrivacyConsentController shouldLogMissingPrivacyConsentErrorWithMethodName:@"enterLiveActivity:onSuccess:onFailure:"]) {
107+
if (failureBlock) {
108+
NSError *error = [NSError errorWithDomain:@"OneSignal.LiveActivities" code:0 userInfo:@{@"error" : @"Your application has called enterLiveActivity:onSuccess:onFailure: before the user granted privacy permission. Please call `consentGranted(bool)` in order to provide user privacy consent"}];
109+
failureBlock(error);
110+
}
111+
return;
112+
}
113+
114+
[self enterLiveActivity:activityId appId:[OneSignalConfigManager getAppId] withToken:token withSuccess: successBlock withFailure: failureBlock];
115+
}
116+
92117
+ (void)enterLiveActivity:(NSString * _Nonnull)activityId appId:(NSString *)appId withToken:(NSString * _Nonnull)token withSuccess:(OSResultSuccessBlock _Nullable)successBlock withFailure:(OSFailureBlock _Nullable)failureBlock{
93118
[OneSignalLog onesignalLog:ONE_S_LL_VERBOSE message:[NSString stringWithFormat:@"enterLiveActivity called with activityId: %@ token: %@", activityId, token]];
94119

95120
if ([OSPrivacyConsentController shouldLogMissingPrivacyConsentErrorWithMethodName:@"enterLiveActivity:onSuccess:onFailure:"]) {
96121
if (failureBlock) {
97-
NSError *error = [NSError errorWithDomain:@"com.onesignal.tags" code:0 userInfo:@{@"error" : @"Your application has called enterLiveActivity:onSuccess:onFailure: before the user granted privacy permission. Please call `consentGranted(bool)` in order to provide user privacy consent"}];
122+
NSError *error = [NSError errorWithDomain:@"OneSignal.LiveActivities" code:0 userInfo:@{@"error" : @"Your application has called enterLiveActivity:onSuccess:onFailure: before the user granted privacy permission. Please call `consentGranted(bool)` in order to provide user privacy consent"}];
98123
failureBlock(error);
99124
}
100125
return;
101126
}
102127

103128
if(subscriptionId) {
104-
[OneSignalClient.sharedClient executeRequest:[OSRequestLiveActivityEnter withUserId:subscriptionId appId:appId activityId:activityId token:token]
129+
[OneSignalClient.sharedClient executeRequest:[OSRequestLiveActivityEnter withSubscriptionId:subscriptionId appId:appId activityId:activityId token:token]
105130
onSuccess:^(NSDictionary *result) {
106131
[self callSuccessBlockOnMainThread:successBlock withResult:result];
107132
} onFailure:^(NSError *error) {
@@ -112,18 +137,39 @@ + (void)enterLiveActivity:(NSString * _Nonnull)activityId appId:(NSString *)appI
112137
}
113138
}
114139

140+
+ (void)exit:(NSString * _Nonnull)activityId{
141+
142+
if ([OSPrivacyConsentController shouldLogMissingPrivacyConsentErrorWithMethodName:@"enterLiveActivity:"])
143+
return;
144+
145+
[self exit:activityId withSuccess:nil withFailure:nil];
146+
}
147+
148+
+ (void)exit:(NSString * _Nonnull)activityId withSuccess:(OSResultSuccessBlock _Nullable)successBlock withFailure:(OSFailureBlock _Nullable)failureBlock{
149+
150+
if ([OSPrivacyConsentController shouldLogMissingPrivacyConsentErrorWithMethodName:@"exitLiveActivity:onSuccess:onFailure:"]) {
151+
if (failureBlock) {
152+
NSError *error = [NSError errorWithDomain:@"OneSignal.LiveActivities" code:0 userInfo:@{@"error" : @"Your application has called exitLiveActivity:onSuccess:onFailure: before the user granted privacy permission. Please call `consentGranted(bool)` in order to provide user privacy consent"}];
153+
failureBlock(error);
154+
}
155+
return;
156+
}
157+
158+
[self exitLiveActivity:activityId appId:[OneSignalConfigManager getAppId] withSuccess: successBlock withFailure: failureBlock];
159+
}
160+
115161
+ (void)exitLiveActivity:(NSString * _Nonnull)activityId appId:(NSString *)appId withSuccess:(OSResultSuccessBlock _Nullable)successBlock withFailure:(OSFailureBlock _Nullable)failureBlock{
116162
[OneSignalLog onesignalLog:ONE_S_LL_VERBOSE message:[NSString stringWithFormat:@"exitLiveActivity called with activityId: %@", activityId]];
117163
if ([OSPrivacyConsentController shouldLogMissingPrivacyConsentErrorWithMethodName:@"exitLiveActivity:onSuccess:onFailure:"]) {
118164
if (failureBlock) {
119-
NSError *error = [NSError errorWithDomain:@"com.onesignal.tags" code:0 userInfo:@{@"error" : @"Your application has called exitLiveActivity:onSuccess:onFailure: before the user granted privacy permission. Please call `consentGranted(bool)` in order to provide user privacy consent"}];
165+
NSError *error = [NSError errorWithDomain:@"OneSignal.LiveActivities" code:0 userInfo:@{@"error" : @"Your application has called exitLiveActivity:onSuccess:onFailure: before the user granted privacy permission. Please call `consentGranted(bool)` in order to provide user privacy consent"}];
120166
failureBlock(error);
121167
}
122168
return;
123169
}
124170

125171
if(subscriptionId) {
126-
[OneSignalClient.sharedClient executeRequest:[OSRequestLiveActivityExit withUserId:subscriptionId appId:appId activityId:activityId]
172+
[OneSignalClient.sharedClient executeRequest:[OSRequestLiveActivityExit withSubscriptionId:subscriptionId appId:appId activityId:activityId]
127173
onSuccess:^(NSDictionary *result) {
128174
[self callSuccessBlockOnMainThread:successBlock withResult:result];
129175
} onFailure:^(NSError *error) {
@@ -175,7 +221,7 @@ + (void)executePendingLiveActivityUpdates {
175221
OSPendingLiveActivityUpdate * updateToProcess = [pendingLiveActivityUpdates objectAtIndex:0];
176222
[pendingLiveActivityUpdates removeObjectAtIndex: 0];
177223
if (updateToProcess.isEnter) {
178-
[OneSignalClient.sharedClient executeRequest:[OSRequestLiveActivityEnter withUserId:subscriptionId appId:updateToProcess.appId activityId:updateToProcess.activityId token:updateToProcess.token]
224+
[OneSignalClient.sharedClient executeRequest:[OSRequestLiveActivityEnter withSubscriptionId:subscriptionId appId:updateToProcess.appId activityId:updateToProcess.activityId token:updateToProcess.token]
179225
onSuccess:^(NSDictionary *result) {
180226
[self callSuccessBlockOnMainThread:updateToProcess.successBlock withResult:result];
181227
[self executePendingLiveActivityUpdates];
@@ -184,7 +230,7 @@ + (void)executePendingLiveActivityUpdates {
184230
[self executePendingLiveActivityUpdates];
185231
}];
186232
} else {
187-
[OneSignalClient.sharedClient executeRequest:[OSRequestLiveActivityExit withUserId:subscriptionId appId:updateToProcess.appId activityId:updateToProcess.activityId]
233+
[OneSignalClient.sharedClient executeRequest:[OSRequestLiveActivityExit withSubscriptionId:subscriptionId appId:updateToProcess.appId activityId:updateToProcess.activityId]
188234
onSuccess:^(NSDictionary *result) {
189235
[self callSuccessBlockOnMainThread:updateToProcess.successBlock withResult:result];
190236
[self executePendingLiveActivityUpdates];

iOS_SDK/OneSignalSDK/Source/OneSignalSwiftInterface.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ public extension OneSignal {
5555
static var Location: OSLocation.Type {
5656
return __location()
5757
}
58+
59+
static var LiveActivities: OSLiveActivities.Type {
60+
return __liveActivities()
61+
}
5862

5963
static var requiresPrivacyConsent: Bool {
6064
get {

0 commit comments

Comments
 (0)