Skip to content

Commit 5f84f5f

Browse files
authored
[HealthKit] Implement Xcode 16 RC changes. (#21225)
1 parent 4a94d76 commit 5f84f5f

File tree

10 files changed

+96
-15
lines changed

10 files changed

+96
-15
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
using System;
2+
using System.Runtime.InteropServices;
3+
using ObjCRuntime;
4+
using Foundation;
5+
using HKQuantityRef = System.IntPtr;
6+
using NSErrorRef = System.IntPtr;
7+
8+
#nullable enable
9+
10+
namespace HealthKit {
11+
12+
[SupportedOSPlatform ("ios18.0")]
13+
[SupportedOSPlatform ("maccatalyst18.0")]
14+
[SupportedOSPlatform ("macos15.0")]
15+
[UnsupportedOSPlatform ("tvos")]
16+
public static class HKAppleSleepingBreathingDisturbances {
17+
18+
[DllImport (Constants.HealthKitLibrary)]
19+
unsafe static extern /* NSNumber * _Nullable */ IntPtr HKAppleSleepingBreathingDisturbancesClassificationForQuantity (HKQuantityRef value);
20+
21+
/// <summary>Get the breathing disturbances classification for a given quantity of breathing disturbance.</summary>
22+
/// <param name="value">The quantity of the breathing disturbance whose classification to get.</param>
23+
/// <returns>The breathing disturbances classification for the specified breathing disturbance quantity.</returns>
24+
public static HKAppleSleepingBreathingDisturbancesClassification? GetClassification (HKQuantity value)
25+
{
26+
var ptr = HKAppleSleepingBreathingDisturbancesClassificationForQuantity (value.GetHandle ());
27+
var number = Runtime.GetNSObject<NSNumber> (ptr);
28+
if (number is null)
29+
return null;
30+
return (HKAppleSleepingBreathingDisturbancesClassification) number.LongValue;
31+
}
32+
33+
[DllImport (Constants.HealthKitLibrary)]
34+
static extern HKQuantityRef HKAppleSleepingBreathingDisturbancesMinimumQuantityForClassification (nint /* HKAppleSleepingBreathingDisturbancesClassification */ classification);
35+
36+
/// <summary>Get the minimum quantity for a breathing disturbances classification.</summary>
37+
/// <param name="classification">The classification to get the minimum quantity for.</param>
38+
/// <returns>The minimum quantity for the specified breathing disturbances classification.</returns>
39+
public static HKQuantity? GetMinimumQuantity (HKAppleSleepingBreathingDisturbancesClassification classification)
40+
{
41+
return Runtime.GetNSObject<HKQuantity> (HKAppleSleepingBreathingDisturbancesMinimumQuantityForClassification ((nint) (long) classification));
42+
}
43+
}
44+
}

src/frameworks.sources

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1012,6 +1012,7 @@ HEALTHKIT_API_SOURCES = \
10121012

10131013
HEALTHKIT_SOURCES = \
10141014
HealthKit/EnumsCompat.cs \
1015+
HealthKit/HKAppleSleepingBreathingDisturbances.cs \
10151016
HealthKit/HKAppleWalkingSteadiness.cs \
10161017
HealthKit/HKAnchoredObjectQuery.cs \
10171018
HealthKit/HKCategoryValueSleepAnalysisAsleep.cs \

src/healthkit.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2696,6 +2696,10 @@ enum HKQuantityTypeIdentifier {
26962696
[iOS (18, 0), MacCatalyst (18, 0), Mac (15, 0), Watch (11, 0)]
26972697
[Field ("HKQuantityTypeIdentifierRowingSpeed")]
26982698
RowingSpeed,
2699+
2700+
[iOS (18, 0), MacCatalyst (18, 0), Mac (15, 0), Watch (11, 0)]
2701+
[Field ("HKQuantityTypeIdentifierAppleSleepingBreathingDisturbances")]
2702+
AppleSleepingBreathingDisturbances,
26992703
}
27002704

27012705
/// <summary>Contains constants that identify HealthKit correlation types.</summary>
@@ -3048,6 +3052,10 @@ enum HKCategoryTypeIdentifier {
30483052
[iOS (18, 0), MacCatalyst (18, 0), Mac (15, 0), Watch (11, 0)]
30493053
[Field ("HKCategoryTypeIdentifierBleedingDuringPregnancy")]
30503054
BleedingDuringPregnancy,
3055+
3056+
[iOS (18, 0), MacCatalyst (18, 0), Mac (15, 0), Watch (11, 0)]
3057+
[Field ("HKCategoryTypeIdentifierSleepApneaEvent")]
3058+
SleepApneaEvent,
30513059
}
30523060

30533061
/// <summary>Enumerates the forms of <see cref="T:HealthKit.HKCharacteristicType" />.</summary>
@@ -5311,4 +5319,12 @@ interface HKWorkoutEffortRelationshipQuery {
53115319
[Export ("initWithPredicate:anchor:options:resultsHandler:")]
53125320
NativeHandle Constructor ([NullAllowed] NSPredicate predicate, [NullAllowed] HKQueryAnchor anchor, HKWorkoutEffortRelationshipQueryOptions options, HKWorkoutEffortRelationshipQueryResultsHandler resultsHandler);
53135321
}
5322+
5323+
[Watch (11, 0), TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
5324+
[Native]
5325+
public enum HKAppleSleepingBreathingDisturbancesClassification : long {
5326+
NotElevated,
5327+
Elevated,
5328+
}
5329+
53145330
}

tests/cecil-tests/Documentation.KnownFailures.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10853,6 +10853,8 @@ F:HealthKit.HKActivityMoveMode.AppleMoveTime
1085310853
F:HealthKit.HKAnchoredObjectQuery.NoAnchor
1085410854
F:HealthKit.HKAppleEcgAlgorithmVersion.Version1
1085510855
F:HealthKit.HKAppleEcgAlgorithmVersion.Version2
10856+
F:HealthKit.HKAppleSleepingBreathingDisturbancesClassification.Elevated
10857+
F:HealthKit.HKAppleSleepingBreathingDisturbancesClassification.NotElevated
1085610858
F:HealthKit.HKAppleWalkingSteadinessClassification.Low
1085710859
F:HealthKit.HKAppleWalkingSteadinessClassification.Ok
1085810860
F:HealthKit.HKAppleWalkingSteadinessClassification.VeryLow
@@ -10951,6 +10953,7 @@ F:HealthKit.HKCategoryTypeIdentifier.ShortnessOfBreath
1095110953
F:HealthKit.HKCategoryTypeIdentifier.SinusCongestion
1095210954
F:HealthKit.HKCategoryTypeIdentifier.SkippedHeartbeat
1095310955
F:HealthKit.HKCategoryTypeIdentifier.SleepAnalysis
10956+
F:HealthKit.HKCategoryTypeIdentifier.SleepApneaEvent
1095410957
F:HealthKit.HKCategoryTypeIdentifier.SleepChanges
1095510958
F:HealthKit.HKCategoryTypeIdentifier.SoreThroat
1095610959
F:HealthKit.HKCategoryTypeIdentifier.ToothbrushingEvent
@@ -11161,6 +11164,7 @@ F:HealthKit.HKQuantityAggregationStyle.DiscreteTemporallyWeighted
1116111164
F:HealthKit.HKQuantityTypeIdentifier.ActiveEnergyBurned
1116211165
F:HealthKit.HKQuantityTypeIdentifier.AppleExerciseTime
1116311166
F:HealthKit.HKQuantityTypeIdentifier.AppleMoveTime
11167+
F:HealthKit.HKQuantityTypeIdentifier.AppleSleepingBreathingDisturbances
1116411168
F:HealthKit.HKQuantityTypeIdentifier.AppleSleepingWristTemperature
1116511169
F:HealthKit.HKQuantityTypeIdentifier.AppleStandTime
1116611170
F:HealthKit.HKQuantityTypeIdentifier.AppleWalkingSteadiness
@@ -83759,6 +83763,8 @@ T:GLKit.GLKViewDrawEventArgs
8375983763
T:HealthKit.HKActivityMoveMode
8376083764
T:HealthKit.HKAnchoredObjectUpdateHandler
8376183765
T:HealthKit.HKAppleEcgAlgorithmVersion
83766+
T:HealthKit.HKAppleSleepingBreathingDisturbances
83767+
T:HealthKit.HKAppleSleepingBreathingDisturbancesClassification
8376283768
T:HealthKit.HKAppleWalkingSteadiness
8376383769
T:HealthKit.HKAppleWalkingSteadinessClassification
8376483770
T:HealthKit.HKAttachmentStoreCompletionHandler

tests/monotouch-test/HealthKit/CategoryTypeIdentifierTest.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ public void EnumValues_22351 ()
136136

137137
case HKCategoryTypeIdentifier.BleedingAfterPregnancy:
138138
case HKCategoryTypeIdentifier.BleedingDuringPregnancy:
139+
case HKCategoryTypeIdentifier.SleepApneaEvent:
139140
if (!TestRuntime.CheckXcodeVersion (16, 0))
140141
continue;
141142
break;
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#if HAS_HEALTHKIT
2+
3+
using System;
4+
5+
using Foundation;
6+
using HealthKit;
7+
8+
using NUnit.Framework;
9+
10+
namespace MonoTouchFixtures.HealthKit {
11+
12+
[TestFixture]
13+
[Preserve (AllMembers = true)]
14+
public class HKAppleSleepingBreathingDisturbancesTest {
15+
[Test]
16+
public void RoundtripTest ()
17+
{
18+
TestRuntime.AssertXcodeVersion (16, 0);
19+
20+
var minimum = HKAppleSleepingBreathingDisturbances.GetMinimumQuantity (HKAppleSleepingBreathingDisturbancesClassification.Elevated);
21+
var classification = HKAppleSleepingBreathingDisturbances.GetClassification (minimum);
22+
Assert.AreEqual (HKAppleSleepingBreathingDisturbancesClassification.Elevated, classification, "Classification");
23+
}
24+
}
25+
}
26+
27+
#endif // HAS_HEALTHKIT

tests/monotouch-test/HealthKit/QuantityTypeIdentifierTest.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ public void EnumValues_22351 ()
125125
if (!TestRuntime.CheckXcodeVersion (15, 0))
126126
continue;
127127
break;
128+
case HKQuantityTypeIdentifier.AppleSleepingBreathingDisturbances:
128129
case HKQuantityTypeIdentifier.CrossCountrySkiingSpeed:
129130
case HKQuantityTypeIdentifier.DistanceCrossCountrySkiing:
130131
case HKQuantityTypeIdentifier.DistancePaddleSports:

tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-HealthKit.todo

Lines changed: 0 additions & 5 deletions
This file was deleted.

tests/xtro-sharpie/api-annotations-dotnet/iOS-HealthKit.todo

Lines changed: 0 additions & 5 deletions
This file was deleted.

tests/xtro-sharpie/api-annotations-dotnet/macOS-HealthKit.todo

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)