From 26cd76cb7ea34fec3673a6b58a1fc46c1e8641c3 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Fri, 29 Jun 2018 21:41:16 +0200 Subject: [PATCH] [HealthKit] Update to Xcode10-beta2 (#4336) --- src/HealthKit/Enums.cs | 48 +++ src/frameworks.sources | 2 +- src/healthkit.cs | 347 +++++++++++++++++++++- tests/introspection/ApiProtocolTest.cs | 1 + tests/introspection/ApiTypoTest.cs | 1 + tests/xtro-sharpie/iOS-HealthKit.todo | 70 ----- tests/xtro-sharpie/watchOS-HealthKit.todo | 66 ---- 7 files changed, 397 insertions(+), 138 deletions(-) delete mode 100644 tests/xtro-sharpie/iOS-HealthKit.todo delete mode 100644 tests/xtro-sharpie/watchOS-HealthKit.todo diff --git a/src/HealthKit/Enums.cs b/src/HealthKit/Enums.cs index 9f1bdfa5c0..a1fe970bdd 100644 --- a/src/HealthKit/Enums.cs +++ b/src/HealthKit/Enums.cs @@ -564,4 +564,52 @@ namespace HealthKit PredictionSubMaxExercise, PredictionNonExercise, } + + [NoWatch, iOS (12, 0)] + public enum HKFhirResourceType { + [Field ("HKFHIRResourceTypeAllergyIntolerance")] + AllergyIntolerance, + [Field ("HKFHIRResourceTypeCondition")] + Condition, + [Field ("HKFHIRResourceTypeImmunization")] + Immunization, + [Field ("HKFHIRResourceTypeMedicationDispense")] + MedicationDispense, + [Field ("HKFHIRResourceTypeMedicationOrder")] + MedicationOrder, + [Field ("HKFHIRResourceTypeMedicationStatement")] + MedicationStatement, + [Field ("HKFHIRResourceTypeObservation")] + Observation, + [Field ("HKFHIRResourceTypeProcedure")] + Procedure, + } + + [Watch (5, 0), iOS (12, 0)] + public enum HKClinicalTypeIdentifier { + + [Field ("HKClinicalTypeIdentifierAllergyRecord")] + AllergyRecord, + [Field ("HKClinicalTypeIdentifierConditionRecord")] + ConditionRecord, + [Field ("HKClinicalTypeIdentifierImmunizationRecord")] + ImmunizationRecord, + [Field ("HKClinicalTypeIdentifierLabResultRecord")] + LabResultRecord, + [Field ("HKClinicalTypeIdentifierMedicationRecord")] + MedicationRecord, + [Field ("HKClinicalTypeIdentifierProcedureRecord")] + ProcedureRecord, + [Field ("HKClinicalTypeIdentifierVitalSignRecord")] + VitalSignRecord, + } + + [Watch (5,0), iOS (12,0)] + [Native] + public enum HKAuthorizationRequestStatus : long + { + Unknown = 0, + ShouldRequest, + Unnecessary, + } } diff --git a/src/frameworks.sources b/src/frameworks.sources index dc7e588222..bbc0b9cee8 100644 --- a/src/frameworks.sources +++ b/src/frameworks.sources @@ -827,7 +827,7 @@ GLKIT_SOURCES = \ # HealthKit -HEALTHKIT_CORE_SOURCES = \ +HEALTHKIT_API_SOURCES = \ HealthKit/Enums.cs \ HEALTHKIT_SOURCES = \ diff --git a/src/healthkit.cs b/src/healthkit.cs index c18e90f866..475a591a4f 100644 --- a/src/healthkit.cs +++ b/src/healthkit.cs @@ -189,6 +189,18 @@ namespace HealthKit { [Watch (4, 0), iOS (11, 0)] [Field ("HKPredicateKeyPathWorkoutTotalFlightsClimbed")] NSString TotalFlightsClimbed { get; } + + [Watch (5, 0), iOS (12, 0)] + [Field ("HKPredicateKeyPathSum")] + NSString PathSum { get; } + + [NoWatch, iOS (12, 0)] + [Field ("HKPredicateKeyPathClinicalRecordFHIRResourceIdentifier")] + NSString ClinicalRecordFhirResourceIdentifier { get; } + + [NoWatch, iOS (12, 0)] + [Field ("HKPredicateKeyPathClinicalRecordFHIRResourceType")] + NSString ClinicalRecordFhirResourceType { get; } } [NoWatch] // headers says it's available but it's only usable from another, unavailable, type @@ -344,6 +356,9 @@ namespace HealthKit { } + delegate void HKHealthStoreGetRequestStatusForAuthorizationToShareHandler (HKAuthorizationRequestStatus requestStatus, NSError error); + delegate void HKHealthStoreRecoverActiveWorkoutSessionHandler (HKWorkoutSession session, NSError error); + [Watch (2,0)] [iOS (8,0)] [BaseType (typeof (NSObject))] @@ -492,6 +507,16 @@ namespace HealthKit { [Notification] [Field ("HKUserPreferencesDidChangeNotification")] NSString UserPreferencesDidChangeNotification { get; } + + [Async] + [Watch (5,0), iOS (12,0)] + [Export ("getRequestStatusForAuthorizationToShareTypes:readTypes:completion:")] + void GetRequestStatusForAuthorizationToShare (NSSet typesToShare, NSSet typesToRead, HKHealthStoreGetRequestStatusForAuthorizationToShareHandler completion); + + [Async] + [Watch (5,0), NoiOS] + [Export ("recoverActiveWorkoutSessionWithCompletion:")] + void RecoverActiveWorkoutSession (HKHealthStoreRecoverActiveWorkoutSessionHandler completion); } delegate void HKStoreSampleAddedCallback (bool success, NSError error); @@ -646,6 +671,18 @@ namespace HealthKit { [Watch (4,2), iOS (11,2)] [Export ("ElevationDescended")] HKQuantity ElevationDescended { get; set; } + + [Watch (5,0), iOS (12,0)] + [Export ("FitnessMachineDuration")] + HKQuantity FitnessMachineDuration { get; set; } + + [Watch (5, 0), iOS (12, 0)] + [Export ("IndoorBikeDistance")] + HKQuantity IndoorBikeDistance { get; set; } + + [Watch (5, 0), iOS (12, 0)] + [Export ("CrossTrainerDistance")] + HKQuantity CrossTrainerDistance { get; set; } } [Watch (2,0)] @@ -784,6 +821,18 @@ namespace HealthKit { [Watch (4,2), iOS (11,2)] [Field ("HKMetadataKeyElevationDescended")] NSString ElevationDescended { get; } + + [Watch (5,0), iOS (12,0)] + [Field ("HKMetadataKeyFitnessMachineDuration")] + NSString FitnessMachineDuration { get; } + + [Watch (5, 0), iOS (12, 0)] + [Field ("HKMetadataKeyIndoorBikeDistance")] + NSString IndoorBikeDistance { get; } + + [Watch (5, 0), iOS (12, 0)] + [Field ("HKMetadataKeyCrossTrainerDistance")] + NSString CrossTrainerDistance { get; } } [Watch (2,0)] @@ -893,6 +942,16 @@ namespace HealthKit { [Export ("seriesTypeForIdentifier:")] [return: NullAllowed] HKSeriesType GetSeriesType (string identifier); + + [Watch (5,0), iOS (12,0)] + [Static, Internal] + [Export ("clinicalTypeForIdentifier:")] + [return: NullAllowed] + HKClinicalType GetClinicalType (NSString identifier); + + [Watch (5,0), iOS (12,0)] + [Wrap ("GetClinicalType (identifier.GetConstant ())")] + HKClinicalType GetClinicalType (HKClinicalTypeIdentifier identifier); } [Watch (2,0)] @@ -914,6 +973,14 @@ namespace HealthKit { } + [Watch (5,0)] + [iOS (12,0)] + [BaseType (typeof (HKSampleType))] + [DisableDefaultCtor] // NSInvalidArgumentException Reason: The -init method is not available on HKClinicalType + interface HKClinicalType { + + } + [Watch (2,0)] [iOS (8,0)] [BaseType (typeof (HKSampleType))] @@ -1008,6 +1075,10 @@ namespace HealthKit { [Static] [Export ("quantitySampleWithType:quantity:startDate:endDate:device:metadata:")] HKQuantitySample FromType (HKQuantityType quantityType, HKQuantity quantity, NSDate startDate, NSDate endDate, [NullAllowed] HKDevice device, [NullAllowed] NSDictionary metadata); + + [Watch (5, 0), iOS (12, 0)] + [Export ("count")] + nint Count { get; } } [Watch (2,0)] @@ -1134,6 +1205,28 @@ namespace HealthKit { [Static] [Export ("predicateForActivitySummariesBetweenStartDateComponents:endDateComponents:")] NSPredicate GetPredicateForActivitySummariesBetween (NSDateComponents startDateComponents, NSDateComponents endDateComponents); + + + // @interface HKClinicalRecordPredicates (HKQuery) + [NoWatch, iOS (12,0)] + [Static, Internal] + [Export ("predicateForClinicalRecordsWithFHIRResourceType:")] + NSPredicate GetPredicateForClinicalRecords (NSString resourceType); + + [NoWatch, iOS (12,0)] + [Static] + [Wrap ("GetPredicateForClinicalRecords (resourceType.GetConstant ())")] + NSPredicate GetPredicateForClinicalRecords (HKFhirResourceType resourceType); + + [NoWatch, iOS (12,0)] + [Static, Internal] + [Export ("predicateForClinicalRecordsFromSource:FHIRResourceType:identifier:")] + NSPredicate GetPredicateForClinicalRecords (HKSource source, string resourceType, string identifier); + + [NoWatch, iOS (12,0)] + [Static] + [Wrap ("GetPredicateForClinicalRecords (source, resourceType.GetConstant (), identifier)")] + NSPredicate GetPredicateForClinicalRecords (HKSource source, HKFhirResourceType resourceType, string identifier); } [Watch (2,0)] @@ -1250,6 +1343,24 @@ namespace HealthKit { [Export ("sumQuantity")] HKQuantity SumQuantity (); + + [Watch (5,0), iOS (12,0)] + [Export ("mostRecentQuantityForSource:")] + [return: NullAllowed] + HKQuantity GetMostRecentQuantity (HKSource source); + + [Watch (5, 0), iOS (12, 0)] + [NullAllowed, Export ("mostRecentQuantity")] + HKQuantity MostRecentQuantity { get; } + + [Watch (5,0), iOS (12,0)] + [Export ("mostRecentQuantityDateIntervalForSource:")] + [return: NullAllowed] + NSDateInterval GetMostRecentQuantityDateInterval (HKSource source); + + [Watch (5, 0), iOS (12, 0)] + [NullAllowed, Export ("mostRecentQuantityDateInterval")] + NSDateInterval MostRecentQuantityDateInterval { get; } } delegate void HKStatisticsCollectionEnumerator (HKStatistics result, bool stop); @@ -2305,6 +2416,10 @@ namespace HealthKit { [Watch (3,0)] [Export ("initWithConfiguration:error:")] IntPtr Constructor (HKWorkoutConfiguration workoutConfiguration, out NSError error); + + [Watch (5,0)] + [Export ("initWithHealthStore:configuration:error:")] + IntPtr Constructor (HKHealthStore healthStore, HKWorkoutConfiguration workoutConfiguration, [NullAllowed] out NSError error); } [NoiOS] @@ -2416,12 +2531,12 @@ namespace HealthKit { NSString TypeIdentifier { get; } } + delegate void HKWorkoutRouteBuilderAddMetadataHandler (bool success, NSError error); [Watch (4, 0), iOS (11, 0)] [BaseType (typeof (HKSeriesBuilder))] [DisableDefaultCtor] interface HKWorkoutRouteBuilder { [Export ("initWithHealthStore:device:")] - [DesignatedInitializer] IntPtr Constructor (HKHealthStore healthStore, [NullAllowed] HKDevice device); [Async, Export ("insertRouteData:completion:")] @@ -2432,6 +2547,15 @@ namespace HealthKit { [Async, Wrap ("FinishRoute (workout, metadata != null ? metadata.Dictionary : null, completion)")] void FinishRoute (HKWorkout workout, HKMetadata metadata, Action completion); + + [Watch (5, 0), iOS (12, 0)] + [Async, Protected] + [Export ("addMetadata:completion:")] + void AddMetadata (NSDictionary metadata, HKWorkoutRouteBuilderAddMetadataHandler completion); + + [Watch (5, 0), iOS (12, 0)] + [Async, Wrap ("AddMetadata (metadata != null ? metadata.Dictionary : null, completion)")] + void AddMetadata (HKMetadata metadata, HKWorkoutRouteBuilderAddMetadataHandler completion); } [Watch (4,0), iOS (11,0)] @@ -2442,4 +2566,225 @@ namespace HealthKit { IntPtr Constructor (HKWorkoutRoute workoutRoute, HKWorkoutRouteBuilderDataHandler dataHandler); } + delegate void HKWorkoutBuilderCompletionHandler (bool success, NSError error); + [Watch (5,0), iOS (12,0)] + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface HKWorkoutBuilder + { + [NullAllowed, Export ("device", ArgumentSemantic.Copy)] + HKDevice Device { get; } + + [NullAllowed, Export ("startDate", ArgumentSemantic.Copy)] + NSDate StartDate { get; } + + [NullAllowed, Export ("endDate", ArgumentSemantic.Copy)] + NSDate EndDate { get; } + + [Export ("workoutConfiguration", ArgumentSemantic.Copy)] + HKWorkoutConfiguration WorkoutConfiguration { get; } + + [Protected] + [Export ("metadata", ArgumentSemantic.Copy)] + NSDictionary NativeMetadata { get; } + + [Wrap ("NativeMetadata")] + HKMetadata Metadata { get; } + + [Export ("workoutEvents", ArgumentSemantic.Copy)] + HKWorkoutEvent[] WorkoutEvents { get; } + + [Export ("initWithHealthStore:configuration:device:")] + IntPtr Constructor (HKHealthStore healthStore, HKWorkoutConfiguration configuration, [NullAllowed] HKDevice device); + + [Async] + [Export ("beginCollectionWithStartDate:completion:")] + void BeginCollection (NSDate startDate, HKWorkoutBuilderCompletionHandler completionHandler); + + [Async] + [Export ("addSamples:completion:")] + void Add (HKSample[] samples, HKWorkoutBuilderCompletionHandler completionHandler); + + [Async] + [Export ("addWorkoutEvents:completion:")] + void Add (HKWorkoutEvent[] workoutEvents, HKWorkoutBuilderCompletionHandler completionHandler); + + [Async, Protected] + [Export ("addMetadata:completion:")] + void Add (NSDictionary metadata, HKWorkoutBuilderCompletionHandler completionHandler); + + [Async] + [Wrap ("Add (metadata.Dictionary, completionHandler)")] + void Add (HKMetadata metadata, HKWorkoutBuilderCompletionHandler completionHandler); + + [Async] + [Export ("endCollectionWithEndDate:completion:")] + void EndCollection (NSDate endDate, HKWorkoutBuilderCompletionHandler completionHandler); + + [Async] + [Export ("finishWorkoutWithCompletion:")] + void FinishWorkout (HKWorkoutBuilderCompletionHandler completionHandler); + + [Export ("discardWorkout")] + void DiscardWorkout (); + + [Export ("elapsedTimeAtDate:")] + double GetElapsedTime (NSDate date); + + [Export ("statisticsForType:")] + [return: NullAllowed] + HKStatistics GetStatistics (HKQuantityType quantityType); + + [Export ("seriesBuilderForType:")] + HKSeriesBuilder GetSeriesBuilder (HKSeriesType seriesType); + } + + delegate void HKQuantitySeriesSampleQueryQuantityDelegate (HKQuantitySeriesSampleQuery query, HKQuantity quantity, NSDate date, bool done, NSError error); + + [Watch (5,0), iOS (12,0)] + [BaseType (typeof(HKQuery))] + interface HKQuantitySeriesSampleQuery + { + [Export ("initWithSample:quantityHandler:")] + [DesignatedInitializer] + IntPtr Constructor (HKQuantitySample quantitySample, HKQuantitySeriesSampleQueryQuantityDelegate quantityHandler); + } + + delegate void HKQuantitySeriesSampleBuilderFinishSeriesDelegate (HKQuantitySample [] samples, NSError error); + + [Watch (5,0), iOS (12,0)] + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface HKQuantitySeriesSampleBuilder + { + [Export ("initWithHealthStore:quantityType:startDate:device:")] + IntPtr Constructor (HKHealthStore healthStore, HKQuantityType quantityType, NSDate startDate, [NullAllowed] HKDevice device); + + [Export ("quantityType", ArgumentSemantic.Copy)] + HKQuantityType QuantityType { get; } + + [Export ("startDate", ArgumentSemantic.Copy)] + NSDate StartDate { get; } + + [NullAllowed, Export ("device", ArgumentSemantic.Copy)] + HKDevice Device { get; } + + [Export ("insertQuantity:date:error:")] + bool Insert (HKQuantity quantity, NSDate date, [NullAllowed] out NSError error); + + [Async, Protected] + [Export ("finishSeriesWithMetadata:completion:")] + void FinishSeries ([NullAllowed] NSDictionary metadata, HKQuantitySeriesSampleBuilderFinishSeriesDelegate completionHandler); + + [Async] + [Wrap ("FinishSeries (metadata?.Dictionary, completionHandler)")] + void FinishSeries ([NullAllowed] HKMetadata metadata, HKQuantitySeriesSampleBuilderFinishSeriesDelegate completionHandler); + + [Export ("discard")] + void Discard (); + } + + [Watch (5,0), NoiOS] + [BaseType (typeof(NSObject))] + [DisableDefaultCtor] + interface HKLiveWorkoutDataSource + { + [Export ("typesToCollect", ArgumentSemantic.Copy)] + NSSet TypesToCollect { get; } + + [Export ("initWithHealthStore:workoutConfiguration:")] + [DesignatedInitializer] + IntPtr Constructor (HKHealthStore healthStore, [NullAllowed] HKWorkoutConfiguration configuration); + + [Export ("enableCollectionForType:predicate:")] + void EnableCollection (HKQuantityType quantityType, [NullAllowed] NSPredicate predicate); + + [Export ("disableCollectionForType:")] + void DisableCollection (HKQuantityType quantityType); + } + + [NoWatch, iOS (12,0)] + [BaseType (typeof (NSObject), Name = "HKFHIRResource")] + [DisableDefaultCtor] + interface HKFhirResource : NSSecureCoding, NSCopying + { + [Internal] + [Export ("resourceType")] + NSString _ResourceType { get; } + + HKFhirResourceType ResourceType { [Wrap ("HKFhirResourceTypeExtensions.GetValue (_ResourceType)")] get; } + + [Export ("identifier")] + string Identifier { get; } + + [Export ("data", ArgumentSemantic.Copy)] + NSData Data { get; } + + [NullAllowed, Export ("sourceURL", ArgumentSemantic.Copy)] + NSUrl SourceUrl { get; } + } + + [Watch (5,0), iOS (12,0)] + [DisableDefaultCtor] + [BaseType (typeof(HKQuantitySample))] + interface HKCumulativeQuantitySeriesSample + { + [Export ("sum", ArgumentSemantic.Copy)] + HKQuantity Sum { get; } + } + + [NoWatch, iOS (12,0)] + [DisableDefaultCtor] + [BaseType (typeof(HKSample))] + interface HKClinicalRecord : NSSecureCoding, NSCopying + { + [Export ("clinicalType", ArgumentSemantic.Copy)] + HKClinicalType ClinicalType { get; } + + [Export ("displayName")] + string DisplayName { get; } + + [NullAllowed, Export ("FHIRResource", ArgumentSemantic.Copy)] + HKFhirResource FhirResource { get; } + } + + interface IHKLiveWorkoutBuilderDelegate {} + [Watch (5,0), NoiOS] + [Protocol, Model] + [BaseType (typeof(NSObject))] + interface HKLiveWorkoutBuilderDelegate + { + [Abstract] + [Export ("workoutBuilder:didCollectDataOfTypes:")] + void DidCollectData (HKLiveWorkoutBuilder workoutBuilder, NSSet collectedTypes); + + [Abstract] + [Export ("workoutBuilderDidCollectEvent:")] + void DidCollectEvent (HKLiveWorkoutBuilder workoutBuilder); + } + + [Watch (5,0), NoiOS] + [DisableDefaultCtor] + [BaseType (typeof(HKWorkoutBuilder))] + interface HKLiveWorkoutBuilder + { + [Wrap ("WeakDelegate")] + [NullAllowed] + IHKLiveWorkoutBuilderDelegate Delegate { get; set; } + + [NullAllowed, Export ("delegate", ArgumentSemantic.Weak)] + NSObject WeakDelegate { get; set; } + + [NullAllowed, Export ("workoutSession", ArgumentSemantic.Weak)] + HKWorkoutSession WorkoutSession { get; } + + [Export ("shouldCollectWorkoutEvents")] + bool ShouldCollectWorkoutEvents { get; set; } + + [NullAllowed, Export ("dataSource", ArgumentSemantic.Strong)] + HKLiveWorkoutDataSource DataSource { get; set; } + + [Export ("elapsedTime")] + double ElapsedTime { get; } + } } diff --git a/tests/introspection/ApiProtocolTest.cs b/tests/introspection/ApiProtocolTest.cs index 6ffcd79091..bb4b11fba4 100644 --- a/tests/introspection/ApiProtocolTest.cs +++ b/tests/introspection/ApiProtocolTest.cs @@ -101,6 +101,7 @@ namespace Introspection { case "VSAccountMetadata": case "VSAccountMetadataRequest": case "VSAccountProviderResponse": + case "HKCumulativeQuantitySeriesSample": return true; } break; diff --git a/tests/introspection/ApiTypoTest.cs b/tests/introspection/ApiTypoTest.cs index feadac9721..467575c26a 100644 --- a/tests/introspection/ApiTypoTest.cs +++ b/tests/introspection/ApiTypoTest.cs @@ -206,6 +206,7 @@ namespace Introspection "Exr", "Felica", // Japanese contactless RFID smart card system "Femtowatts", + "Fhir", "Flipside", "Formati", "Fov", diff --git a/tests/xtro-sharpie/iOS-HealthKit.todo b/tests/xtro-sharpie/iOS-HealthKit.todo deleted file mode 100644 index 5b6b0b3e21..0000000000 --- a/tests/xtro-sharpie/iOS-HealthKit.todo +++ /dev/null @@ -1,70 +0,0 @@ -!extra-designated-initializer! HKWorkoutRouteBuilder::initWithHealthStore:device: is incorrectly decorated with an [DesignatedInitializer] attribute -!missing-enum! HKAuthorizationRequestStatus not bound -!missing-field! HKClinicalTypeIdentifierAllergyRecord not bound -!missing-field! HKClinicalTypeIdentifierConditionRecord not bound -!missing-field! HKClinicalTypeIdentifierImmunizationRecord not bound -!missing-field! HKClinicalTypeIdentifierLabResultRecord not bound -!missing-field! HKClinicalTypeIdentifierMedicationRecord not bound -!missing-field! HKClinicalTypeIdentifierProcedureRecord not bound -!missing-field! HKClinicalTypeIdentifierVitalSignRecord not bound -!missing-field! HKFHIRResourceTypeAllergyIntolerance not bound -!missing-field! HKFHIRResourceTypeCondition not bound -!missing-field! HKFHIRResourceTypeImmunization not bound -!missing-field! HKFHIRResourceTypeMedicationDispense not bound -!missing-field! HKFHIRResourceTypeMedicationOrder not bound -!missing-field! HKFHIRResourceTypeMedicationStatement not bound -!missing-field! HKFHIRResourceTypeObservation not bound -!missing-field! HKFHIRResourceTypeProcedure not bound -!missing-field! HKMetadataKeyFitnessMachineDuration not bound -!missing-field! HKPredicateKeyPathClinicalRecordFHIRResourceIdentifier not bound -!missing-field! HKPredicateKeyPathClinicalRecordFHIRResourceType not bound -!missing-field! HKPredicateKeyPathSum not bound -!missing-selector! +HKObjectType::clinicalTypeForIdentifier: not bound -!missing-selector! +HKQuery::predicateForClinicalRecordsFromSource:FHIRResourceType:identifier: not bound -!missing-selector! +HKQuery::predicateForClinicalRecordsWithFHIRResourceType: not bound -!missing-selector! HKClinicalRecord::clinicalType not bound -!missing-selector! HKClinicalRecord::displayName not bound -!missing-selector! HKClinicalRecord::FHIRResource not bound -!missing-selector! HKCumulativeQuantitySeriesSample::sum not bound -!missing-selector! HKFHIRResource::data not bound -!missing-selector! HKFHIRResource::identifier not bound -!missing-selector! HKFHIRResource::resourceType not bound -!missing-selector! HKFHIRResource::sourceURL not bound -!missing-selector! HKHealthStore::getRequestStatusForAuthorizationToShareTypes:readTypes:completion: not bound -!missing-selector! HKQuantitySample::count not bound -!missing-selector! HKQuantitySeriesSampleBuilder::device not bound -!missing-selector! HKQuantitySeriesSampleBuilder::finishSeriesWithMetadata:completion: not bound -!missing-selector! HKQuantitySeriesSampleBuilder::initWithHealthStore:quantityType:startDate:device: not bound -!missing-selector! HKQuantitySeriesSampleBuilder::insertQuantity:date:error: not bound -!missing-selector! HKQuantitySeriesSampleBuilder::quantityType not bound -!missing-selector! HKQuantitySeriesSampleBuilder::startDate not bound -!missing-selector! HKQuantitySeriesSampleQuery::initWithSample:quantityHandler: not bound -!missing-selector! HKStatistics::mostRecentQuantityDateIntervalForSource: not bound -!missing-selector! HKStatistics::mostRecentQuantityForSource: not bound -!missing-selector! HKWorkoutBuilder::addMetadata:completion: not bound -!missing-selector! HKWorkoutBuilder::addSamples:completion: not bound -!missing-selector! HKWorkoutBuilder::addWorkoutEvents:completion: not bound -!missing-selector! HKWorkoutBuilder::beginCollectionWithStartDate:completion: not bound -!missing-selector! HKWorkoutBuilder::device not bound -!missing-selector! HKWorkoutBuilder::elapsedTimeAtDate: not bound -!missing-selector! HKWorkoutBuilder::endCollectionWithEndDate:completion: not bound -!missing-selector! HKWorkoutBuilder::endDate not bound -!missing-selector! HKWorkoutBuilder::finishWorkoutWithCompletion: not bound -!missing-selector! HKWorkoutBuilder::initWithHealthStore:configuration:device: not bound -!missing-selector! HKWorkoutBuilder::metadata not bound -!missing-selector! HKWorkoutBuilder::seriesBuilderForType: not bound -!missing-selector! HKWorkoutBuilder::startDate not bound -!missing-selector! HKWorkoutBuilder::statisticsForType: not bound -!missing-selector! HKWorkoutBuilder::workoutConfiguration not bound -!missing-selector! HKWorkoutBuilder::workoutEvents not bound -!missing-selector! HKWorkoutRouteBuilder::addMetadata:completion: not bound -!missing-type! HKClinicalRecord not bound -!missing-type! HKClinicalType not bound -!missing-type! HKCumulativeQuantitySeriesSample not bound -!missing-type! HKFHIRResource not bound -!missing-type! HKQuantitySeriesSampleBuilder not bound -!missing-type! HKQuantitySeriesSampleQuery not bound -!missing-type! HKWorkoutBuilder not bound -## appended from unclassified file -!missing-field! HKMetadataKeyCrossTrainerDistance not bound -!missing-field! HKMetadataKeyIndoorBikeDistance not bound diff --git a/tests/xtro-sharpie/watchOS-HealthKit.todo b/tests/xtro-sharpie/watchOS-HealthKit.todo deleted file mode 100644 index a40f61feef..0000000000 --- a/tests/xtro-sharpie/watchOS-HealthKit.todo +++ /dev/null @@ -1,66 +0,0 @@ -!extra-designated-initializer! HKWorkoutRouteBuilder::initWithHealthStore:device: is incorrectly decorated with an [DesignatedInitializer] attribute -!missing-enum! HKAuthorizationRequestStatus not bound -!missing-field! HKClinicalTypeIdentifierAllergyRecord not bound -!missing-field! HKClinicalTypeIdentifierConditionRecord not bound -!missing-field! HKClinicalTypeIdentifierImmunizationRecord not bound -!missing-field! HKClinicalTypeIdentifierLabResultRecord not bound -!missing-field! HKClinicalTypeIdentifierMedicationRecord not bound -!missing-field! HKClinicalTypeIdentifierProcedureRecord not bound -!missing-field! HKClinicalTypeIdentifierVitalSignRecord not bound -!missing-field! HKMetadataKeyFitnessMachineDuration not bound -!missing-field! HKPredicateKeyPathSum not bound -!missing-protocol! HKLiveWorkoutBuilderDelegate not bound -!missing-selector! +HKObjectType::clinicalTypeForIdentifier: not bound -!missing-selector! HKCumulativeQuantitySeriesSample::sum not bound -!missing-selector! HKHealthStore::getRequestStatusForAuthorizationToShareTypes:readTypes:completion: not bound -!missing-selector! HKHealthStore::recoverActiveWorkoutSessionWithCompletion: not bound -!missing-selector! HKLiveWorkoutBuilder::dataSource not bound -!missing-selector! HKLiveWorkoutBuilder::delegate not bound -!missing-selector! HKLiveWorkoutBuilder::elapsedTime not bound -!missing-selector! HKLiveWorkoutBuilder::setDataSource: not bound -!missing-selector! HKLiveWorkoutBuilder::setDelegate: not bound -!missing-selector! HKLiveWorkoutBuilder::setShouldCollectWorkoutEvents: not bound -!missing-selector! HKLiveWorkoutBuilder::shouldCollectWorkoutEvents not bound -!missing-selector! HKLiveWorkoutBuilder::workoutSession not bound -!missing-selector! HKLiveWorkoutDataSource::disableCollectionForType: not bound -!missing-selector! HKLiveWorkoutDataSource::enableCollectionForType:predicate: not bound -!missing-selector! HKLiveWorkoutDataSource::initWithHealthStore:workoutConfiguration: not bound -!missing-selector! HKLiveWorkoutDataSource::typesToCollect not bound -!missing-selector! HKQuantitySample::count not bound -!missing-selector! HKQuantitySeriesSampleBuilder::device not bound -!missing-selector! HKQuantitySeriesSampleBuilder::finishSeriesWithMetadata:completion: not bound -!missing-selector! HKQuantitySeriesSampleBuilder::initWithHealthStore:quantityType:startDate:device: not bound -!missing-selector! HKQuantitySeriesSampleBuilder::insertQuantity:date:error: not bound -!missing-selector! HKQuantitySeriesSampleBuilder::quantityType not bound -!missing-selector! HKQuantitySeriesSampleBuilder::startDate not bound -!missing-selector! HKQuantitySeriesSampleQuery::initWithSample:quantityHandler: not bound -!missing-selector! HKStatistics::mostRecentQuantityDateIntervalForSource: not bound -!missing-selector! HKStatistics::mostRecentQuantityForSource: not bound -!missing-selector! HKWorkoutBuilder::addMetadata:completion: not bound -!missing-selector! HKWorkoutBuilder::addSamples:completion: not bound -!missing-selector! HKWorkoutBuilder::addWorkoutEvents:completion: not bound -!missing-selector! HKWorkoutBuilder::beginCollectionWithStartDate:completion: not bound -!missing-selector! HKWorkoutBuilder::device not bound -!missing-selector! HKWorkoutBuilder::elapsedTimeAtDate: not bound -!missing-selector! HKWorkoutBuilder::endCollectionWithEndDate:completion: not bound -!missing-selector! HKWorkoutBuilder::endDate not bound -!missing-selector! HKWorkoutBuilder::finishWorkoutWithCompletion: not bound -!missing-selector! HKWorkoutBuilder::initWithHealthStore:configuration:device: not bound -!missing-selector! HKWorkoutBuilder::metadata not bound -!missing-selector! HKWorkoutBuilder::seriesBuilderForType: not bound -!missing-selector! HKWorkoutBuilder::startDate not bound -!missing-selector! HKWorkoutBuilder::statisticsForType: not bound -!missing-selector! HKWorkoutBuilder::workoutConfiguration not bound -!missing-selector! HKWorkoutBuilder::workoutEvents not bound -!missing-selector! HKWorkoutRouteBuilder::addMetadata:completion: not bound -!missing-selector! HKWorkoutSession::initWithHealthStore:configuration:error: not bound -!missing-type! HKClinicalType not bound -!missing-type! HKCumulativeQuantitySeriesSample not bound -!missing-type! HKLiveWorkoutBuilder not bound -!missing-type! HKLiveWorkoutDataSource not bound -!missing-type! HKQuantitySeriesSampleBuilder not bound -!missing-type! HKQuantitySeriesSampleQuery not bound -!missing-type! HKWorkoutBuilder not bound -## appended from unclassified file -!missing-field! HKMetadataKeyCrossTrainerDistance not bound -!missing-field! HKMetadataKeyIndoorBikeDistance not bound