Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SharedWithYouCore] Add new framework for xcode14. #15634

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/frameworks.sources
Original file line number Diff line number Diff line change
Expand Up @@ -2070,6 +2070,7 @@ MACOS_FRAMEWORKS = \
ScriptingBridge \
SearchKit \
Security \
SharedWithYouCore \
Social \
Speech \
SystemConfiguration \
Expand Down Expand Up @@ -2176,6 +2177,7 @@ IOS_FRAMEWORKS = \
ScreenTime \
Security \
SensorKit \
SharedWithYouCore \
Social \
Speech \
SystemConfiguration \
Expand Down Expand Up @@ -2266,6 +2268,7 @@ TVOS_FRAMEWORKS = \
PhotosUI \
ReplayKit \
Security \
SharedWithYouCore \
SystemConfiguration \
TVMLKit \
TVUIKit \
Expand Down Expand Up @@ -2362,6 +2365,7 @@ MACCATALYST_FRAMEWORKS = \
ScreenTime \
Security \
SensorKit \
SharedWithYouCore \
Social \
Speech \
SystemConfiguration \
Expand Down
264 changes: 264 additions & 0 deletions src/sharedwithyoucore.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,264 @@
//
// SharedWithYouCore C# bindings
//
// Authors:
// Manuel de la Pena Saenz <mandel@microsoft.com>
//
// Copyright 2022 Microsoft Corporation All rights reserved.
//

using System;

using AVFoundation;
using CoreFoundation;
using Foundation;
using ObjCRuntime;

#if !NET
using NativeHandle = System.IntPtr;
#endif

