diff --git a/src/carplay.cs b/src/carplay.cs index 941dd5094d72..53d2596d23da 100644 --- a/src/carplay.cs +++ b/src/carplay.cs @@ -164,7 +164,7 @@ public enum CPTextButtonStyle : long Confirm, } - [NoWatch, NoTV, NoMac, iOS (15,0)] + [NoWatch, NoTV, NoMac, iOS (15,0), MacCatalyst (15,0)] [Native] public enum CPAssistantCellPosition : long { @@ -172,7 +172,7 @@ public enum CPAssistantCellPosition : long Bottom, } - [NoWatch, NoTV, NoMac, iOS (15,0)] + [NoWatch, NoTV, NoMac, iOS (15,0), MacCatalyst (15,0)] [Native] public enum CPAssistantCellVisibility : long { @@ -181,6 +181,15 @@ public enum CPAssistantCellVisibility : long Always, } + [iOS (15,0), MacCatalyst (15,0), NoMac, NoTV, NoWatch] + [Native] + public enum CPAssistantCellActionType : long + { + PlayMedia = 0, + StartCall, + } + + [NoWatch, NoTV, NoMac, iOS (12,0)] [BaseType (typeof (NSObject))] [DisableDefaultCtor] @@ -291,15 +300,15 @@ interface CPGridTemplate : CPBarButtonProviding{ [Export ("title")] string Title { get; } - [iOS (15,0)] + [iOS (15,0), MacCatalyst (15,0)] [Export ("updateGridButtons:")] void UpdateGridButtons (CPGridButton[] gridButtons); - [iOS (15,0)] + [iOS (15,0), MacCatalyst (15,0)] [Export ("updateTitle:")] void UpdateTitle (string title); - [iOS (15,0)] + [iOS (15,0), MacCatalyst (15,0)] [Field ("CPGridTemplateMaximumItems")] nuint MaximumItems { get; } } @@ -533,7 +542,7 @@ interface CPListItem : CPSelectableListItem, NSSecureCoding { [Export ("handler", ArgumentSemantic.Copy)] new CPSelectableListItemHandler Handler { get; set; } - [iOS (15, 0)] + [iOS (15, 0), MacCatalyst (15,0)] [Export ("enabled")] bool Enabled { [Bind ("isEnabled")] get; set; } } @@ -549,7 +558,7 @@ interface CPListSection : NSSecureCoding { [Export ("initWithItems:")] IntPtr Constructor (CPListItem [] items); - [iOS (15,0)] + [iOS (15,0), MacCatalyst (15,0)] [Export ("initWithItems:header:headerSubtitle:headerImage:headerButton:sectionIndexTitle:")] IntPtr Constructor (ICPListTemplateItem[] items, string header, [NullAllowed] string headerSubtitle, [NullAllowed] UIImage headerImage, [NullAllowed] CPButton headerButton, [NullAllowed] string sectionIndexTitle); @@ -570,22 +579,22 @@ interface CPListSection : NSSecureCoding { [Export ("itemAtIndex:")] ICPListTemplateItem GetItem (nuint index); - [iOS (15, 0)] + [iOS (15, 0), MacCatalyst (15,0)] [NullAllowed] [Export ("headerSubtitle")] string HeaderSubtitle { get; } - [iOS (15, 0)] + [iOS (15, 0), MacCatalyst (15,0)] [NullAllowed] [Export ("headerImage", ArgumentSemantic.Copy)] - UIImage HeaderImage { get; } + UIImage HeaderImage { get; set; } - [iOS (15, 0)] + [iOS (15, 0), MacCatalyst (15,0)] [NullAllowed] [Export ("headerButton", ArgumentSemantic.Copy)] CPButton HeaderButton { get; } - [iOS (15, 0)] + [iOS (15, 0), MacCatalyst (15,0)] [Field ("CPMaximumListSectionImageSize")] CGSize MaximumImageSize { get; } } @@ -598,6 +607,10 @@ interface CPListTemplate : CPBarButtonProviding { [Export ("initWithTitle:sections:")] IntPtr Constructor ([NullAllowed] string title, CPListSection[] sections); + [iOS (15,0), MacCatalyst (15,0)] + [Export ("initWithTitle:sections:assistantCellConfiguration:")] + IntPtr Constructor ([NullAllowed] string title, CPListSection[] sections, [NullAllowed] CPAssistantCellConfiguration assistantCellConfiguration); + [Deprecated (PlatformName.iOS, 14, 0, message: "Use 'CPListItem.Handler' instead.")] [Wrap ("WeakDelegate")] [NullAllowed] @@ -646,6 +659,11 @@ interface CPListTemplate : CPBarButtonProviding { [iOS (14, 0)] [Export ("emptyViewSubtitleVariants", ArgumentSemantic.Copy)] string[] EmptyViewSubtitleVariants { get; set; } + + [NullAllowed] + [iOS (15, 0), MacCatalyst (15,0)] + [Export ("assistantCellConfiguration", ArgumentSemantic.Strong)] + CPAssistantCellConfiguration AssistantCellConfiguration { get; set; } } interface ICPListTemplateDelegate { } @@ -1507,7 +1525,7 @@ interface CPListImageRowItem : CPSelectableListItem [NullAllowed, Export ("userInfo", ArgumentSemantic.Strong)] new NSObject UserInfo { get; set; } - [iOS (15, 0)] + [iOS (15, 0), MacCatalyst (15,0)] [Export ("enabled")] bool Enabled { [Bind ("isEnabled")] get; set; } } @@ -1580,7 +1598,7 @@ interface CPMessageListItem : CPListTemplateItem [NullAllowed, Export ("userInfo", ArgumentSemantic.Strong)] new NSObject UserInfo { get; set; } - [iOS (15, 0)] + [iOS (15, 0), MacCatalyst (15,0)] [Export ("enabled")] bool Enabled { [Bind ("isEnabled")] get; set; } } @@ -1874,7 +1892,7 @@ interface CPListTemplateItem #if XAMCORE_4_0 [Abstract] #endif - [iOS (15, 0)] + [iOS (15, 0), MacCatalyst (15,0)] [Export ("enabled")] bool Enabled { [Bind ("isEnabled")] get; set; } } @@ -1907,4 +1925,23 @@ interface CPInformationRatingItem [NullAllowed, Export ("maximumRating")] NSNumber MaximumRating { get; } } + + [NoWatch, NoTV, NoMac, iOS (15,0), MacCatalyst (15,0)] + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface CPAssistantCellConfiguration : NSSecureCoding + { + [Export ("initWithPosition:visibility:assistantAction:")] + IntPtr Constructor (CPAssistantCellPosition position, CPAssistantCellVisibility visibility, CPAssistantCellActionType assistantAction); + + [Export ("position")] + CPAssistantCellPosition Position { get; } + + [Export ("visibility")] + CPAssistantCellVisibility Visibility { get; } + + [Export ("assistantAction")] + CPAssistantCellActionType AssistantAction { get; } + } + } diff --git a/tests/xtro-sharpie/iOS-CarPlay.todo b/tests/xtro-sharpie/iOS-CarPlay.todo deleted file mode 100644 index 1b5c4de4f0bc..000000000000 --- a/tests/xtro-sharpie/iOS-CarPlay.todo +++ /dev/null @@ -1,10 +0,0 @@ -!missing-enum! CPAssistantCellActionType not bound -!missing-selector! CPAssistantCellConfiguration::assistantAction not bound -!missing-selector! CPAssistantCellConfiguration::initWithPosition:visibility:assistantAction: not bound -!missing-selector! CPAssistantCellConfiguration::position not bound -!missing-selector! CPAssistantCellConfiguration::visibility not bound -!missing-selector! CPListSection::setHeaderImage: not bound -!missing-selector! CPListTemplate::assistantCellConfiguration not bound -!missing-selector! CPListTemplate::initWithTitle:sections:assistantCellConfiguration: not bound -!missing-selector! CPListTemplate::setAssistantCellConfiguration: not bound -!missing-type! CPAssistantCellConfiguration not bound