Skip to content

Commit 1f457e1

Browse files
committed
Merge pull request ResearchKit#615 from apbendi/nav-ordered-progress
Allow user to opt-in to linear progress reporting on ORKNavigableOrderedTask
2 parents 218b8af + 729247c commit 1f457e1

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

ResearchKit/Common/ORKNavigableOrderedTask.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,12 @@ ORK_CLASS_AVAILABLE
9898
*/
9999
@property (nonatomic, copy, readonly) NSDictionary<NSString *, ORKStepNavigationRule *> *stepNavigationRules;
100100

101+
/**
102+
Determines whether the task should report its progress as a linear ordered task or not.
103+
The default value of this property is `NO`.
104+
*/
105+
@property (nonatomic) BOOL shouldReportProgress;
106+
101107
@end
102108

103109

ResearchKit/Common/ORKNavigableOrderedTask.m

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ - (instancetype)initWithIdentifier:(NSString *)identifier steps:(NSArray<ORKStep
4747
self = [super initWithIdentifier:identifier steps:steps];
4848
if (self) {
4949
_stepNavigationRules = nil;
50+
_shouldReportProgress = NO;
5051
}
5152
return self;
5253
}
@@ -106,8 +107,12 @@ - (ORKStep *)stepBeforeStep:(ORKStep *)step withResult:(ORKTaskResult *)result {
106107
return previousStep;
107108
}
108109

109-
// ORKNavigableOrderedTask doesn't have a linear order
110+
// Assume ORKNavigableOrderedTask doesn't have a linear order unless user specifically overrides
110111
- (ORKTaskProgress)progressOfCurrentStep:(ORKStep *)step withResult:(ORKTaskResult *)result {
112+
if (_shouldReportProgress) {
113+
return [super progressOfCurrentStep:step withResult:result];
114+
}
115+
111116
return ORKTaskProgressMake(0, 0);
112117
}
113118

0 commit comments

Comments
 (0)