Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
rn-apple-healthkit
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Jira
Jira
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ym
rn-apple-healthkit
Commits
fc2e898e
Commit
fc2e898e
authored
Jun 28, 2016
by
Greg Wilson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added fetchCumulativeSumStatisticsCollection method to Queries
parent
ebdf34f8
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
107 additions
and
8 deletions
+107
-8
RCTAppleHealthKit/RCTAppleHealthKit+Queries.h
RCTAppleHealthKit/RCTAppleHealthKit+Queries.h
+5
-0
RCTAppleHealthKit/RCTAppleHealthKit+Queries.m
RCTAppleHealthKit/RCTAppleHealthKit+Queries.m
+102
-8
No files found.
RCTAppleHealthKit/RCTAppleHealthKit+Queries.h
View file @
fc2e898e
...
...
@@ -14,4 +14,9 @@
-
(
void
)
fetchSumOfSamplesTodayForType
:(
HKQuantityType
*
)
quantityType
unit
:(
HKUnit
*
)
unit
completion
:(
void
(
^
)(
double
,
NSError
*
))
completionHandler
;
-
(
void
)
fetchSumOfSamplesOnDayForType
:(
HKQuantityType
*
)
quantityType
unit
:(
HKUnit
*
)
unit
day
:(
NSDate
*
)
day
completion
:(
void
(
^
)(
double
,
NSError
*
))
completionHandler
;
-
(
void
)
fetchCumulativeSumStatisticsCollection
:(
HKQuantityType
*
)
quantityType
unit
:(
HKUnit
*
)
unit
startDate
:(
NSDate
*
)
startDate
endDate
:(
NSDate
*
)
endDate
completion
:(
void
(
^
)(
NSArray
*
,
NSError
*
))
completionHandler
;
@end
RCTAppleHealthKit/RCTAppleHealthKit+Queries.m
View file @
fc2e898e
...
...
@@ -69,7 +69,6 @@
options:
HKStatisticsOptionCumulativeSum
completionHandler:
^
(
HKStatisticsQuery
*
query
,
HKStatistics
*
result
,
NSError
*
error
)
{
HKQuantity
*
sum
=
[
result
sumQuantity
];
if
(
completionHandler
)
{
double
value
=
[
sum
doubleValueForUnit
:
unit
];
completionHandler
(
value
,
error
);
...
...
@@ -81,4 +80,99 @@
//- (void)fetchSumOfSamplesBetweenDatesForType:(HKQuantityType *)quantityType unit:(HKUnit *)unit startDate:(NSDate *)startDate endDate:(NSDate *)endDate completion:(void (^)(NSArray *, NSError *))completionHandler {
// NSPredicate *predicate = [RCTAppleHealthKit predicateForSamplesBetweenDates:startDate endDate:endDate];
//
// HKStatisticsQuery *query = [[HKStatisticsQuery alloc] initWithQuantityType:quantityType
// quantitySamplePredicate:predicate
// options:HKStatisticsOptionCumulativeSum
// completionHandler:^(HKStatisticsQuery *query, HKStatistics *result, NSError *error) {
// HKQuantity *sum = [result sumQuantity];
// if (completionHandler) {
// double value = [sum doubleValueForUnit:unit];
// completionHandler(value, error);
// }
// }];
//
// [self.healthStore executeQuery:query];
//}
-
(
void
)
fetchCumulativeSumStatisticsCollection
:(
HKQuantityType
*
)
quantityType
unit
:(
HKUnit
*
)
unit
startDate
:(
NSDate
*
)
startDate
endDate
:(
NSDate
*
)
endDate
completion
:(
void
(
^
)(
NSArray
*
,
NSError
*
))
completionHandler
{
NSCalendar
*
calendar
=
[
NSCalendar
currentCalendar
];
NSDateComponents
*
interval
=
[[
NSDateComponents
alloc
]
init
];
interval
.
day
=
1
;
NSDateComponents
*
anchorComponents
=
[
calendar
components
:
NSCalendarUnitDay
|
NSCalendarUnitMonth
|
NSCalendarUnitYear
fromDate:
[
NSDate
date
]];
anchorComponents
.
hour
=
0
;
NSDate
*
anchorDate
=
[
calendar
dateFromComponents
:
anchorComponents
];
// HKQuantityType *quantityType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount];
// Create the query
HKStatisticsCollectionQuery
*
query
=
[[
HKStatisticsCollectionQuery
alloc
]
initWithQuantityType
:
quantityType
quantitySamplePredicate:
nil
options:
HKStatisticsOptionCumulativeSum
anchorDate:
anchorDate
intervalComponents:
interval
];
// Set the results handler
query
.
initialResultsHandler
=
^
(
HKStatisticsCollectionQuery
*
query
,
HKStatisticsCollection
*
results
,
NSError
*
error
)
{
if
(
error
)
{
// Perform proper error handling here
NSLog
(
@"*** An error occurred while calculating the statistics: %@ ***"
,
error
.
localizedDescription
);
}
// NSDate *endDate = [NSDate date];
// NSDate *startDate = [calendar dateByAddingUnit:NSCalendarUnitDay
// value:-7
// toDate:endDate
// options:0];
// Plot the daily step counts over the past 7 days
NSMutableArray
*
data
=
[
NSMutableArray
arrayWithCapacity
:
1
];
[
results
enumerateStatisticsFromDate
:
startDate
toDate:
endDate
withBlock:
^
(
HKStatistics
*
result
,
BOOL
*
stop
)
{
HKQuantity
*
quantity
=
result
.
sumQuantity
;
if
(
quantity
)
{
NSDate
*
date
=
result
.
startDate
;
double
value
=
[
quantity
doubleValueForUnit
:[
HKUnit
countUnit
]];
NSLog
(
@"%@: %f"
,
date
,
value
);
NSString
*
dateString
=
[
RCTAppleHealthKit
buildISO8601StringFromDate
:
date
];
NSArray
*
elem
=
@[
dateString
,
@
(
value
)];
[
data
addObject
:
elem
];
}
}];
// NSArray *arr = @[@"Mercedes-Benz", @"BMW", @"Porsche", @"Opel", @"Volkswagen", @"Audi"];
NSError
*
err
;
completionHandler
(
data
,
err
);
};
[
self
.
healthStore
executeQuery
:
query
];
}
@end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment