diff --git a/src/CoreTelephony/CTEnums.cs b/src/CoreTelephony/CTEnums.cs
index 1941de4ae1aa..663a6842d4dd 100644
--- a/src/CoreTelephony/CTEnums.cs
+++ b/src/CoreTelephony/CTEnums.cs
@@ -18,7 +18,7 @@ public enum CTErrorDomain {
}
/// Enumerates data restrictions for .
- [NoMacCatalyst]
+ [MacCatalyst (13, 1)]
[Native]
public enum CTCellularDataRestrictedState : ulong {
/// To be added.
@@ -29,7 +29,7 @@ public enum CTCellularDataRestrictedState : ulong {
NotRestricted,
}
- [NoMacCatalyst]
+ [MacCatalyst (13, 1)]
[Native]
public enum CTCellularPlanProvisioningAddPlanResult : long {
/// To be added.
diff --git a/src/coretelephony.cs b/src/coretelephony.cs
index efd4a1a62ee2..87f272b3dbb7 100644
--- a/src/coretelephony.cs
+++ b/src/coretelephony.cs
@@ -3,6 +3,14 @@
using System;
namespace CoreTelephony {
+
+ [iOS (26, 0), Mac (26, 0), MacCatalyst (26, 0)]
+ [Native]
+ public enum CTCellularPlanCapability : long {
+ Only,
+ AndVoice,
+ }
+
/// Encapsulates a unique identifier for a call and it's state.
///
/// Apple documentation for CTCall
@@ -26,7 +34,7 @@ interface CTCall {
}
/// Apple documentation for CTCellularData
- [NoMacCatalyst]
+ [MacCatalyst (13, 1)]
[BaseType (typeof (NSObject))]
interface CTCellularData {
/// To be added.
@@ -385,7 +393,7 @@ partial interface CTSubscriberInfo {
CTSubscriber [] Subscribers { get; }
}
- [NoMacCatalyst]
+ [MacCatalyst (13, 1)]
[BaseType (typeof (NSObject))]
interface CTCellularPlanProvisioningRequest : NSSecureCoding {
/// To be added.
@@ -425,7 +433,7 @@ interface CTCellularPlanProvisioningRequest : NSSecureCoding {
string Eid { get; set; }
}
- [NoMacCatalyst]
+ [MacCatalyst (13, 1)]
[BaseType (typeof (NSObject))]
interface CTCellularPlanProvisioning {
/// To be added.
@@ -447,8 +455,51 @@ interface CTCellularPlanProvisioning {
[Export ("addPlanWith:completionHandler:")]
void AddPlan (CTCellularPlanProvisioningRequest request, Action completionHandler);
- [iOS (16, 0)]
+ [iOS (16, 0), MacCatalyst (16, 0)]
[Export ("supportsEmbeddedSIM")]
bool SupportsEmbeddedSim { get; }
+
+ [Async]
+ [NoTV, NoMac, iOS (26, 0), MacCatalyst (26, 0)]
+ [Export ("addPlanWithRequest:properties:completionHandler:")]
+ void AddPlan (CTCellularPlanProvisioningRequest request, [NullAllowed] CTCellularPlanProperties properties, CTCellularPlanProvisioningAddPlanCompletionHandler completionHandler);
+
+ [Async]
+ [NoTV, NoMac, iOS (26, 0), MacCatalyst (26, 0)]
+ [Export ("updateCellularPlanProperties:completionHandler:")]
+ void UpdateCellularPlan (CTCellularPlanProperties properties, CTCellularPlanProvisioningUpdateCellularPlanCompletionHandler completionHandler);
}
+
+ delegate void CTCellularPlanProvisioningAddPlanCompletionHandler (CTCellularPlanProvisioningAddPlanResult result);
+ delegate void CTCellularPlanProvisioningUpdateCellularPlanCompletionHandler ([NullAllowed] NSError error);
+
+ [NoTV, NoMac, iOS (26, 0), MacCatalyst (26, 0)]
+ [BaseType (typeof (NSObject))]
+ interface CTCellularPlanProperties : NSSecureCoding {
+ [NullAllowed, Export ("associatedIccid")]
+ string AssociatedIccid { get; set; }
+
+ [Export ("simCapability", ArgumentSemantic.Assign)]
+ CTCellularPlanCapability SimCapability { get; set; }
+
+ [Export ("supportedRegionCodes", ArgumentSemantic.Assign)]
+ string [] SupportedRegionCodes { get; set; }
+ }
+
+ [iOS (26, 0), MacCatalyst (26, 0), NoTV, NoMac]
+ [BaseType (typeof (NSObject))]
+ interface CTCellularPlanStatus {
+ [Async]
+ [Static]
+ [Export ("getTokenWithCompletion:")]
+ void GetToken (CTCellularPlanStatusGetTokenCompletionHandler completionHandler);
+
+ [Async]
+ [Static]
+ [Export ("checkValidityOfToken:completionHandler:")]
+ void CheckValidity (string token, CTCellularPlanStatusCheckValidityCompletionHandler completionHandler);
+ }
+
+ delegate void CTCellularPlanStatusGetTokenCompletionHandler ([NullAllowed] string token, [NullAllowed] NSError error);
+ delegate void CTCellularPlanStatusCheckValidityCompletionHandler (bool isValid, [NullAllowed] NSError error);
}
diff --git a/tests/cecil-tests/Documentation.KnownFailures.txt b/tests/cecil-tests/Documentation.KnownFailures.txt
index 4c2a0ad4facf..107318423616 100644
--- a/tests/cecil-tests/Documentation.KnownFailures.txt
+++ b/tests/cecil-tests/Documentation.KnownFailures.txt
@@ -2402,6 +2402,8 @@ F:CoreSpotlight.CSSuggestionKind.None
F:CoreSpotlight.CSUserInteraction.Default
F:CoreSpotlight.CSUserInteraction.Focus
F:CoreSpotlight.CSUserInteraction.Select
+F:CoreTelephony.CTCellularPlanCapability.AndVoice
+F:CoreTelephony.CTCellularPlanCapability.Only
F:CoreTelephony.CTCellularPlanProvisioningAddPlanResult.Cancel
F:CoreText.CTFontManagerError.AssetNotFound
F:CoreText.CTFontManagerError.CancelledByUser
@@ -10443,6 +10445,14 @@ M:CoreSpotlight.CSUserQuery.UserEngaged(CoreSpotlight.CSSuggestion,CoreSpotlight
M:CoreSpotlight.CSUserQueryContext.Create(CoreSpotlight.CSSuggestion)
M:CoreSpotlight.ICSSearchableIndexDelegate.DidUpdate(CoreSpotlight.CSSearchableItem[])
M:CoreSpotlight.ICSSearchableIndexDelegate.GetSearchableItems(System.String[],CoreSpotlight.CSSearchableIndexDelegateGetSearchableItemsHandler)
+M:CoreTelephony.CTCellularPlanProvisioning.AddPlan(CoreTelephony.CTCellularPlanProvisioningRequest,CoreTelephony.CTCellularPlanProperties,CoreTelephony.CTCellularPlanProvisioningAddPlanCompletionHandler)
+M:CoreTelephony.CTCellularPlanProvisioning.AddPlanAsync(CoreTelephony.CTCellularPlanProvisioningRequest,CoreTelephony.CTCellularPlanProperties)
+M:CoreTelephony.CTCellularPlanProvisioning.UpdateCellularPlan(CoreTelephony.CTCellularPlanProperties,CoreTelephony.CTCellularPlanProvisioningUpdateCellularPlanCompletionHandler)
+M:CoreTelephony.CTCellularPlanProvisioning.UpdateCellularPlanAsync(CoreTelephony.CTCellularPlanProperties)
+M:CoreTelephony.CTCellularPlanStatus.CheckValidity(System.String,CoreTelephony.CTCellularPlanStatusCheckValidityCompletionHandler)
+M:CoreTelephony.CTCellularPlanStatus.CheckValidityAsync(System.String)
+M:CoreTelephony.CTCellularPlanStatus.GetToken(CoreTelephony.CTCellularPlanStatusGetTokenCompletionHandler)
+M:CoreTelephony.CTCellularPlanStatus.GetTokenAsync
M:CoreTelephony.CTSubscriber.Dispose(System.Boolean)
M:CoreTelephony.CTSubscriber.RefreshCarrierToken
M:CoreTelephony.CTTelephonyNetworkInfo.Dispose(System.Boolean)
@@ -19888,6 +19898,9 @@ P:CoreSpotlight.CSUserQueryContext.MaxRankedResultCount
P:CoreSpotlight.CSUserQueryContext.MaxResultCount
P:CoreSpotlight.CSUserQueryContext.MaxSuggestionCount
P:CoreSpotlight.CSUserQueryContext.UserQueryContext
+P:CoreTelephony.CTCellularPlanProperties.AssociatedIccid
+P:CoreTelephony.CTCellularPlanProperties.SimCapability
+P:CoreTelephony.CTCellularPlanProperties.SupportedRegionCodes
P:CoreTelephony.CTCellularPlanProvisioning.SupportsEmbeddedSim
P:CoreTelephony.CTSubscriber.IsSimInserted
P:CoreTelephony.CTTelephonyNetworkInfo.DataServiceIdentifier
@@ -26359,9 +26372,16 @@ T:CoreSpotlight.CSSuggestionKind
T:CoreSpotlight.CSUserInteraction
T:CoreSpotlight.CSUserQuery
T:CoreSpotlight.CSUserQueryContext
+T:CoreTelephony.CTCellularPlanCapability
+T:CoreTelephony.CTCellularPlanProperties
T:CoreTelephony.CTCellularPlanProvisioning
+T:CoreTelephony.CTCellularPlanProvisioningAddPlanCompletionHandler
T:CoreTelephony.CTCellularPlanProvisioningAddPlanResult
T:CoreTelephony.CTCellularPlanProvisioningRequest
+T:CoreTelephony.CTCellularPlanProvisioningUpdateCellularPlanCompletionHandler
+T:CoreTelephony.CTCellularPlanStatus
+T:CoreTelephony.CTCellularPlanStatusCheckValidityCompletionHandler
+T:CoreTelephony.CTCellularPlanStatusGetTokenCompletionHandler
T:CoreTelephony.CTTelephonyNetworkInfoDelegate
T:CoreTelephony.ICTSubscriberDelegate
T:CoreTelephony.ICTTelephonyNetworkInfoDelegate
diff --git a/tests/xtro-sharpie/Makefile b/tests/xtro-sharpie/Makefile
index 46ec88dd4aab..36c5ab11b972 100644
--- a/tests/xtro-sharpie/Makefile
+++ b/tests/xtro-sharpie/Makefile
@@ -40,12 +40,17 @@ $(XTRO_SANITY): $(wildcard xtro-sanity/*.cs) $(wildcard xtro-sanity/*.csproj) $(
CORETELEPHONY_HEADERS = \
-i CoreTelephony/CoreTelephonyDefines.h \
- -i CoreTelephony/CTCarrier.h \
-i CoreTelephony/CTCall.h \
-i CoreTelephony/CTCallCenter.h \
- -i CoreTelephony/CTTelephonyNetworkInfo.h \
+ -i CoreTelephony/CTCarrier.h \
+ -i CoreTelephony/CTCellularData.h \
+ -i CoreTelephony/CTCellularPlanProperties.h \
+ -i CoreTelephony/CTCellularPlanProvisioning.h \
+ -i CoreTelephony/CTCellularPlanProvisioningRequest.h \
+ -i CoreTelephony/CTCellularPlanStatus.h \
-i CoreTelephony/CTSubscriber.h \
-i CoreTelephony/CTSubscriberInfo.h \
+ -i CoreTelephony/CTTelephonyNetworkInfo.h \
SWIFT_FRAMEWORKS = \
CoreTransferable \
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreTelephony.todo b/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreTelephony.todo
deleted file mode 100644
index b90c74477aab..000000000000
--- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreTelephony.todo
+++ /dev/null
@@ -1,5 +0,0 @@
-!unknown-native-enum! CTCellularDataRestrictedState bound
-!unknown-native-enum! CTCellularPlanProvisioningAddPlanResult bound
-!unknown-type! CTCellularData bound
-!unknown-type! CTCellularPlanProvisioning bound
-!unknown-type! CTCellularPlanProvisioningRequest bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreTelephony.ignore b/tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreTelephony.ignore
new file mode 100644
index 000000000000..6276b6d40163
--- /dev/null
+++ b/tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreTelephony.ignore
@@ -0,0 +1,4 @@
+# CoreTelephony doesn't make much sense on macOS, so we're not exposing it.
+!missing-enum! CTCellularDataRestrictedState not bound
+!missing-enum! CTCellularPlanCapability not bound
+!missing-enum! CTCellularPlanProvisioningAddPlanResult not bound