Skip to content

EventKit watchOS xcode13.0 beta1

tj_devel709 edited this page Jun 25, 2021 · 3 revisions

#EventKit.framework https://github.com/xamarin/xamarin-macios/pull/12022

diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKError.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKError.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKError.h	2021-03-16 05:20:27.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKError.h	2021-06-02 12:44:32.000000000 -0400
@@ -98,6 +98,7 @@
     EKErrorSourceMismatch,
     EKErrorNotificationCollectionMismatch,
     EKErrorNotificationSavedWithoutCollection,
+    EKErrorReminderAlarmContainsEmailOrUrl,
     
     EKErrorLast // used internally
 };
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKParticipant.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKParticipant.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKParticipant.h	2021-03-16 05:20:27.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKParticipant.h	2021-06-02 07:36:08.000000000 -0400
@@ -10,9 +10,11 @@
 #import <EventKit/EKTypes.h>
 
 #if TARGET_OS_IPHONE
-#if !TARGET_OS_WATCH && !TARGET_OS_MACCATALYST
+#if !TARGET_OS_WATCH
 #import <AddressBook/ABPerson.h>
 #endif
+typedef CFTypeRef ABRecordRef;
+typedef CFTypeRef ABAddressBookRef;
 #else
 @class ABPerson, ABAddressBook;
 #endif
@@ -82,7 +84,7 @@
 @property(nonatomic, readonly) NSPredicate *contactPredicate NS_AVAILABLE(10_11, 9_0);
 
 #if TARGET_OS_IPHONE
-#if !TARGET_OS_WATCH && !TARGET_OS_MACCATALYST
+#if !TARGET_OS_WATCH
 /*!
  @method     ABRecordWithAddressBook
  @abstract   Returns the ABRecordRef that represents this participant.
@@ -90,7 +92,7 @@
  if a match can be found based on email address in the address book
  passed. If we cannot find the participant, nil is returned.
  */