namespace SharedWithYouCore {

[NoWatch, TV (16,0), Mac (13,0), iOS (16,0), MacCatalyst (16,0)]
[BaseType (typeof (NSObject))]
interface SWAction : NSCopying, NSSecureCoding {
[Export ("uuid")]
NSUuid Uuid { get; }

[Export ("complete")]
bool Complete { [Bind ("isComplete")] get; }

[Export ("fulfill")]
void Fulfill ();

[Export ("fail")]
void Fail ();
}

interface ISWCollaborationActionHandler {}

[NoWatch, TV (16,0), Mac (13,0), iOS (16,0), MacCatalyst (16,0)]
[Protocol]
[DisableDefaultCtor]
interface SWCollaborationActionHandler {
[Abstract]
[Export ("collaborationCoordinator:handleStartCollaborationAction:")]
void HandleStartCollaborationAction (SWCollaborationCoordinator coordinator, SWStartCollaborationAction action);

[Abstract]
[Export ("collaborationCoordinator:handleUpdateCollaborationParticipantsAction:")]
void HandleUpdateCollaborationParticipantsAction (SWCollaborationCoordinator coordinator, SWUpdateCollaborationParticipantsAction action);
}

[NoWatch, TV (16,0), Mac (13,0), iOS (16,0), MacCatalyst (16,0)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface SWCollaborationCoordinator {
[Static]
[Export ("sharedCoordinator", ArgumentSemantic.Strong)]
SWCollaborationCoordinator SharedCoordinator { get; }

[NullAllowed, Export ("actionHandler", ArgumentSemantic.Weak)]
ISWCollaborationActionHandler ActionHandler { get; set; }
}

[NoWatch, TV (16,0), Mac (13,0), iOS (16,0), MacCatalyst (16,0)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface SWCollaborationOption : NSCopying, NSSecureCoding {
[Export ("title")]
string Title { get; set; }

[Export ("identifier")]
string Identifier { get; }

[Export ("subtitle")]
string Subtitle { get; set; }

[Export ("selected")]
bool Selected { [Bind ("isSelected")] get; set; }

[Export ("requiredOptionsIdentifiers", ArgumentSemantic.Copy)]
string[] RequiredOptionsIdentifiers { get; set; }

[Export ("initWithTitle:identifier:")]
[DesignatedInitializer]
NativeHandle Constructor (string title, string identifier);

[Static]
[Export ("optionWithTitle:identifier:")]
SWCollaborationOption Create (string title, string identifier);
}

[NoWatch, TV (16,0), Mac (13,0), iOS (16,0), MacCatalyst (16,0)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface SWCollaborationOptionsGroup : NSCopying, NSSecureCoding {

[Field ("UTCollaborationOptionsTypeIdentifier")]
NSString TypeIdentifier { get; }

[Export ("title")]
string Title { get; set; }

[Export ("identifier")]
string Identifier { get; }

[Export ("footer")]
string Footer { get; set; }

[Export ("options", ArgumentSemantic.Copy)]
SWCollaborationOption[] Options { get; set; }

[Export ("initWithIdentifier:options:")]
[DesignatedInitializer]
NativeHandle Constructor (string identifier, SWCollaborationOption[] options);

[Static]
[Export ("optionsGroupWithIdentifier:options:")]
SWCollaborationOptionsGroup Create (string identifier, SWCollaborationOption[] options);
}

[NoWatch, TV (16,0), Mac (13,0), iOS (16,0), MacCatalyst (16,0)]
[BaseType (typeof (SWCollaborationOptionsGroup))]
interface SWCollaborationOptionsPickerGroup {
mandel-macaque marked this conversation as resolved.
Show resolved Hide resolved

[Export ("initWithIdentifier:options:")]
[DesignatedInitializer]
NativeHandle Constructor (string identifier, SWCollaborationOption[] options);

[Export ("selectedOptionIdentifier", ArgumentSemantic.Strong)]
string SelectedOptionIdentifier { get; set; }
}

[NoWatch, TV (16,0), Mac (13,0), iOS (16,0), MacCatalyst (16,0)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface SWCollaborationShareOptions : NSCopying, NSSecureCoding {
[Export ("optionsGroups", ArgumentSemantic.Copy)]
SWCollaborationOptionsGroup[] OptionsGroups { get; set; }

[Export ("summary")]
string Summary { get; set; }

[Export ("initWithOptionsGroups:summary:")]
[DesignatedInitializer]
NativeHandle Constructor (SWCollaborationOptionsGroup[] optionsGroups, string summary);

[Export ("initWithOptionsGroups:")]
NativeHandle Constructor (SWCollaborationOptionsGroup[] optionsGroups);

[Static]
[Export ("shareOptionsWithOptionsGroups:summary:")]
SWCollaborationShareOptions Create (SWCollaborationOptionsGroup[] optionsGroups, string summary);

[Static]
[Export ("shareOptionsWithOptionsGroups:")]
SWCollaborationShareOptions Create (SWCollaborationOptionsGroup[] optionsGroups);
}

[NoWatch, TV (16,0), Mac (13,0), iOS (16,0), MacCatalyst (16,0)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface SWCollaborationMetadata : NSSecureCoding, NSCopying, NSMutableCopying
#if IOS
, NSItemProviderReading
, NSItemProviderWriting
#endif
{
[Export ("collaborationIdentifier")]
string CollaborationIdentifier { get; }

[Export ("localIdentifier")]
string LocalIdentifier { get; }

[NullAllowed, Export ("title")]
string Title { get; set; }

[NullAllowed, Export ("defaultShareOptions", ArgumentSemantic.Copy)]
SWCollaborationShareOptions DefaultShareOptions { get; set; }

[NullAllowed, Export ("userSelectedShareOptions", ArgumentSemantic.Copy)]
SWCollaborationShareOptions UserSelectedShareOptions { get; set; }

[NullAllowed, Export ("initiatorHandle")]
string InitiatorHandle { get; set; }

[NullAllowed, Export ("initiatorNameComponents", ArgumentSemantic.Strong)]
NSPersonNameComponents InitiatorNameComponents { get; set; }

[Export ("initWithLocalIdentifier:")]
NativeHandle Constructor (string localIdentifier);
}

[NoWatch, TV (16,0), Mac (13,0), iOS (16,0), MacCatalyst (16,0)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface SWPerson : NSSecureCoding {
[Export ("initWithHandle:identity:displayName:thumbnailImageData:")]
NativeHandle Constructor ([NullAllowed] string handle, [NullAllowed] SWPersonIdentity identity, string displayName, [NullAllowed] NSData thumbnailImageData);
}

[NoWatch, TV (16,0), Mac (13,0), iOS (16,0), MacCatalyst (16,0)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface SWPersonIdentity : NSSecureCoding, NSCopying {
[Export ("rootHash", ArgumentSemantic.Copy)]
NSData RootHash { get; }

[Export ("initWithRootHash:")]
NativeHandle Constructor (NSData rootHash);
}

[NoWatch, TV (16,0), Mac (13,0), iOS (16,0), MacCatalyst (16,0)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface SWPersonIdentityProof : NSSecureCoding, NSCopying {
[Export ("inclusionHashes", ArgumentSemantic.Copy)]
NSData[] InclusionHashes { get; }

[Export ("publicKey", ArgumentSemantic.Copy)]
NSData PublicKey { get; }

[Export ("publicKeyIndex")]
nuint PublicKeyIndex { get; }
}

[NoWatch, TV (16,0), Mac (13,0), iOS (16,0)]
[BaseType (typeof (SWPersonIdentityProof))]
interface SWSignedPersonIdentityProof {
[Export ("initWithPersonIdentityProof:signatureData:")]
NativeHandle Constructor (SWPersonIdentityProof personIdentityProof, NSData data);

[Export ("signatureData", ArgumentSemantic.Copy)]
NSData SignatureData { get; }
}

[NoWatch, TV (16,0), Mac (13,0), iOS (16,0), MacCatalyst (16,0)]
[BaseType (typeof (SWAction))]
[DisableDefaultCtor]
interface SWStartCollaborationAction : NSSecureCoding, NSCopying {
[Export ("collaborationMetadata")]
SWCollaborationMetadata CollaborationMetadata { get; }

[Export ("fulfillUsingURL:collaborationIdentifier:")]
void FulfillUsingUrl (NSUrl url, string collaborationIdentifier);
}

[NoWatch, TV (16,0), Mac (13,0), iOS (16,0)]
[BaseType (typeof (SWAction))]
[DisableDefaultCtor]
interface SWUpdateCollaborationParticipantsAction : NSSecureCoding, NSCopying {
[Export ("collaborationMetadata")]
SWCollaborationMetadata CollaborationMetadata { get; }

[Export ("addedIdentities")]
SWPersonIdentity[] AddedIdentities { get; }

[Export ("removedIdentities")]
SWPersonIdentity[] RemovedIdentities { get; }
}

}

1 change: 1 addition & 0 deletions tests/introspection/iOS/iOSApiProtocolTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ protected override bool Skip (Type type)
case "CAMetalLayer":
case "MTLFunctionConstantValues":
case "MTLHeapDescriptor":
case "SWCollaborationActionHandler":
// Symbol not available in simulator - but works on BigSur (others might too)
if (TestRuntime.IsSimulatorOrDesktop)
return true;
Expand Down
1 change: 1 addition & 0 deletions tests/mtouch/RegistrarTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,7 @@ public void MT4134 ()
new { Framework = "ThreadNetwork", Version = "15.0" },
new { Framework = "BackgroundAssets", Version = "16.0" },
new { Framework = "PushToTalk", Version = "16.0" },
new { Framework = "SharedWithYouCore", Version = "16.0" },
};
foreach (var framework in invalidFrameworks)
mtouch.AssertError (4134, $"Your application is using the '{framework.Framework}' framework, which isn't included in the iOS SDK you're using to build your app (this framework was introduced in iOS {framework.Version}, while you're building with the iOS {mtouch.Sdk} SDK.) Please select a newer SDK in your app's iOS Build options.");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
!missing-field! SharedWithYouCoreVersionNumber not bound
!missing-field! SharedWithYouCoreVersionString not bound
tj-devel709 marked this conversation as resolved.
Show resolved Hide resolved

# ignoring due to issue: https://github.com/xamarin/xamarin-macios/issues/15658
!extra-designated-initializer! SWCollaborationOption::initWithCoder: is incorrectly decorated with an [DesignatedInitializer] attribute
Loading