-- (nullable ABRecordRef)ABRecordWithAddressBook:(ABAddressBookRef)addressBook NS_DEPRECATED_IOS(4_0, 9_0, "Use contactPredicate instead") CF_RETURNS_NOT_RETAINED;
+- (nullable ABRecordRef)ABRecordWithAddressBook:(ABAddressBookRef)addressBook API_AVAILABLE(ios(4.0), macCatalyst(14.0)) API_DEPRECATED("Use contactPredicate instead", ios(4.0, 9.0)) CF_RETURNS_NOT_RETAINED;
 #endif
 #else
 /*!
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKVirtualConferenceDescriptor.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKVirtualConferenceDescriptor.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKVirtualConferenceDescriptor.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKVirtualConferenceDescriptor.h	2021-06-02 07:34:25.000000000 -0400
@@ -0,0 +1,109 @@
+//
+//  EKVirtualConferenceDescriptor.h
+//  EventKit
+//
+//  Copyright © 2021 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+
+typedef NSString * EKVirtualConferenceRoomTypeIdentifier NS_SWIFT_BRIDGED_TYPEDEF API_AVAILABLE(macos(12.0), ios(15.0));
+
+
+/*!
+    @class      EKVirtualConferenceRoomTypeDescriptor
+    @abstract   Describes a virtual conference room type.
+*/
+API_AVAILABLE(macos(12.0), ios(15.0))
+@interface EKVirtualConferenceRoomTypeDescriptor : NSObject
+
+/*!
+    @method     initWithTitle:identifier:
+    @abstract   Initializes an instance of EKVirtualConferenceRoomTypeDescriptor.
+    @param      title       A user-readable title describing this room type. This string will be
+                            displayed in UI.
+    @param      identifier  An EKVirtualConferenceRoomTypeIdentifier that your extension can use to 
+                            distinguish this room type from the other room types that your extension
+                            provides. This is chosen by your extension and is passed back to your
+                            extension if the user chooses to create a virtual conference of the 
+                            associated room type.
+*/
+- (instancetype)initWithTitle:(NSString *)title identifier:(EKVirtualConferenceRoomTypeIdentifier)identifier NS_DESIGNATED_INITIALIZER;
+
+@property (readonly, nonatomic, copy) NSString *title;
+@property (readonly, nonatomic, copy) EKVirtualConferenceRoomTypeIdentifier identifier;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+
+/*!
+    @class      EKVirtualConferenceURLDescriptor
+    @abstract   Describes a URL that can be used to join a virtual conference.
+*/
+API_AVAILABLE(macos(12.0), ios(15.0))
+@interface EKVirtualConferenceURLDescriptor : NSObject
+
+/*!
+    @method     initWithTitle:URL:
+    @abstract   Initializes an instance of EKVirtualConferenceURLDescriptor.
+    @param      title       A user-readable title describing this URL. This string may be displayed
+                            in the UI. This string is optional and may be left nil. If your virtual
+                            conference only has one way to join it, then you can probably leave this
+                            nil. However, if your virtual conference has multiple ways to join it, 
+                            you should have a title for each URL so that users can better understand
+                            what each URL represents.
+    @param      URL         A URL that, when opened, will join the virtual conference.
+*/
+- (instancetype)initWithTitle:(nullable NSString *)title URL:(NSURL *)URL NS_DESIGNATED_INITIALIZER;
+
+@property (readonly, nonatomic, copy, nullable) NSString *title;
+@property (readonly, nonatomic, copy) NSURL *URL;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+
+/*!
+    @class      EKVirtualConferenceDescriptor
+    @abstract   Describes a virtual conference.
+*/
+API_AVAILABLE(macos(12.0), ios(15.0))
+@interface EKVirtualConferenceDescriptor : NSObject
+
+/*!
+    @method     initWithTitle:URLDescriptors:conferenceDetails:
+    @abstract   Initializes an instance of EKVirtualConferenceDescriptor.
+    @param      title               A user-readable title describing this virtual conference. This string
+                                    may be displayed in the UI. This string is optional and may be left nil.
+    @param      URLDescriptors      An array of EKVirtualConferenceURLDescriptors, representing the various
+                                    ways to join your virtual conference. Do not pass an empty array. Your
+                                    array should be ordered such that the most preferred method of joining
+                                    the virtual conference comes first in the array, with subsequent methods
+                                    of joining appearing in descending priority.
+    @param      conferenceDetails   A user-readable string containing any other information you wish to 
+                                    communicate to the user about this virtual conference. This string will
+                                    be displayed in the UI. This argument is optional and may be left nil.
+*/
+- (instancetype)initWithTitle:(nullable NSString *)title
+               URLDescriptors:(NSArray<EKVirtualConferenceURLDescriptor *> *)URLDescriptors
+            conferenceDetails:(nullable NSString *)conferenceDetails NS_DESIGNATED_INITIALIZER;
+
+@property (readonly, nonatomic, copy, nullable) NSString *title;
+@property (readonly, nonatomic, copy) NSArray<EKVirtualConferenceURLDescriptor *> *URLDescriptors;
+@property (readonly, nonatomic, copy, nullable) NSString *conferenceDetails;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKVirtualConferenceProvider.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKVirtualConferenceProvider.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKVirtualConferenceProvider.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EKVirtualConferenceProvider.h	2021-06-02 07:36:08.000000000 -0400
@@ -0,0 +1,63 @@
+//
+//  EKVirtualConferenceProvider.h
+//  EventKit
+//
+//  Copyright © 2021 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <EventKit/EKVirtualConferenceDescriptor.h>
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+
+/*!
+    @class      EKVirtualConferenceProvider
+    @abstract   Provides virtual conferences to Calendar.
+    @discussion Subclass this class in your extension and override the below two methods.
+*/
+
+API_AVAILABLE(macos(12.0), ios(15.0))
+@interface EKVirtualConferenceProvider : NSObject <NSExtensionRequestHandling>
+
+/*!
+    @method     fetchAvailableRoomTypesWithCompletionHandler:
+    @abstract   Called to determine the available virtual conference room types that the user can add to a calendar event.
+    @discussion Your extension must override this method in order to present virtual conference options in Calendar's UI.
+                When your extension has finished determining what room types are available, call the completion handler with
+                an array of EKVirtualConferenceRoomTypeDescriptors. Most extensions will only need to provide one room type.
+    @param      completionHandler   A block to call when your extension has finished retrieving available room types. If 
+                                    your extension is unable to provide any room types at this time, call this block with nil
+                                    for the first argument and an appropriate NSError object for the second argument. Do not 
+                                    call this block with nil for both arguments. Similarly, do not call this block with both
+                                    a non-nil array and a non-nil NSError. This block must be called when your extension has
+                                    finished its work.
+*/
+
+- (void)fetchAvailableRoomTypesWithCompletionHandler:(void(^)(NSArray<EKVirtualConferenceRoomTypeDescriptor *> * _Nullable, NSError * _Nullable))completionHandler;
+
+/*!
+    @method     fetchVirtualConferenceForIdentifier:completionHandler:
+    @abstract   Called to fetch the specific virtual conference details to add to an event.
+    @discussion Your extension must override this method in order to add virtual conferences to calendar events.
+                When your extension has finished retrieving the requested virtual conference details, create an 
+                EKVirtualConferenceDescriptor object containing the virtual conference details and call the completion handler
+                with the EKVirtualConferenceDescriptor object as the first argument.
+    @param      identifier          Represents the room type that the user chose. This is the same identifier that your extension
+                                    chose for this EKVirtualConferenceRoomTypeDescriptor in an earlier call to
+                                    fetchAvailableRoomTypesWithCompletionHandler:.
+    @param      completionHandler   A block to call when your extension has finished retrieving the virtual conference details.
+                                    If your extension is unable to retrieve virtual conference details at this time (for example,
+                                    because network access is not available), call this block with nil for the first argument and
+                                    an appropriate NSError object for the second argument. Do not call this block with nil for
+                                    both arguments. Similarly, do not call this block with both a non-nil
+                                    EKVirtualConferenceDescriptor and a non-nil NSError.  This block must be called when your
+                                    extension has finished its work.
+*/
+- (void)fetchVirtualConferenceForIdentifier:(EKVirtualConferenceRoomTypeIdentifier)identifier completionHandler:(void(^)(EKVirtualConferenceDescriptor * _Nullable, NSError * _Nullable))completionHandler;
+
+@end
+
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EventKit.apinotes /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EventKit.apinotes
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EventKit.apinotes	2021-03-16 02:01:29.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EventKit.apinotes	2021-06-01 20:45:53.000000000 -0400
@@ -64,3 +64,10 @@
     - Name:         title
       PropertyKind: Instance
       Nullability:  N
+- Version: 5
+  Classes:
+  - Name: EKVirtualConferenceProvider
+    Methods:
+    - Selector:     'fetchVirtualConferenceForIdentifier:completionHandler:'
+      MethodKind:   Instance
+      SwiftName:    'fetchVirtualConference(identifier:completionHandler:)'
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EventKit.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EventKit.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EventKit.h	2021-03-16 05:15:41.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/EventKit.framework/Headers/EventKit.h	2021-06-01 20:46:26.000000000 -0400
@@ -23,6 +23,7 @@
 #import <EventKit/EKReminder.h>
 #import <EventKit/EKSource.h>
 #import <EventKit/EKStructuredLocation.h>
+#import <EventKit/EKVirtualConferenceProvider.h>
 
 #endif //#if __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED
 
Clone this wiki locally