Compare commits
2 Commits
2.2.9-dev
...
2.2.12-dev
| Author | SHA1 | Date | |
|---|---|---|---|
| b8f155974c | |||
| 2fb22a6256 |
@@ -45,6 +45,9 @@
|
||||
0B6CD14329119C7F004BC4A0 /* ORKNormalizedReactionTimeStimulusView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BAF9797291088EE00EF138A /* ORKNormalizedReactionTimeStimulusView.h */; };
|
||||
0B6CD14429119CBA004BC4A0 /* ORKNormalizedReactionTimeContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BAF9798291088EE00EF138A /* ORKNormalizedReactionTimeContentView.h */; };
|
||||
0B6CD14529119CCC004BC4A0 /* ORKNormalizedReactionTimeViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BAF979D291088F000EF138A /* ORKNormalizedReactionTimeViewController.h */; };
|
||||
0B9CC5672A68C02C00080E29 /* UIImageView+ResearchKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B9CC5652A68C02C00080E29 /* UIImageView+ResearchKit.h */; };
|
||||
0B9CC5682A68C02C00080E29 /* UIImageView+ResearchKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B9CC5662A68C02C00080E29 /* UIImageView+ResearchKit.m */; };
|
||||
0BA0F4B22A1C1FD300A55672 /* ORKHealthKitQuestionStepViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BA0F4B12A1C1FD300A55672 /* ORKHealthKitQuestionStepViewControllerTests.swift */; };
|
||||
0BAF97A0291088F200EF138A /* ORKNormalizedReactionTimeResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BAF9796291088ED00EF138A /* ORKNormalizedReactionTimeResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
0BAF97A3291088F200EF138A /* ORKNormalizedReactionTimeStep.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BAF9799291088EE00EF138A /* ORKNormalizedReactionTimeStep.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
0BAF97A4291088F200EF138A /* ORKNormalizedReactionTimeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BAF979A291088EF00EF138A /* ORKNormalizedReactionTimeViewController.m */; };
|
||||
@@ -1042,6 +1045,10 @@
|
||||
05F3765923C797930068E166 /* ResearchKit.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = ResearchKit.xctestplan; sourceTree = "<group>"; };
|
||||
0B59A6BD28C1738D005035B4 /* ORKPickerTestDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ORKPickerTestDelegate.h; sourceTree = "<group>"; };
|
||||
0B59A6BE28C1738D005035B4 /* ORKPickerTestDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ORKPickerTestDelegate.m; sourceTree = "<group>"; };
|
||||
0B9CC5652A68C02C00080E29 /* UIImageView+ResearchKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIImageView+ResearchKit.h"; sourceTree = "<group>"; };
|
||||
0B9CC5662A68C02C00080E29 /* UIImageView+ResearchKit.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIImageView+ResearchKit.m"; sourceTree = "<group>"; };
|
||||
0B7D32E92AE6F8040071C576 /* ORKQuestionStepViewController+TestingSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ORKQuestionStepViewController+TestingSupport.h"; sourceTree = "<group>"; };
|
||||
0BA0F4B12A1C1FD300A55672 /* ORKHealthKitQuestionStepViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ORKHealthKitQuestionStepViewControllerTests.swift; sourceTree = "<group>"; };
|
||||
0BAF9796291088ED00EF138A /* ORKNormalizedReactionTimeResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ORKNormalizedReactionTimeResult.h; sourceTree = "<group>"; };
|
||||
0BAF9797291088EE00EF138A /* ORKNormalizedReactionTimeStimulusView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ORKNormalizedReactionTimeStimulusView.h; sourceTree = "<group>"; };
|
||||
0BAF9798291088EE00EF138A /* ORKNormalizedReactionTimeContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ORKNormalizedReactionTimeContentView.h; sourceTree = "<group>"; };
|
||||
@@ -3121,6 +3128,7 @@
|
||||
86CC8EA71AC09383001CCD89 /* Info.plist */,
|
||||
86CC8EA81AC09383001CCD89 /* ORKAccessibilityTests.m */,
|
||||
248604051B4C98760010C8A0 /* ORKAnswerFormatTests.m */,
|
||||
0B7D32E92AE6F8040071C576 /* ORKQuestionStepViewController+TestingSupport.h */,
|
||||
0B59A6BD28C1738D005035B4 /* ORKPickerTestDelegate.h */,
|
||||
0B59A6BE28C1738D005035B4 /* ORKPickerTestDelegate.m */,
|
||||
86CC8EA91AC09383001CCD89 /* ORKChoiceAnswerFormatHelperTests.m */,
|
||||
@@ -3142,6 +3150,7 @@
|
||||
1490DD01224D6A21003FEEDA /* ORKResultPredicateTests.swift */,
|
||||
1490DD03224D6A61003FEEDA /* ORKTestResultPredicateType.swift */,
|
||||
14F7AC8A2269035200D52F41 /* ORKStepViewControllerTests.swift */,
|
||||
0BA0F4B12A1C1FD300A55672 /* ORKHealthKitQuestionStepViewControllerTests.swift */,
|
||||
14E7903F226A5F72009D8083 /* ORKStepViewControllerHelpers.swift */,
|
||||
);
|
||||
path = ResearchKitTests;
|
||||
@@ -3297,6 +3306,8 @@
|
||||
86C40BEA1A8D7C5C00081FAC /* UIResponder+ResearchKit.m */,
|
||||
805685771C90C19500BF437A /* UIImage+ResearchKit.h */,
|
||||
805685781C90C19500BF437A /* UIImage+ResearchKit.m */,
|
||||
0B9CC5652A68C02C00080E29 /* UIImageView+ResearchKit.h */,
|
||||
0B9CC5662A68C02C00080E29 /* UIImageView+ResearchKit.m */,
|
||||
);
|
||||
name = UIKitCategories;
|
||||
sourceTree = "<group>";
|
||||
@@ -4639,7 +4650,7 @@
|
||||
861D2AF01B8409D9008C4CD0 /* ORKTimedWalkContentView.h in Headers */,
|
||||
2489F7B31D65214D008DEF20 /* ORKVideoCaptureStepViewController.h in Headers */,
|
||||
86C40E0C1A8D7C5C00081FAC /* ORKConsentReviewStepViewController.h in Headers */,
|
||||
511B8AAE293A767C00049947 /* ORKTouchAbilityTouchTracker.h in Headers */,
|
||||
0B9CC5672A68C02C00080E29 /* UIImageView+ResearchKit.h in Headers */,
|
||||
86C40C321A8D7C5C00081FAC /* ORKFitnessStepViewController.h in Headers */,
|
||||
FF5CA6121D2C2670001660A3 /* ORKTableStep.h in Headers */,
|
||||
BCC1CD9A1B7ED64F00D86886 /* ORKYAxisView.h in Headers */,
|
||||
@@ -4983,6 +4994,7 @@
|
||||
14F7AC8B2269035200D52F41 /* ORKStepViewControllerTests.swift in Sources */,
|
||||
BAB96755226E5D67006AAC56 /* ORKStepContainerViewTests.m in Sources */,
|
||||
14BE7092220A206B005DEF07 /* ORKDataLoggerManagerTests.m in Sources */,
|
||||
0BA0F4B22A1C1FD300A55672 /* ORKHealthKitQuestionStepViewControllerTests.swift in Sources */,
|
||||
14D3F09C225BCA8100A3962D /* ORKBorderedButtonTests.swift in Sources */,
|
||||
1483DBB5220125BE004C26B6 /* ORKActiveStepTests.swift in Sources */,
|
||||
1490DCF6224D426B003FEEDA /* ORKSignatureResultTests.swift in Sources */,
|
||||
@@ -5074,6 +5086,7 @@
|
||||
86C40CDA1A8D7C5C00081FAC /* ORKTextFieldView.m in Sources */,
|
||||
8419D6731FB73EC60088D7E5 /* ORKWebViewStepViewController.m in Sources */,
|
||||
517514572459F0BE009E8FFC /* ORK3DModelStepContentView.m in Sources */,
|
||||
0B9CC5682A68C02C00080E29 /* UIImageView+ResearchKit.m in Sources */,
|
||||
B8760F2C1AFBEFB0007FA16F /* ORKScaleRangeDescriptionLabel.m in Sources */,
|
||||
86C40D821A8D7C5C00081FAC /* ORKSelectionSubTitleLabel.m in Sources */,
|
||||
FF919A441E81B904005C2A1E /* ORKPSATResult.m in Sources */,
|
||||
|
||||
@@ -45,6 +45,9 @@
|
||||
#import "ORKTaskViewController_Internal.h"
|
||||
#import "ORKRecorder_Internal.h"
|
||||
|
||||
#import "ORKStepView_Private.h"
|
||||
#import "ORKStepContentView.h"
|
||||
|
||||
#import "ORKActiveStep_Internal.h"
|
||||
#import "ORKCollectionResult_Private.h"
|
||||
#import "ORKResult.h"
|
||||
@@ -125,6 +128,7 @@
|
||||
if (_customView) {
|
||||
_activeStepView.customContentView = _customView;
|
||||
}
|
||||
_activeStepView.stepContentView.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
[self.view addSubview:_activeStepView];
|
||||
}
|
||||
|
||||
|
||||
@@ -51,7 +51,6 @@
|
||||
- (void)validateParameters {
|
||||
[super validateParameters];
|
||||
|
||||
// TODO:
|
||||
}
|
||||
|
||||
- (BOOL)startsFinished {
|
||||
|
||||
@@ -49,7 +49,6 @@
|
||||
- (void)validateParameters {
|
||||
[super validateParameters];
|
||||
|
||||
// TODO:
|
||||
}
|
||||
|
||||
- (BOOL)startsFinished {
|
||||
|
||||
@@ -49,7 +49,6 @@
|
||||
- (void)validateParameters {
|
||||
[super validateParameters];
|
||||
|
||||
// TODO:
|
||||
}
|
||||
|
||||
- (BOOL)startsFinished {
|
||||
|
||||
@@ -50,7 +50,6 @@
|
||||
- (void)validateParameters {
|
||||
[super validateParameters];
|
||||
|
||||
// TODO:
|
||||
}
|
||||
|
||||
- (BOOL)startsFinished {
|
||||
|
||||
@@ -51,7 +51,6 @@
|
||||
- (void)validateParameters {
|
||||
[super validateParameters];
|
||||
|
||||
// TODO:
|
||||
}
|
||||
|
||||
- (BOOL)startsFinished {
|
||||
|
||||
@@ -51,7 +51,6 @@
|
||||
- (void)validateParameters {
|
||||
[super validateParameters];
|
||||
|
||||
// TODO:
|
||||
}
|
||||
|
||||
- (BOOL)startsFinished {
|
||||
|
||||
@@ -173,7 +173,8 @@ static const CGFloat PickerMinimumHeight = 34.0;
|
||||
- (void)pickerWillAppear {
|
||||
// Report current value, since ORKHeightPicker always has a value
|
||||
[self pickerView];
|
||||
[self valueDidChange:self];
|
||||
// only do the assignment that's done in `valueDidChange`
|
||||
_answer = [self selectedAnswerValue];
|
||||
[self accessibilityFocusOnPickerElement];
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,8 @@
|
||||
|
||||
#import "ORKHelpers_Internal.h"
|
||||
#import "ORKSkin.h"
|
||||
|
||||
#import "UIImageView+ResearchKit.h"
|
||||
#import "UIImage+ResearchKit.h"
|
||||
|
||||
@interface ORKChoiceButtonView : UIView
|
||||
|
||||
@@ -45,6 +46,7 @@
|
||||
|
||||
@property (nonatomic, strong) UIButton *button;
|
||||
@property (nonatomic, copy) NSString *labelText;
|
||||
@property (nonatomic, copy) ORKImageChoice *choice;
|
||||
|
||||
@end
|
||||
|
||||
@@ -54,17 +56,12 @@
|
||||
- (instancetype)initWithImageChoice:(ORKImageChoice *)choice {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
_choice = [choice copy];
|
||||
_labelText = choice.text.length > 0 ? choice.text: @" ";
|
||||
|
||||
self.button = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
_button.exclusiveTouch = YES;
|
||||
|
||||
if (choice.selectedStateImage) {
|
||||
[_button setImage:choice.selectedStateImage forState:UIControlStateSelected];
|
||||
}
|
||||
|
||||
[_button setImage:choice.normalStateImage forState:UIControlStateNormal];
|
||||
|
||||
[self setupButtonImagesFromImageChoice:choice];
|
||||
_button.imageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
|
||||
[self addSubview:_button];
|
||||
@@ -78,10 +75,46 @@
|
||||
} else {
|
||||
self.button.accessibilityLabel = self.labelText;
|
||||
}
|
||||
[self updateViewColors];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setupButtonImagesFromImageChoice:(ORKImageChoice *)choice {
|
||||
if ([UITraitCollection currentTraitCollection].userInterfaceStyle == UIUserInterfaceStyleDark) {
|
||||
[_button setImage:[_button.imageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
|
||||
} else {
|
||||
[_button setImage:[_button.imageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
|
||||
}
|
||||
|
||||
if (choice.selectedStateImage) {
|
||||
UIImage *selectedStateImage = choice.selectedStateImage;
|
||||
if (@available(iOS 12.0, *)) {
|
||||
selectedStateImage = [choice.selectedStateImage ork_imageWithRenderingModeForUserInterfaceStyle:self.traitCollection.userInterfaceStyle];
|
||||
}
|
||||
[_button setImage:selectedStateImage forState:UIControlStateSelected];
|
||||
}
|
||||
|
||||
UIImage *normalStateImage = choice.normalStateImage;
|
||||
if (@available(iOS 12.0, *)) {
|
||||
normalStateImage = [choice.normalStateImage ork_imageWithRenderingModeForUserInterfaceStyle:self.traitCollection.userInterfaceStyle];
|
||||
}
|
||||
|
||||
[_button setImage:normalStateImage forState:UIControlStateNormal];
|
||||
}
|
||||
|
||||
- (void)updateViewColors {
|
||||
if (@available(iOS 12.0, *)) {
|
||||
[_button.imageView updateRenderingModeForUserInterfaceStyle:self.traitCollection.userInterfaceStyle];
|
||||
_button.imageView.tintColor = self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark ? [UIColor whiteColor] : nil;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
|
||||
[super traitCollectionDidChange:previousTraitCollection];
|
||||
[self setupButtonImagesFromImageChoice:_choice];
|
||||
}
|
||||
|
||||
- (void)setUpConstraints {
|
||||
NSMutableArray *constraints = [NSMutableArray new];
|
||||
|
||||
@@ -188,6 +221,7 @@ static const CGFloat SpacerHeight = 5.0;
|
||||
|
||||
ORKChoiceButtonView *buttonView = [[ORKChoiceButtonView alloc] initWithImageChoice:imageChoice];
|
||||
[buttonView.button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside];
|
||||
buttonView.button.imageView.layer.cornerRadius = ORKImageChoiceButtonCornerRadii;
|
||||
[buttonViews addObject:buttonView];
|
||||
[self addSubview:buttonView];
|
||||
}
|
||||
@@ -370,7 +404,16 @@ static const CGFloat SpacerHeight = 5.0;
|
||||
- (void)resetLabelText {
|
||||
_placeHolderLabel.hidden = NO;
|
||||
_choiceLabel.hidden = !_placeHolderLabel.hidden;
|
||||
|
||||
}
|
||||
|
||||
- (void)resetButtonSelection:(UIButton *)button {
|
||||
[_buttonViews enumerateObjectsUsingBlock:^(ORKChoiceButtonView *buttonView, NSUInteger idx, BOOL *stop) {
|
||||
if (_singleChoice) {
|
||||
buttonView.button.imageView.backgroundColor = nil;
|
||||
} else if ([buttonView.button isEqual: button]) {
|
||||
buttonView.button.imageView.backgroundColor = nil;
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)setLabelText:(NSString *)text {
|
||||
@@ -398,6 +441,7 @@ static const CGFloat SpacerHeight = 5.0;
|
||||
if (buttonView.button != button) {
|
||||
if (_singleChoice) {
|
||||
buttonView.button.selected = NO;
|
||||
buttonView.button.imageView.backgroundColor = nil;
|
||||
}
|
||||
} else {
|
||||
if (_singleChoice) {
|
||||
@@ -405,6 +449,7 @@ static const CGFloat SpacerHeight = 5.0;
|
||||
} else {
|
||||
[self setLabelText:[_helper labelForChoiceAnswer:[_helper answerForSelectedIndexes:[self selectedIndexes]]]];
|
||||
}
|
||||
buttonView.button.imageView.backgroundColor = [UIColor lightGrayColor];
|
||||
}
|
||||
|
||||
}];
|
||||
@@ -415,6 +460,7 @@ static const CGFloat SpacerHeight = 5.0;
|
||||
} else {
|
||||
[self setLabelText:[_helper labelForChoiceAnswer:[_helper answerForSelectedIndexes:[self selectedIndexes]]]];
|
||||
}
|
||||
[self resetButtonSelection:button];
|
||||
}
|
||||
|
||||
_answer = [_helper answerForSelectedIndexes:[self selectedIndexes]];
|
||||
@@ -447,9 +493,16 @@ static const CGFloat SpacerHeight = 5.0;
|
||||
if (number.unsignedIntegerValue < _buttonViews.count) {
|
||||
ORKChoiceButtonView *buttonView = _buttonViews[number.unsignedIntegerValue];
|
||||
[buttonView button].selected = YES;
|
||||
[self setLabelText:buttonView.labelText];
|
||||
buttonView.button.imageView.backgroundColor = [UIColor lightGrayColor];
|
||||
if (_singleChoice) {
|
||||
[self setLabelText:buttonView.labelText];
|
||||
}
|
||||
}
|
||||
}];
|
||||
|
||||
if (!_singleChoice) {
|
||||
[self setLabelText:[_helper labelForChoiceAnswer:[_helper answerForSelectedIndexes:[self selectedIndexes]]]];
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)isAccessibilityElement {
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
if (self.step && [self isViewLoaded]) {
|
||||
self.stepView = [[ORKInstructionStepContainerView alloc] initWithInstructionStep:[self instructionStep]];
|
||||
_stepView.delegate = self;
|
||||
_stepView.stepContentView.shouldAutomaticallyAdjustImageTintColor = [self instructionStep].shouldAutomaticallyAdjustImageTintColor;
|
||||
_stepView.stepContentView.bodyContainerView.bodyItemDelegate = self;
|
||||
[self.view addSubview:self.stepView];
|
||||
[self setNavigationFooterView];
|
||||
|
||||
@@ -162,10 +162,8 @@ static const CGFloat detailTextBottomSpacing = 16.0;
|
||||
}
|
||||
|
||||
- (void)didMoveToWindow {
|
||||
_appTintColor = ORKViewTintColor(self);
|
||||
|
||||
_continueButton.normalTintColor = _appTintColor;
|
||||
_skipButton.normalTintColor = _appTintColor;
|
||||
[self udpateTintColor];
|
||||
[super didMoveToWindow];
|
||||
}
|
||||
|
||||
- (void)setSkipButtonStyle:(ORKNavigationContainerButtonStyle)skipButtonStyle {
|
||||
@@ -559,8 +557,15 @@ static const CGFloat detailTextBottomSpacing = 16.0;
|
||||
}
|
||||
|
||||
- (void)tintColorDidChange {
|
||||
[self udpateTintColor];
|
||||
[super tintColorDidChange];
|
||||
[self didMoveToWindow];
|
||||
}
|
||||
|
||||
- (void)udpateTintColor {
|
||||
_appTintColor = ORKViewTintColor(self);
|
||||
|
||||
_continueButton.normalTintColor = _appTintColor;
|
||||
_skipButton.normalTintColor = _appTintColor;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -181,6 +181,7 @@ void ORKStepArrayAddStep(NSMutableArray *array, ORKStep *step) {
|
||||
step.title = ORKLocalizedString(@"TASK_COMPLETE_TITLE", nil);
|
||||
step.text = ORKLocalizedString(@"TASK_COMPLETE_TEXT", nil);
|
||||
step.shouldTintImages = YES;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
return step;
|
||||
}
|
||||
|
||||
@@ -227,6 +228,7 @@ NSString *const ORKAmslerGridCalibrationRightIdentifier = @"amsler.grid.calibrat
|
||||
step.image = [UIImage imageNamed:@"amslerGrid" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
{
|
||||
@@ -243,6 +245,7 @@ NSString *const ORKAmslerGridCalibrationRightIdentifier = @"amsler.grid.calibrat
|
||||
step.image = [UIImage imageNamed:@"amslerGrid" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.shouldTintImages = YES;
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -263,7 +266,8 @@ NSString *const ORKAmslerGridCalibrationRightIdentifier = @"amsler.grid.calibrat
|
||||
step.image = [UIImage imageNamed:@"amslerGrid" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -311,7 +315,8 @@ NSString *const ORKHolePegTestNonDominantRemoveStepIdentifier = @"hole.peg.test.
|
||||
step.image = [UIImage imageNamed:@"phoneholepeg" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -329,7 +334,8 @@ NSString *const ORKHolePegTestNonDominantRemoveStepIdentifier = @"hole.peg.test.
|
||||
step.image = [UIImage animatedImageWithImages:@[image1, image2, image3, image4, image5, image6] duration:4];
|
||||
step.imageContentMode = UIViewContentModeScaleAspectFit;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -446,6 +452,7 @@ NSString *const ORKTappingStepIdentifier = @"tapping";
|
||||
step.image = [UIImage imageNamed:imageName inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.shouldTintImages = YES;
|
||||
step.imageContentMode = UIViewContentModeScaleAspectFit;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -531,7 +538,8 @@ NSString *const ORKTappingStepIdentifier = @"tapping";
|
||||
}
|
||||
step.imageContentMode = UIViewContentModeScaleAspectFit;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -612,6 +620,7 @@ NSString *const ORKAudioTooLoudStepIdentifier = @"audio.tooloud";
|
||||
step.image = [UIImage imageNamed:@"phonewaves" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.shouldTintImages = YES;
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -623,6 +632,7 @@ NSString *const ORKAudioTooLoudStepIdentifier = @"audio.tooloud";
|
||||
step.image = [UIImage imageNamed:@"phonewaves" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.shouldTintImages = YES;
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -649,7 +659,8 @@ NSString *const ORKAudioTooLoudStepIdentifier = @"audio.tooloud";
|
||||
step.title = ORKLocalizedString(@"AUDIO_TASK_TITLE", nil);
|
||||
step.text = ORKLocalizedString(@"AUDIO_TOO_LOUD_MESSAGE", nil);
|
||||
step.detailText = ORKLocalizedString(@"AUDIO_TOO_LOUD_ACTION_NEXT", nil);
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -709,6 +720,7 @@ NSString *const ORKFitnessRestStepIdentifier = @"fitness.rest";
|
||||
step.image = [UIImage imageNamed:@"heartbeat" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.shouldTintImages = YES;
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -719,6 +731,7 @@ NSString *const ORKFitnessRestStepIdentifier = @"fitness.rest";
|
||||
step.image = [UIImage imageNamed:@"walkingman" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.shouldTintImages = YES;
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -801,6 +814,7 @@ NSString *const ORKSixMinuteWalkFatigueIdentifier = @"6mwt.fatigue";
|
||||
// Explanation Step
|
||||
ORKInstructionStep *explainStep = [[ORKInstructionStep alloc] initWithIdentifier:ORKInstruction0StepIdentifier];
|
||||
explainStep.iconImage = [UIImage systemImageNamed:@"figure.walk"];
|
||||
explainStep.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
explainStep.title = ORKLocalizedString(@"6MWT_TASK_TITLE", nil);
|
||||
explainStep.text = intendedUseDescription ? : ORKLocalizedString(@"6MWT_INTRO", nil);
|
||||
explainStep.bodyItems = @[
|
||||
@@ -963,6 +977,7 @@ NSString *const ORKShortWalkRestStepIdentifier = @"walking.rest";
|
||||
step.detailText = ORKLocalizedString(@"WALK_INTRO_TEXT", nil);
|
||||
step.shouldTintImages = YES;
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -974,6 +989,7 @@ NSString *const ORKShortWalkRestStepIdentifier = @"walking.rest";
|
||||
step.image = [UIImage imageNamed:@"pocket" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.shouldTintImages = YES;
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -1108,6 +1124,7 @@ NSString *const ORKShortWalkRestStepIdentifier = @"walking.rest";
|
||||
step.detailText = ORKLocalizedString(@"WALK_INTRO_TEXT", nil);
|
||||
step.shouldTintImages = YES;
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -1119,6 +1136,7 @@ NSString *const ORKShortWalkRestStepIdentifier = @"walking.rest";
|
||||
step.image = [UIImage imageNamed:@"pocket" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -1232,6 +1250,7 @@ NSString *const ORKKneeRangeOfMotionStepIdentifier = @"knee.range.of.motion";
|
||||
if (@available(iOS 13.0, *)) {
|
||||
// Use body items with SFSymbols in iOS 13+
|
||||
ORKInstructionStep *instructionStep = [[ORKInstructionStep alloc] initWithIdentifier:ORKInstruction0StepIdentifier];
|
||||
instructionStep.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
instructionStep.title = ORKLocalizedString(@"RANGE_OF_MOTION_TITLE", nil);
|
||||
instructionStep.text = intendedUseDescription;
|
||||
@@ -1289,17 +1308,22 @@ NSString *const ORKKneeRangeOfMotionStepIdentifier = @"knee.range.of.motion";
|
||||
instructionStep0.detailText = ([limbType isEqualToString:ORKLocalizedString(@"LIMB_LEFT", nil)])? ORKLocalizedString(@"KNEE_RANGE_OF_MOTION_TEXT_INSTRUCTION_0_LEFT", nil) : ORKLocalizedString(@"KNEE_RANGE_OF_MOTION_TEXT_INSTRUCTION_0_RIGHT", nil);
|
||||
instructionStep0.shouldTintImages = YES;
|
||||
instructionStep0.imageContentMode = UIViewContentModeCenter;
|
||||
instructionStep0.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, instructionStep0);
|
||||
|
||||
ORKInstructionStep *instructionStep1 = [[ORKInstructionStep alloc] initWithIdentifier:ORKInstruction1StepIdentifier];
|
||||
instructionStep1.title = ORKLocalizedString(@"RANGE_OF_MOTION_TITLE", nil);
|
||||
instructionStep1.text = ([limbType isEqualToString:ORKLocalizedString(@"LIMB_LEFT", nil)])? ORKLocalizedString(@"KNEE_RANGE_OF_MOTION_TEXT_INSTRUCTION_1_LEFT", nil) : ORKLocalizedString(@"KNEE_RANGE_OF_MOTION_TEXT_INSTRUCTION_1_RIGHT", nil);
|
||||
instructionStep1.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, instructionStep1);
|
||||
|
||||
ORKInstructionStep *instructionStep2 = [[ORKInstructionStep alloc] initWithIdentifier:ORKInstruction2StepIdentifier];
|
||||
instructionStep2.title = ORKLocalizedString(@"RANGE_OF_MOTION_TITLE", nil);
|
||||
instructionStep2.text = ([limbType isEqualToString:ORKLocalizedString(@"LIMB_LEFT", nil)])? ORKLocalizedString(@"KNEE_RANGE_OF_MOTION_TITLE_LEFT", nil) : ORKLocalizedString(@"KNEE_RANGE_OF_MOTION_TITLE_RIGHT", nil);
|
||||
|
||||
instructionStep2.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
instructionStep2.detailText = ([limbType isEqualToString:ORKLocalizedString(@"LIMB_LEFT", nil)])? ORKLocalizedString(@"KNEE_RANGE_OF_MOTION_TEXT_INSTRUCTION_2_LEFT", nil) : ORKLocalizedString(@"KNEE_RANGE_OF_MOTION_TEXT_INSTRUCTION_2_RIGHT", nil);
|
||||
instructionStep2.image = kneeStartImage;
|
||||
instructionStep2.imageContentMode = UIViewContentModeCenter;
|
||||
@@ -1309,6 +1333,7 @@ NSString *const ORKKneeRangeOfMotionStepIdentifier = @"knee.range.of.motion";
|
||||
ORKInstructionStep *instructionStep3 = [[ORKInstructionStep alloc] initWithIdentifier:ORKInstruction3StepIdentifier];
|
||||
instructionStep3.title = ORKLocalizedString(@"RANGE_OF_MOTION_TITLE", nil);
|
||||
instructionStep3.text = ([limbType isEqualToString:ORKLocalizedString(@"LIMB_LEFT", nil)])? ORKLocalizedString(@"KNEE_RANGE_OF_MOTION_TEXT_INSTRUCTION_3_LEFT", nil) : ORKLocalizedString(@"KNEE_RANGE_OF_MOTION_TEXT_INSTRUCTION_3_RIGHT", nil);
|
||||
instructionStep3.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
instructionStep3.image = kneeMaximumImage;
|
||||
instructionStep3.imageContentMode = UIViewContentModeCenter;
|
||||
@@ -1376,12 +1401,14 @@ NSString *const ORKShoulderRangeOfMotionStepIdentifier = @"shoulder.range.of.mot
|
||||
instructionStep0.text = intendedUseDescription;
|
||||
instructionStep0.detailText = ([limbType isEqualToString:ORKLocalizedString(@"LIMB_LEFT", nil)])? ORKLocalizedString(@"SHOULDER_RANGE_OF_MOTION_TEXT_INSTRUCTION_0_LEFT", nil) : ORKLocalizedString(@"SHOULDER_RANGE_OF_MOTION_TEXT_INSTRUCTION_0_RIGHT", nil);
|
||||
instructionStep0.shouldTintImages = YES;
|
||||
instructionStep0.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
instructionStep0.imageContentMode = UIViewContentModeCenter;
|
||||
ORKStepArrayAddStep(steps, instructionStep0);
|
||||
|
||||
ORKInstructionStep *instructionStep1 = [[ORKInstructionStep alloc] initWithIdentifier:ORKInstruction1StepIdentifier];
|
||||
instructionStep1.title = ORKLocalizedString(@"RANGE_OF_MOTION_TITLE", nil);
|
||||
instructionStep1.text = ([limbType isEqualToString:ORKLocalizedString(@"LIMB_LEFT", nil)])? ORKLocalizedString(@"SHOULDER_RANGE_OF_MOTION_TEXT_INSTRUCTION_1_LEFT", nil) : ORKLocalizedString(@"SHOULDER_RANGE_OF_MOTION_TEXT_INSTRUCTION_1_RIGHT", nil);
|
||||
instructionStep1.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, instructionStep1);
|
||||
|
||||
ORKInstructionStep *instructionStep2 = [[ORKInstructionStep alloc] initWithIdentifier:ORKInstruction2StepIdentifier];
|
||||
@@ -1390,6 +1417,7 @@ NSString *const ORKShoulderRangeOfMotionStepIdentifier = @"shoulder.range.of.mot
|
||||
instructionStep2.image = shoulderStartImage;
|
||||
instructionStep2.imageContentMode = UIViewContentModeCenter;
|
||||
instructionStep2.shouldTintImages = YES;
|
||||
instructionStep2.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, instructionStep2);
|
||||
|
||||
ORKInstructionStep *instructionStep3 = [[ORKInstructionStep alloc] initWithIdentifier:ORKInstruction3StepIdentifier];
|
||||
@@ -1398,6 +1426,7 @@ NSString *const ORKShoulderRangeOfMotionStepIdentifier = @"shoulder.range.of.mot
|
||||
instructionStep3.image = shoulderMaximumImage;
|
||||
instructionStep3.imageContentMode = UIViewContentModeCenter;
|
||||
instructionStep3.shouldTintImages = YES;
|
||||
instructionStep3.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, instructionStep3);
|
||||
}
|
||||
|
||||
@@ -1463,7 +1492,8 @@ NSString *const ORKSpatialSpanMemoryStepIdentifier = @"cognitive.memory.spatials
|
||||
step.image = [UIImage imageNamed:@"memory" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeScaleAspectFit;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -1480,7 +1510,8 @@ NSString *const ORKSpatialSpanMemoryStepIdentifier = @"cognitive.memory.spatials
|
||||
}
|
||||
step.imageContentMode = UIViewContentModeScaleAspectFit;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -1536,7 +1567,8 @@ NSString *const ORKSpeechRecognitionStepIdentifier = @"speech.recognition";
|
||||
step.image = [UIImage imageNamed:@"phonewaves" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.shouldTintImages = YES;
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -1548,7 +1580,8 @@ NSString *const ORKSpeechRecognitionStepIdentifier = @"speech.recognition";
|
||||
step.image = [UIImage imageNamed:@"phonewavesspeech" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -1605,7 +1638,8 @@ NSString *const ORKSpeechInNoiseStep2Identifier = @"speech.in.noise2";
|
||||
step.image = [UIImage imageNamed:@"speechInNoise" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
{
|
||||
@@ -1615,7 +1649,8 @@ NSString *const ORKSpeechInNoiseStep2Identifier = @"speech.in.noise2";
|
||||
step.image = [UIImage imageNamed:@"speechInNoise" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -1694,7 +1729,8 @@ NSString *const ORKStroopStepIdentifier = @"stroop";
|
||||
step.image = [UIImage imageNamed:@"phonestrooplabel" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
{
|
||||
@@ -1704,7 +1740,8 @@ NSString *const ORKStroopStepIdentifier = @"stroop";
|
||||
step.image = [UIImage imageNamed:@"phonestroopbutton" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -1762,6 +1799,7 @@ NSString *const ORKToneAudiometryStepIdentifier = @"tone.audiometry";
|
||||
step.image = [UIImage imageNamed:@"phonewaves_inverted" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
@@ -1774,6 +1812,7 @@ NSString *const ORKToneAudiometryStepIdentifier = @"tone.audiometry";
|
||||
step.image = [UIImage imageNamed:@"phonefrequencywaves" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
@@ -1846,6 +1885,7 @@ NSString *const ORKdBHLToneAudiometryStep2Identifier = @"dBHL2.tone.audiometry";
|
||||
step.image = [UIImage imageNamed:@"audiometry" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
if (@available(iOS 13.0, *)) {
|
||||
ORKBodyItem * item1 = [[ORKBodyItem alloc] initWithText:ORKLocalizedString(@"dBHL_TONE_AUDIOMETRY_BODY_ITEM_TEXT_1", nil) detailText:nil image:[UIImage systemImageNamed:@"ear"] learnMoreItem:nil bodyItemStyle:ORKBodyItemStyleImage];
|
||||
ORKBodyItem * item2 = [[ORKBodyItem alloc] initWithText:ORKLocalizedString(@"dBHL_TONE_AUDIOMETRY_BODY_ITEM_TEXT_2", nil) detailText:nil image:[UIImage systemImageNamed:@"hand.draw.fill"] learnMoreItem:nil bodyItemStyle:ORKBodyItemStyleImage];
|
||||
@@ -1876,7 +1916,8 @@ NSString *const ORKdBHLToneAudiometryStep2Identifier = @"dBHL2.tone.audiometry";
|
||||
step.image = [UIImage imageNamed:@"audiometry" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -1893,7 +1934,9 @@ NSString *const ORKdBHLToneAudiometryStep2Identifier = @"dBHL2.tone.audiometry";
|
||||
|
||||
{
|
||||
ORKInstructionStep *step = [[ORKInstructionStep alloc] initWithIdentifier:ORKInstruction2StepIdentifier];
|
||||
step.title = ORKLocalizedString(@"dBHL_TONE_AUDIOMETRY_STEP_TITLE_LEFT_EAR", nil);
|
||||
step.title = ORKLocalizedString(@"dBHL_TONE_AUDIOMETRY_STEP_TITLE_RIGHT_EAR", nil);
|
||||
step.shouldTintImages = YES;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -1910,6 +1953,7 @@ NSString *const ORKdBHLToneAudiometryStep2Identifier = @"dBHL2.tone.audiometry";
|
||||
ORKInstructionStep *step = [[ORKInstructionStep alloc] initWithIdentifier:ORKInstruction3StepIdentifier];
|
||||
step.title = ORKLocalizedString(@"dBHL_TONE_AUDIOMETRY_STEP_TITLE_RIGHT_EAR", nil);
|
||||
step.shouldTintImages = YES;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -1932,7 +1976,6 @@ NSString *const ORKdBHLToneAudiometryStep2Identifier = @"dBHL2.tone.audiometry";
|
||||
return task;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - towerOfHanoiTask
|
||||
|
||||
NSString *const ORKTowerOfHanoiStepIdentifier = @"towerOfHanoi";
|
||||
@@ -1953,7 +1996,8 @@ NSString *const ORKTowerOfHanoiStepIdentifier = @"towerOfHanoi";
|
||||
step.image = [UIImage imageNamed:@"phone-tower-of-hanoi" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -1965,7 +2009,8 @@ NSString *const ORKTowerOfHanoiStepIdentifier = @"towerOfHanoi";
|
||||
step.image = [UIImage imageNamed:@"tower-of-hanoi-second-screen" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -2014,7 +2059,8 @@ NSString *const ORKReactionTimeStepIdentifier = @"reactionTime";
|
||||
step.image = [UIImage imageNamed:@"phoneshake" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -2026,7 +2072,8 @@ NSString *const ORKReactionTimeStepIdentifier = @"reactionTime";
|
||||
step.image = [UIImage imageNamed:@"phoneshakecircle" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -2082,7 +2129,8 @@ NSString *const ORKNormalizedReactionTimeStepIdentifier = @"normalizedReactionTi
|
||||
step.image = [UIImage imageNamed:@"phoneshake" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -2094,7 +2142,8 @@ NSString *const ORKNormalizedReactionTimeStepIdentifier = @"normalizedReactionTi
|
||||
step.image = [UIImage imageNamed:@"phoneshakecircle" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -2154,6 +2203,7 @@ NSString *const ORKTimedWalkTrial2StepIdentifier = @"timed.walk.trial2";
|
||||
step.text = intendedUseDescription;
|
||||
step.detailText = ORKLocalizedString(@"TIMED_WALK_INTRO_DETAIL", nil);
|
||||
step.shouldTintImages = YES;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
@@ -2201,6 +2251,7 @@ NSString *const ORKTimedWalkTrial2StepIdentifier = @"timed.walk.trial2";
|
||||
step.image = [UIImage imageNamed:@"timer" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
@@ -2326,7 +2377,8 @@ NSString *const ORKPSATStepIdentifier = @"psat";
|
||||
step.image = [UIImage imageNamed:@"psatDice" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
{
|
||||
@@ -2342,7 +2394,8 @@ NSString *const ORKPSATStepIdentifier = @"psat";
|
||||
NSString *seconds = [secondsFormatter stringFromTimeInterval:interStimulusInterval];
|
||||
step.text = [NSString localizedStringWithFormat:ORKLocalizedString(@"PSAT_INTRO_TEXT_2_%@", nil), seconds];
|
||||
step.detailText = ORKLocalizedString(@"PSAT_CALL_TO_ACTION", nil);
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -2425,7 +2478,8 @@ NSString *const ORKTremorTestTurnWristStepIdentifier = @"tremor.handQueenWave";
|
||||
|
||||
step.imageContentMode = UIViewContentModeScaleAspectFit;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -2448,7 +2502,8 @@ NSString *const ORKTremorTestTurnWristStepIdentifier = @"tremor.handQueenWave";
|
||||
step.text = ORKLocalizedString(@"TREMOR_TEST_ACTIVE_STEP_IN_LAP_INTRO_RIGHT", nil);
|
||||
}
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -2499,7 +2554,8 @@ NSString *const ORKTremorTestTurnWristStepIdentifier = @"tremor.handQueenWave";
|
||||
step.text = ORKLocalizedString(@"TREMOR_TEST_ACTIVE_STEP_EXTEND_ARM_INTRO_RIGHT", nil);
|
||||
}
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -2555,7 +2611,8 @@ NSString *const ORKTremorTestTurnWristStepIdentifier = @"tremor.handQueenWave";
|
||||
step.text = ORKLocalizedString(@"TREMOR_TEST_ACTIVE_STEP_BEND_ARM_INTRO_RIGHT", nil);
|
||||
}
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -2605,7 +2662,8 @@ NSString *const ORKTremorTestTurnWristStepIdentifier = @"tremor.handQueenWave";
|
||||
step.text = ORKLocalizedString(@"TREMOR_TEST_ACTIVE_STEP_TOUCH_NOSE_INTRO_RIGHT", nil);
|
||||
}
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -2653,7 +2711,8 @@ NSString *const ORKTremorTestTurnWristStepIdentifier = @"tremor.handQueenWave";
|
||||
step.text = ORKLocalizedString(@"TREMOR_TEST_ACTIVE_STEP_TURN_WRIST_INTRO_RIGHT", nil);
|
||||
}
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -2723,7 +2782,8 @@ NSString *const ORKTremorTestTurnWristStepIdentifier = @"tremor.handQueenWave";
|
||||
step.image = [step.image ork_flippedImage:UIImageOrientationUpMirrored];
|
||||
}
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
@@ -2880,7 +2940,8 @@ NSString *const ORKTrailmakingStepIdentifier = @"trailmaking";
|
||||
step.image = [UIImage imageNamed:@"trailmaking" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -2895,7 +2956,8 @@ NSString *const ORKTrailmakingStepIdentifier = @"trailmaking";
|
||||
step.image = [UIImage imageNamed:@"trailmaking" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
|
||||
@@ -2911,7 +2973,8 @@ NSString *const ORKTrailmakingStepIdentifier = @"trailmaking";
|
||||
step.image = [UIImage imageNamed:@"trailmaking" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
|
||||
step.imageContentMode = UIViewContentModeCenter;
|
||||
step.shouldTintImages = YES;
|
||||
|
||||
step.shouldAutomaticallyAdjustImageTintColor = YES;
|
||||
|
||||
ORKStepArrayAddStep(steps, step);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,7 +92,6 @@ static const NSTimeInterval DelayBeforeAutoScroll = 0.25;
|
||||
ORKQuestionStepCellHolderView *_cellHolderView;
|
||||
|
||||
id _defaultAnswer;
|
||||
|
||||
BOOL _visible;
|
||||
UITableViewCell *_currentFirstResponderCell;
|
||||
}
|
||||
@@ -157,7 +156,7 @@ static const NSTimeInterval DelayBeforeAutoScroll = 0.25;
|
||||
_answerFormat = [self.questionStep impliedAnswerFormat];
|
||||
|
||||
self.hasChangedAnswer = NO;
|
||||
|
||||
|
||||
if ([self isViewLoaded]) {
|
||||
BOOL neediPadDesign = ORKNeedWideScreenDesign(self.view);
|
||||
[_tableContainer removeFromSuperview];
|
||||
@@ -424,7 +423,6 @@ static const NSTimeInterval DelayBeforeAutoScroll = 0.25;
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
|
||||
[self stepDidChange];
|
||||
|
||||
[NSNotificationCenter.defaultCenter addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
|
||||
@@ -446,8 +444,14 @@ static const NSTimeInterval DelayBeforeAutoScroll = 0.25;
|
||||
if (_tableView) {
|
||||
[self.taskViewController setRegisteredScrollView:_tableView];
|
||||
}
|
||||
|
||||
|
||||
|
||||
[self requestAndRefreshDefaults];
|
||||
if (_tableView) {
|
||||
[_tableView reloadData];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)requestAndRefreshDefaults {
|
||||
NSMutableSet *types = [NSMutableSet set];
|
||||
ORKAnswerFormat *format = [[self questionStep] answerFormat];
|
||||
HKObjectType *objType = [format healthKitObjectTypeForAuthorization];
|
||||
@@ -472,10 +476,6 @@ static const NSTimeInterval DelayBeforeAutoScroll = 0.25;
|
||||
if (!scheduledRefresh) {
|
||||
[self refreshDefaults];
|
||||
}
|
||||
|
||||
if (_tableView) {
|
||||
[_tableView reloadData];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
@@ -514,12 +514,15 @@ static const NSTimeInterval DelayBeforeAutoScroll = 0.25;
|
||||
- (void)defaultAnswerDidChange {
|
||||
id defaultAnswer = _defaultAnswer;
|
||||
if (![self hasAnswer] && defaultAnswer && !self.hasChangedAnswer) {
|
||||
_answer = defaultAnswer;
|
||||
|
||||
[self answerDidChange];
|
||||
[self updateAnswer:defaultAnswer];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)updateAnswer:(id)answer {
|
||||
_answer = answer;
|
||||
[self answerDidChange];
|
||||
}
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated {
|
||||
[super viewDidAppear:animated];
|
||||
|
||||
@@ -1003,6 +1006,10 @@ static const NSTimeInterval DelayBeforeAutoScroll = 0.25;
|
||||
|
||||
#pragma mark - ORKSurveyAnswerCellDelegate
|
||||
|
||||
- (void)testAnswerDidChangeTo:(id)answer {
|
||||
[self answerCell:[ORKSurveyAnswerCell new] answerDidChangeTo:answer dueUserAction:YES];
|
||||
}
|
||||
|
||||
- (void)answerCell:(ORKSurveyAnswerCell *)cell answerDidChangeTo:(id)answer dueUserAction:(BOOL)dueUserAction {
|
||||
[self saveAnswer:answer];
|
||||
|
||||
|
||||
@@ -48,8 +48,6 @@
|
||||
if (self) {
|
||||
if (steps) {
|
||||
_steps = [steps copy];
|
||||
} else {
|
||||
_steps = @[];
|
||||
}
|
||||
_resultSource = resultSource;
|
||||
_excludeInstructionSteps = NO;
|
||||
|
||||
@@ -116,6 +116,9 @@ ORK_EXTERN CGFloat ORKQuestionStepMinimumHeaderHeight;
|
||||
/// Default CGFloat used for rounded corner radii for card view
|
||||
ORK_EXTERN CGFloat ORKCardDefaultCornerRadii;
|
||||
|
||||
/// Default CGFloat used for rounded corner radii for image choice button image view
|
||||
ORK_EXTERN CGFloat ORKImageChoiceButtonCornerRadii;
|
||||
|
||||
/// Default CGFloat used for border width for card view
|
||||
ORK_EXTERN CGFloat ORKCardDefaultBorderWidth;
|
||||
|
||||
|
||||
@@ -60,6 +60,7 @@ NSString *const ORKDoneButtonPressedKey = @"ORKDoneButtonPressed";
|
||||
NSString *const ORKResetDoneButtonKey = @"ORKResetDoneButton";
|
||||
CGFloat ORKQuestionStepMinimumHeaderHeight = 29.75;
|
||||
CGFloat ORKCardDefaultCornerRadii = 10.0;
|
||||
CGFloat ORKImageChoiceButtonCornerRadii = 5.0;
|
||||
CGFloat ORKCardDefaultBorderWidth = 0.0;
|
||||
CGFloat ORKCardDefaultFontSize = 25.0;
|
||||
CGFloat ORKSurveyItemMargin = 16.0;
|
||||
|
||||
@@ -181,6 +181,12 @@ ORK_CLASS_AVAILABLE API_AVAILABLE(ios(11.0), watchos(6.0))
|
||||
*/
|
||||
@property (nonatomic, copy, nullable) UIImage *iconImage;
|
||||
|
||||
/**
|
||||
A property that gates automatic tint color image changes based on appearance changes
|
||||
like userInterfaceStyle changes, and set to NO by default.
|
||||
*/
|
||||
@property (nonatomic) BOOL shouldAutomaticallyAdjustImageTintColor;
|
||||
|
||||
/**
|
||||
Whether to show progress for this step when it is presented. The default is YES.
|
||||
*/
|
||||
|
||||
@@ -118,6 +118,7 @@
|
||||
step.iconImage = self.iconImage;
|
||||
step.bodyItems = [_bodyItems copy];
|
||||
step.earlyTerminationConfiguration = self.earlyTerminationConfiguration;
|
||||
step.shouldAutomaticallyAdjustImageTintColor = _shouldAutomaticallyAdjustImageTintColor;
|
||||
#endif
|
||||
|
||||
return step;
|
||||
@@ -152,6 +153,7 @@
|
||||
&& ORKEqualObjects(self.iconImage, castObject.iconImage)
|
||||
&& ORKEqualObjects(self.bodyItems, castObject.bodyItems)
|
||||
&& ORKEqualObjects(self.earlyTerminationConfiguration, castObject.earlyTerminationConfiguration)
|
||||
&& _shouldAutomaticallyAdjustImageTintColor == castObject->_shouldAutomaticallyAdjustImageTintColor
|
||||
#endif
|
||||
);
|
||||
}
|
||||
@@ -160,7 +162,7 @@
|
||||
// Ignore the task reference - it's not part of the content of the step.
|
||||
return _identifier.hash ^ _title.hash ^ _text.hash ^ self.detailText.hash ^_headerTextAlignment ^ self.footnote.hash ^ (_optional ? 0xf : 0x0) ^ (_showsProgress ? 0xf : 0x0) ^ (_useExtendedPadding ? 0xf : 0x0)
|
||||
#if TARGET_OS_IOS
|
||||
^ _bodyItemTextAlignment ^ (_buildInBodyItems ? 0xf : 0x0) ^ _imageContentMode ^ _bodyItems.hash ^_earlyTerminationConfiguration.hash
|
||||
^ _bodyItemTextAlignment ^ (_buildInBodyItems ? 0xf : 0x0) ^ _imageContentMode ^ _bodyItems.hash ^_earlyTerminationConfiguration.hash ^ (_shouldAutomaticallyAdjustImageTintColor ? 0xf : 0x0)
|
||||
#endif
|
||||
;
|
||||
}
|
||||
@@ -195,6 +197,7 @@
|
||||
ORK_DECODE_OBJ_ARRAY(aDecoder, bodyItems, ORKBodyItem);
|
||||
ORK_DECODE_BOOL(aDecoder, buildInBodyItems);
|
||||
ORK_DECODE_OBJ_CLASS(aDecoder, earlyTerminationConfiguration, ORKEarlyTerminationConfiguration);
|
||||
ORK_DECODE_BOOL(aDecoder, shouldAutomaticallyAdjustImageTintColor);
|
||||
#endif
|
||||
}
|
||||
return self;
|
||||
@@ -221,6 +224,7 @@
|
||||
ORK_ENCODE_OBJ(aCoder, bodyItems);
|
||||
ORK_ENCODE_BOOL(aCoder, buildInBodyItems);
|
||||
ORK_ENCODE_OBJ(aCoder, earlyTerminationConfiguration);
|
||||
ORK_ENCODE_BOOL(aCoder, shouldAutomaticallyAdjustImageTintColor);
|
||||
#endif
|
||||
if ([_task isKindOfClass:[ORKOrderedTask class]]) {
|
||||
ORK_ENCODE_OBJ(aCoder, task);
|
||||
|
||||
@@ -67,6 +67,8 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@property (nonatomic) BOOL useExtendedPadding;
|
||||
|
||||
@property (nonatomic) BOOL shouldAutomaticallyAdjustImageTintColor;
|
||||
|
||||
@property (nonatomic, weak) id<ORKStepContentLearnMoreItemDelegate> delegate;
|
||||
|
||||
- (instancetype)initWithStandardPadding;
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#import "ORKCompletionCheckmarkView.h"
|
||||
#import "ORKBodyContainerView.h"
|
||||
#import "ORKSkin.h"
|
||||
|
||||
#import "UIImageView+ResearchKit.h"
|
||||
|
||||
/*
|
||||
+_________________________+
|
||||
@@ -177,9 +177,34 @@ typedef NS_CLOSED_ENUM(NSInteger, ORKUpdateConstraintSequence) {
|
||||
_topContentImageView.image = [self topContentAndAuxiliaryImage];
|
||||
}
|
||||
|
||||
[self updateViewColors];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:ORKStepTopContentImageChangedKey object:nil];
|
||||
}
|
||||
|
||||
- (void)setShouldAutomaticallyAdjustImageTintColor:(BOOL)shouldAutomaticallyAdjustImageTintColor {
|
||||
_shouldAutomaticallyAdjustImageTintColor = shouldAutomaticallyAdjustImageTintColor;
|
||||
[self updateViewColors];
|
||||
}
|
||||
|
||||
- (void)updateViewColors {
|
||||
if (!_shouldAutomaticallyAdjustImageTintColor) {
|
||||
return;
|
||||
}
|
||||
if (@available(iOS 12.0, *)) {
|
||||
[_topContentImageView updateRenderingModeForUserInterfaceStyle:self.traitCollection.userInterfaceStyle];
|
||||
[_iconImageView updateRenderingModeForUserInterfaceStyle:self.traitCollection.userInterfaceStyle];
|
||||
|
||||
UIColor *imageViewTintColor = self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark ? [UIColor whiteColor] : nil;
|
||||
_topContentImageView.tintColor = imageViewTintColor;
|
||||
_iconImageView.tintColor = imageViewTintColor;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
|
||||
[super traitCollectionDidChange:previousTraitCollection];
|
||||
[self updateViewColors];
|
||||
}
|
||||
|
||||
- (void)setAuxiliaryImage:(UIImage *)auxiliaryImage {
|
||||
_auxiliaryImage = auxiliaryImage;
|
||||
if (_stepTopContentImage) {
|
||||
@@ -299,6 +324,7 @@ typedef NS_CLOSED_ENUM(NSInteger, ORKUpdateConstraintSequence) {
|
||||
_iconImageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
|
||||
[self addSubview:_iconImageView];
|
||||
[self updateViewColors];
|
||||
[self setIconImageViewConstraints];
|
||||
}
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
#import "ORKSkin.h"
|
||||
#import "ORKStepContentView.h"
|
||||
#import "ORKEarlyTerminationConfiguration.h"
|
||||
#import "UIBarButtonItem+ORKBarButtonItem.h"
|
||||
|
||||
static const CGFloat iPadStepTitleLabelPadding = 15.0;
|
||||
static const CGFloat iPadStepTitleLabelFontSize = 50.0;
|
||||
@@ -382,6 +383,16 @@ static const CGFloat iPadStepTitleLabelFontSize = 50.0;
|
||||
return self.skipButtonItem.title;
|
||||
}
|
||||
|
||||
- (void)enableBackNavigation {
|
||||
[self setBackButtonItem:[self goToPreviousPageButtonItem]];
|
||||
}
|
||||
|
||||
- (UIBarButtonItem *)goToPreviousPageButtonItem {
|
||||
UIBarButtonItem *button = [UIBarButtonItem ork_backBarButtonItemWithTarget:self action:@selector(goBackward)];
|
||||
button.accessibilityLabel = ORKLocalizedString(@"AX_BUTTON_BACK", nil);
|
||||
return button;
|
||||
}
|
||||
|
||||
- (void)setBackButtonItem:(UIBarButtonItem *)backButton {
|
||||
backButton.accessibilityLabel = ORKLocalizedString(@"AX_BUTTON_BACK", nil);
|
||||
_backButtonItem = backButton;
|
||||
|
||||
@@ -97,6 +97,9 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
// internal method for updating iPadBackgroundViewColor.
|
||||
- (void)setiPadBackgroundViewColor:(UIColor *)color;
|
||||
|
||||
// internal method for enabling back navigation.
|
||||
- (void)enableBackNavigation;
|
||||
|
||||
@end
|
||||
#endif
|
||||
|
||||
|
||||
@@ -76,10 +76,14 @@ static const CGFloat DontKnowButtonTopBottomPadding = 16.0;
|
||||
|
||||
_dontKnowButtonActive = NO;
|
||||
|
||||
ORKNumericAnswerFormat *numericAnswerFormat = (ORKNumericAnswerFormat *)self.step.answerFormat;
|
||||
|
||||
ORKAnswerFormat *answerFormat = self.step.answerFormat;
|
||||
{
|
||||
ORKNumericAnswerFormat *numericAnswerFormat = ORKDynamicCast(answerFormat, ORKNumericAnswerFormat);
|
||||
_textFieldView.hideUnitWhenAnswerEmpty = numericAnswerFormat ? numericAnswerFormat.hideUnitWhenAnswerIsEmpty : NO;
|
||||
}
|
||||
|
||||
_textFieldView = [[ORKTextFieldView alloc] init];
|
||||
_textFieldView.hideUnitWhenAnswerEmpty = numericAnswerFormat.hideUnitWhenAnswerIsEmpty;
|
||||
|
||||
ORKUnitTextField *textField = _textFieldView.textField;
|
||||
|
||||
textField.delegate = self;
|
||||
@@ -101,10 +105,10 @@ static const CGFloat DontKnowButtonTopBottomPadding = 16.0;
|
||||
_errorLabel.translatesAutoresizingMaskIntoConstraints = NO;
|
||||
[self addSubview:_errorLabel];
|
||||
|
||||
if (numericAnswerFormat.shouldShowDontKnowButton) {
|
||||
if (answerFormat.shouldShowDontKnowButton) {
|
||||
if (!_dontKnowButton) {
|
||||
_dontKnowButton = [ORKDontKnowButton new];
|
||||
_dontKnowButton.customDontKnowButtonText = numericAnswerFormat.customDontKnowButtonText;
|
||||
_dontKnowButton.customDontKnowButtonText = answerFormat.customDontKnowButtonText;
|
||||
_dontKnowButton.translatesAutoresizingMaskIntoConstraints = NO;
|
||||
[_dontKnowButton addTarget:self action:@selector(dontKnowButtonWasPressed) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
|
||||
@@ -1498,6 +1498,8 @@ static NSString *const _ChildNavigationControllerRestorationKey = @"childNavigat
|
||||
NSAssert(stepViewController != nil, @"A non-nil step should always generate a step view controller");
|
||||
stepViewController.continueButtonTitle = ORKLocalizedString(@"BUTTON_SAVE", nil);
|
||||
stepViewController.parentReviewStep = (ORKReviewStep *) reviewStepViewController.step;
|
||||
|
||||
[stepViewController enableBackNavigation];
|
||||
stepViewController.skipButtonTitle = stepViewController.readOnlyMode ? ORKLocalizedString(@"BUTTON_READ_ONLY_MODE", nil) : ORKLocalizedString(@"BUTTON_CLEAR_ANSWER", nil);
|
||||
if (stepViewController.parentReviewStep.isStandalone) {
|
||||
stepViewController.navigationItem.title = stepViewController.parentReviewStep.title;
|
||||
|
||||
@@ -255,7 +255,8 @@ static const CGFloat PickerMinimumHeight = 34.0;
|
||||
- (void)pickerWillAppear {
|
||||
// Report current value, since ORKWeightPicker always has a value
|
||||
[self pickerView];
|
||||
[self valueDidChange:self];
|
||||
// only do the assignment that's done in `valueDidChange`
|
||||
_answer = [self selectedAnswerValue];
|
||||
[self accessibilityFocusOnPickerElement];
|
||||
}
|
||||
|
||||
|
||||
@@ -35,5 +35,6 @@
|
||||
@interface UIImage (ResearchKit)
|
||||
|
||||
- (UIImage *)ork_flippedImage:(UIImageOrientation)orientation;
|
||||
- (UIImage *)ork_imageWithRenderingModeForUserInterfaceStyle:(UIUserInterfaceStyle)userInterfaceStyle API_AVAILABLE(ios(12.0));
|
||||
|
||||
@end
|
||||
|
||||
@@ -116,4 +116,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (UIImage *)ork_imageWithRenderingModeForUserInterfaceStyle:(UIUserInterfaceStyle)userInterfaceStyle {
|
||||
return userInterfaceStyle == UIUserInterfaceStyleDark ? [self imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] : [self imageWithRenderingMode:UIImageRenderingModeAutomatic];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
Copyright (c) 2023, Apple Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder(s) nor the names of any contributors
|
||||
may be used to endorse or promote products derived from this software without
|
||||
specific prior written permission. No license is granted to the trademarks of
|
||||
the copyright holders even if such marks are included in this software.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface UIImageView (ResearchKit)
|
||||
|
||||
- (void)updateRenderingModeForUserInterfaceStyle:(UIUserInterfaceStyle)userInterfaceStyle API_AVAILABLE(ios(12.0));
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
Copyright (c) 2023, Apple Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder(s) nor the names of any contributors
|
||||
may be used to endorse or promote products derived from this software without
|
||||
specific prior written permission. No license is granted to the trademarks of
|
||||
the copyright holders even if such marks are included in this software.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#import "UIImage+ResearchKit.h"
|
||||
#import "UIImageView+ResearchKit.h"
|
||||
|
||||
@implementation UIImageView (ResearchKit)
|
||||
|
||||
- (void)updateRenderingModeForUserInterfaceStyle:(UIUserInterfaceStyle)userInterfaceStyle {
|
||||
self.image = [self.image ork_imageWithRenderingModeForUserInterfaceStyle:userInterfaceStyle];
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -25,7 +25,7 @@ SYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited)
|
||||
SYSTEM_HEADER_SEARCH_PATHS = $(inherited)
|
||||
CLANG_STATIC_ANALYZER_MODE = deep
|
||||
|
||||
ORK_FRAMEWORK_VERSION_NUMBER = 2.2.9
|
||||
ORK_FRAMEWORK_VERSION_NUMBER = 2.2.12
|
||||
|
||||
ORK_FRAMEWORK_BUILD_NUMBER = $(ORK_FRAMEWORK_BUILD_NUMBER_CI_$(CI)) // ORK_FRAMEWORK_BUILD_NUMBER_CI_TRUE or ORK_FRAMEWORK_BUILD_NUMBER_CI_
|
||||
ORK_FRAMEWORK_BUILD_NUMBER_CI_TRUE = $(CI_BUILD_NUMBER)
|
||||
|
||||
@@ -1326,6 +1326,9 @@
|
||||
XCTAssertEqual([[answerFormat defaultComponents] month], 01);
|
||||
XCTAssertEqual([[answerFormat defaultComponents] day], 24);
|
||||
XCTAssertEqual([[answerFormat defaultComponents] year], 1984);
|
||||
|
||||
//check that `hideUnitWhenAnswerIsEmpty` only works on `ORKNumericAnswerFormat`
|
||||
XCTAssertThrows([(ORKNumericAnswerFormat*)answerFormat hideUnitWhenAnswerIsEmpty]);
|
||||
}
|
||||
|
||||
- (void)testNumericAnswerFormat {
|
||||
@@ -1342,6 +1345,7 @@
|
||||
XCTAssertEqual([answerFormatWithIntegerStyle maximum], [NSNumber numberWithInteger:100]);
|
||||
XCTAssertEqual([answerFormatWithIntegerStyle maximumFractionDigits], @(0));
|
||||
|
||||
XCTAssertTrue([answerFormatWithIntegerStyle hideUnitWhenAnswerIsEmpty]);
|
||||
|
||||
ORKNumericAnswerFormat *answerFormatWithDecimalStyle = [[ORKNumericAnswerFormat alloc] initWithStyle:ORKNumericAnswerStyleDecimal];
|
||||
XCTAssertEqual([answerFormatWithDecimalStyle style ], ORKNumericAnswerStyleDecimal);
|
||||
|
||||
@@ -0,0 +1,134 @@
|
||||
/*
|
||||
Copyright (c) 2023, Apple Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder(s) nor the names of any contributors
|
||||
may be used to endorse or promote products derived from this software without
|
||||
specific prior written permission. No license is granted to the trademarks of
|
||||
the copyright holders even if such marks are included in this software.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
import XCTest
|
||||
import ResearchKit.Private
|
||||
|
||||
final class ORKHealthKitQuestionStepViewControllerTests: XCTestCase {
|
||||
var testController: ORKStepViewController!
|
||||
var step: ORKStep!
|
||||
var result: ORKResult!
|
||||
var negativeTest: Bool!
|
||||
var forwardExpectation: XCTestExpectation!
|
||||
var reverseExpectation: XCTestExpectation!
|
||||
var appearExpectation: XCTestExpectation!
|
||||
var failExpectation: XCTestExpectation!
|
||||
var recorderExpectation: XCTestExpectation!
|
||||
var testingWillExpectation: Bool!
|
||||
var utilities: TopLevelUIUtilities<ORKStepViewController>!
|
||||
private let weight = HKObjectType.quantityType(forIdentifier: .bodyMass)!
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
negativeTest = false
|
||||
testingWillExpectation = false
|
||||
|
||||
step = ORKStep(identifier: "STEP")
|
||||
result = ORKResult(identifier: "RESULT")
|
||||
testController = ORKStepViewController(step: step, result: result)
|
||||
testController.delegate = self
|
||||
|
||||
utilities = TopLevelUIUtilities<ORKStepViewController>()
|
||||
utilities.setupTopLevelUI(withViewController: testController)
|
||||
}
|
||||
|
||||
func testHealthKitAnswerFormats() {
|
||||
let healthAnswerFormats = [
|
||||
ORKHealthKitQuantityTypeAnswerFormat(quantityType: HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bodyMass)!, unit: HKUnit.gramUnit(with: .kilo), style: .decimal),
|
||||
ORKHealthKitQuantityTypeAnswerFormat(quantityType: HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.height)!, unit: HKUnit.meterUnit(with: .centi), style: .integer)
|
||||
]
|
||||
|
||||
for answerFormat in healthAnswerFormats {
|
||||
let healthKitStep = ORKQuestionStep(identifier: String(describing: "HealthKitStep"), title: NSLocalizedString("Some Title", comment: ""), question: "Some Question", answer: answerFormat)
|
||||
helperTestHealthKit(healthKitStep: healthKitStep)
|
||||
}
|
||||
}
|
||||
|
||||
func helperTestHealthKit(healthKitStep: ORKQuestionStep) {
|
||||
testController = ORKQuestionStepViewController(step: healthKitStep)
|
||||
testController.delegate = self
|
||||
|
||||
utilities = TopLevelUIUtilities<ORKStepViewController>()
|
||||
utilities.setupTopLevelUI(withViewController: testController)
|
||||
|
||||
testController.stepDidChange()
|
||||
// Test that [self hasAnswer] && self.hasChangedAnswer are false
|
||||
XCTAssertNil((testController as! ORKQuestionStepViewController).answer())
|
||||
XCTAssertFalse((testController as! ORKQuestionStepViewController).hasChangedAnswer())
|
||||
|
||||
// Simulating picker update to a value of 50
|
||||
(testController as! ORKQuestionStepViewController).testAnswerDidChange(to: 50.0)
|
||||
|
||||
// Test that [self hasAnswer] has a value
|
||||
XCTAssertEqual((testController as! ORKQuestionStepViewController).answer() as! Double, 50.0)
|
||||
// && self.hasChangedAnswer is true
|
||||
XCTAssertTrue((testController as! ORKQuestionStepViewController).hasChangedAnswer())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
extension ORKHealthKitQuestionStepViewControllerTests: ORKStepViewControllerDelegate {
|
||||
func stepViewController(_ stepViewController: ORKStepViewController, didFinishWith direction: ORKStepViewControllerNavigationDirection) {
|
||||
if direction == .forward {
|
||||
forwardExpectation.fulfill()
|
||||
} else {
|
||||
reverseExpectation.fulfill()
|
||||
}
|
||||
}
|
||||
|
||||
func stepViewControllerWillAppear(_ stepViewController: ORKStepViewController) {
|
||||
if testingWillExpectation {
|
||||
appearExpectation.fulfill()
|
||||
}
|
||||
}
|
||||
|
||||
func stepViewControllerResultDidChange(_ stepViewController: ORKStepViewController) {
|
||||
// pass
|
||||
}
|
||||
|
||||
func stepViewControllerDidFail(_ stepViewController: ORKStepViewController, withError error: Error?) {
|
||||
failExpectation.fulfill()
|
||||
}
|
||||
|
||||
func stepViewController(_ stepViewController: ORKStepViewController, recorder: ORKRecorder, didFailWithError error: Error) {
|
||||
recorderExpectation.fulfill()
|
||||
}
|
||||
|
||||
func stepViewControllerHasNextStep(_ stepViewController: ORKStepViewController) -> Bool {
|
||||
if negativeTest { return false }
|
||||
return true
|
||||
}
|
||||
|
||||
func stepViewControllerHasPreviousStep(_ stepViewController: ORKStepViewController) -> Bool {
|
||||
if negativeTest { return false }
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
Copyright (c) 2023, Apple Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder(s) nor the names of any contributors
|
||||
may be used to endorse or promote products derived from this software without
|
||||
specific prior written permission. No license is granted to the trademarks of
|
||||
the copyright holders even if such marks are included in this software.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
|
||||
#import <ResearchKit/ORKQuestionStepViewController.h>
|
||||
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface ORKQuestionStepViewController () <ORKQuestionStepCustomViewDelegate>
|
||||
|
||||
- (nullable id)answer;
|
||||
- (BOOL)hasChangedAnswer;
|
||||
/**
|
||||
Set the step answer.
|
||||
*/
|
||||
- (void)testAnswerDidChangeTo:(id)answer;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -33,6 +33,7 @@
|
||||
@import ResearchKit;
|
||||
@import ResearchKit.Private;
|
||||
@import UIKit;
|
||||
#import "ORKReviewStep_Internal.h"
|
||||
|
||||
@interface ORKStepTests : XCTestCase
|
||||
|
||||
@@ -571,3 +572,33 @@
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@interface ORKReviewStepTests : XCTestCase
|
||||
|
||||
@end
|
||||
|
||||
@implementation ORKReviewStepTests
|
||||
|
||||
// ORKReviewStep's implementation of `isStandalone` is
|
||||
// return _steps != nil;
|
||||
|
||||
- (void)testEmbeddedReviewStep {
|
||||
// test that embeddedReviewStep always has isStandalone set to false
|
||||
ORKReviewStep* embeddedReviewStep = [ORKReviewStep embeddedReviewStepWithIdentifier:@"embeddedReviewStep"];
|
||||
XCTAssertFalse(embeddedReviewStep.isStandalone);
|
||||
|
||||
// test that standaloneReviewStep with nil steps has isStandalone set to false
|
||||
ORKReviewStep* standAloneReviewStepWithNilSteps = [ORKReviewStep standaloneReviewStepWithIdentifier:@"standAloneReviewStepWithNilSteps" steps:nil resultSource:nil];
|
||||
XCTAssertFalse(standAloneReviewStepWithNilSteps.isStandalone);
|
||||
}
|
||||
|
||||
- (void)testStandAloneReviewStep {
|
||||
// test that standaloneReviewStep with non nil steps always has isStandalone set to true
|
||||
ORKReviewStep* standAloneReviewStep = [ORKReviewStep standaloneReviewStepWithIdentifier:@"standAloneReviewStep" steps:@[] resultSource:nil];
|
||||
XCTAssertTrue(standAloneReviewStep.isStandalone);
|
||||
|
||||
// test that standaloneReviewStep with defined steps always has isStandalone set to true
|
||||
ORKReviewStep* standAloneReviewStepWithSteps = [ORKReviewStep standaloneReviewStepWithIdentifier:@"standAloneReviewStep" steps:@[[[ORKInstructionStep alloc] initWithIdentifier:@"instructionStep"]] resultSource:nil];
|
||||
XCTAssertTrue(standAloneReviewStepWithSteps.isStandalone);
|
||||
}
|
||||
@end
|
||||
|
||||
@@ -1438,9 +1438,10 @@ static ORKStepResult *(^getConsentStepResult)(NSString *, NSString *, BOOL) = ^O
|
||||
|
||||
- (void)testTaskViewControllerCanDiscardLogic {
|
||||
TestTaskViewControllerDelegate *delegate = [[TestTaskViewControllerDelegate alloc] init];
|
||||
ORKStep *reviewableStep = [ORKQuestionStep questionStepWithIdentifier:@"Who's there?" title:nil question:nil answer:nil];
|
||||
ORKOrderedTask *task = [[ORKOrderedTask alloc] initWithIdentifier:@"TestTask" steps:@[
|
||||
[[ORKInstructionStep alloc] initWithIdentifier:@"instuction-0"],
|
||||
[ORKReviewStep standaloneReviewStepWithIdentifier:@"review" steps:nil resultSource:nil],
|
||||
[ORKReviewStep standaloneReviewStepWithIdentifier:@"review" steps:@[reviewableStep] resultSource:nil],
|
||||
]];
|
||||
|
||||
// test cases where hasSaveableResults == NO
|
||||
@@ -1463,7 +1464,7 @@ static ORKStepResult *(^getConsentStepResult)(NSString *, NSString *, BOOL) = ^O
|
||||
XCTAssertTrue([reviewStep isStandalone]);
|
||||
XCTAssertTrue([taskViewController canDiscardResults]);
|
||||
}
|
||||
|
||||
|
||||
// test cases where hasSaveableResults == YES
|
||||
{
|
||||
MockTaskViewController *taskViewController = [[MockTaskViewController alloc] initWithTask:task taskRunUUID:nil];
|
||||
@@ -1504,10 +1505,7 @@ static ORKStepResult *(^getConsentStepResult)(NSString *, NSString *, BOOL) = ^O
|
||||
ORKReviewStepViewController *reviewViewController = ORKDynamicCast(taskViewController.currentStepViewController, ORKReviewStepViewController);
|
||||
XCTAssertNotNil(reviewViewController, "taskViewController.currentStepViewController should be of type ORKReviewStepViewController at this point");
|
||||
|
||||
|
||||
// [TODO]:Test if currentStep is reviewStep but not standalone -> CANNOT discardResults
|
||||
|
||||
|
||||
// before reviewStepViewController:willReviewStep, currentStepViewController should not be in readOnlyMode
|
||||
XCTAssertFalse(taskViewController.currentStepViewController.readOnlyMode);
|
||||
|
||||
@@ -1537,6 +1535,20 @@ static ORKStepResult *(^getConsentStepResult)(NSString *, NSString *, BOOL) = ^O
|
||||
|
||||
}
|
||||
|
||||
- (void)testTaskViewControllerReviewStepDiscardLogic {
|
||||
ORKReviewStep *embeddedReviewStep = [ORKReviewStep embeddedReviewStepWithIdentifier: @"embeddedReviewStep"];
|
||||
ORKOrderedTask *task = [[ORKOrderedTask alloc] initWithIdentifier:@"embeddedReviewMockTask"
|
||||
steps:@[
|
||||
embeddedReviewStep
|
||||
]];
|
||||
MockTaskViewController *taskViewController = [[MockTaskViewController alloc] initWithTask:task taskRunUUID:nil];
|
||||
[taskViewController viewWillAppear:false];
|
||||
|
||||
// Test if currentStep is reviewStep but not standalone -> CANNOT discardResults
|
||||
XCTAssertFalse(embeddedReviewStep.isStandalone);
|
||||
XCTAssertFalse([taskViewController canDiscardResults]);
|
||||
}
|
||||
|
||||
- (void)testIndexOfStep {
|
||||
ORKOrderedTask *task = [ORKOrderedTask twoFingerTappingIntervalTaskWithIdentifier:@"tapping" intendedUseDescription:nil duration:30 handOptions:0 options:0];
|
||||
|
||||
|
||||
@@ -4,3 +4,4 @@
|
||||
|
||||
#import "ResearchKit.h"
|
||||
#import "ResearchKit_Private.h"
|
||||
#import "ORKQuestionStepViewController+TestingSupport.h"
|
||||
|
||||
@@ -896,6 +896,7 @@ static NSMutableDictionary<NSString *, ORKESerializableTableEntry *> *ORKESerial
|
||||
PROPERTY(buildInBodyItems, NSNumber, NSObject, YES, nil, nil),
|
||||
PROPERTY(useExtendedPadding, NSNumber, NSObject, YES, nil, nil),
|
||||
PROPERTY(earlyTerminationConfiguration, ORKEarlyTerminationConfiguration, NSObject, YES, nil, nil),
|
||||
PROPERTY(shouldAutomaticallyAdjustImageTintColor, NSNumber, NSObject, YES, nil, nil),
|
||||
})),
|
||||
ENTRY(ORKBodyItem,
|
||||
^id(__unused NSDictionary *dict, __unused ORKESerializationPropertyGetter getter) {
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"50DE67FB-AE5A-4C1A-97E6-038BAB9A346F"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"23DBF489-731A-446A-A5ED-3D3E737C5E12"},"title":"","image":{"imageName":"A39F0D25-B88E-446C-BC34-614AE0405E73"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment":0,"stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORK3DModelStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0, "modelManager": {"_class":"ORK3DModelManager", "allowsSelection":false, "identifiersOfObjectsToHighlight":[], "highlightColor": {"r":1, "g":1, "b":1, "a":1 }},"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"50DE67FB-AE5A-4C1A-97E6-038BAB9A346F"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"23DBF489-731A-446A-A5ED-3D3E737C5E12"},"title":"","image":{"imageName":"A39F0D25-B88E-446C-BC34-614AE0405E73"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment":0,"stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORK3DModelStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0, "modelManager": {"_class":"ORK3DModelManager", "allowsSelection":false, "identifiersOfObjectsToHighlight":[], "highlightColor": {"r":1, "g":1, "b":1, "a":1 }},"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":true,"shouldTintImages":true,"shouldSpeakCountDown":false,"recorderConfigurations":[],"iconImage":{"imageName":"62E9D4CF-3E7B-49B8-A295-7D2EB1ECC00B"},"auxiliaryImage":{"imageName":"8C25AB92-00C9-4E13-B55F-711658F53D48"},"title":"","image":{"imageName":"4930AC43-8AAA-4563-8C8F-6E7E25E550C3"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"","headerTextAlignment": 0,"stepDuration":9.2233720368547758e+18,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":true,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKAccuracyStroopStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}, "baseDisplayColor":{"r":1,"g":1,"b":1,"a":1}, "isColorMatching":false}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":true,"shouldTintImages":true,"shouldSpeakCountDown":false,"recorderConfigurations":[],"iconImage":{"imageName":"62E9D4CF-3E7B-49B8-A295-7D2EB1ECC00B"},"auxiliaryImage":{"imageName":"8C25AB92-00C9-4E13-B55F-711658F53D48"},"title":"","image":{"imageName":"4930AC43-8AAA-4563-8C8F-6E7E25E550C3"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"","headerTextAlignment": 0,"stepDuration":9.2233720368547758e+18,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":true,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKAccuracyStroopStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}, "baseDisplayColor":{"r":1,"g":1,"b":1,"a":1}, "isColorMatching":false}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"50DE67FB-AE5A-4C1A-97E6-038BAB9A346F"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"23DBF489-731A-446A-A5ED-3D3E737C5E12"},"title":"","image":{"imageName":"A39F0D25-B88E-446C-BC34-614AE0405E73"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment":0,"stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKActiveStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"50DE67FB-AE5A-4C1A-97E6-038BAB9A346F"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"23DBF489-731A-446A-A5ED-3D3E737C5E12"},"title":"","image":{"imageName":"A39F0D25-B88E-446C-BC34-614AE0405E73"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment":0,"stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKActiveStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":true,"recorderConfigurations":[],"shouldSpeakCountDown":false,"shouldTintImages":true,"iconImage":{"imageName":"DFC4815F-FB55-4365-9D10-FF2BA83879A1"},"auxiliaryImage":{"imageName":"3E076C04-09E0-4055-8FBE-5309DC4A5348"},"title":"","image":{"imageName":"0905D188-3CBD-4DEE-82C7-11165BA8352B"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment": 0,"stepDuration":9.2233720368547758e+18,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","eyeSide":0,"optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"shouldVibrateOnStart":true,"bodyItems":[],"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKAmslerGridStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":true,"recorderConfigurations":[],"shouldSpeakCountDown":false,"shouldTintImages":true,"iconImage":{"imageName":"DFC4815F-FB55-4365-9D10-FF2BA83879A1"},"auxiliaryImage":{"imageName":"3E076C04-09E0-4055-8FBE-5309DC4A5348"},"title":"","image":{"imageName":"0905D188-3CBD-4DEE-82C7-11165BA8352B"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment": 0,"stepDuration":9.2233720368547758e+18,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","eyeSide":0,"optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"shouldVibrateOnStart":true,"bodyItems":[],"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKAmslerGridStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"vocalCues":[{"_class":"ORKVocalCue","time": 12,"spokenText":"words"}, {"_class":"ORKVocalCue","time": 13,"spokenText":"more words"}],"footnote":"","shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"3F5C9800-6A7A-4158-8ECF-0832B44DF6C1"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"988B687D-F50F-4B89-B6B7-20F11AE6AC8E"},"title":"","image":{"imageName":"B7400237-AD21-4AA3-8E4C-60F06E05EA39"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment": 0, "stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKAudioFitnessStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"},"userInfo":{},"audioAsset":{"_class":"ORKBundleAsset","name":"filename","bundleIdentifier":"com.bundle.identifier","fileExtension":"mp4"}}
|
||||
{"vocalCues":[{"_class":"ORKVocalCue","time": 12,"spokenText":"words"}, {"_class":"ORKVocalCue","time": 13,"spokenText":"more words"}],"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"3F5C9800-6A7A-4158-8ECF-0832B44DF6C1"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"988B687D-F50F-4B89-B6B7-20F11AE6AC8E"},"title":"","image":{"imageName":"B7400237-AD21-4AA3-8E4C-60F06E05EA39"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment": 0, "stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKAudioFitnessStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"},"userInfo":{},"audioAsset":{"_class":"ORKBundleAsset","name":"filename","bundleIdentifier":"com.bundle.identifier","fileExtension":"mp4"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"244AD43E-7785-4BF5-829C-A3B5C771E9F2"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"A35CAC85-9557-4ED5-9807-DCFDAC04C81D"},"title":"","image":{"imageName":"5E598B50-21DC-400E-8D80-75BB26BDCD65"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment": 0,"stepDuration":0,"useRecordButton":false,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKAudioStep","shouldStartTimerAutomatically":true,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"244AD43E-7785-4BF5-829C-A3B5C771E9F2"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"A35CAC85-9557-4ED5-9807-DCFDAC04C81D"},"title":"","image":{"imageName":"5E598B50-21DC-400E-8D80-75BB26BDCD65"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment": 0,"stepDuration":0,"useRecordButton":false,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKAudioStep","shouldStartTimerAutomatically":true,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKCompletionStep","iconImage":{"imageName":"2A7001B3-FE8B-4628-B9A3-848BBEF58B1F"},"auxiliaryImage":{"imageName":"685A4968-7933-4BCE-A646-9EBE32A63514"},"title":"","identifier":"","image":{"imageName":"7469F374-6BCA-4716-8BF1-AFF1761E6DE2"},"footnote":"","text":"","detailText":"", "headerTextAlignment": 0,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"centerImageVertically":0,"useExtendedPadding":0, "reasonForCompletion":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKCompletionStep","iconImage":{"imageName":"2A7001B3-FE8B-4628-B9A3-848BBEF58B1F"},"auxiliaryImage":{"imageName":"685A4968-7933-4BCE-A646-9EBE32A63514"},"title":"","identifier":"","image":{"imageName":"7469F374-6BCA-4716-8BF1-AFF1761E6DE2"},"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"text":"","detailText":"", "headerTextAlignment": 0,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"centerImageVertically":0,"useExtendedPadding":0, "reasonForCompletion":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "consentDocument":{"_class":"ORKConsentDocument"},"optional":false,"shouldTintImages":true,"requiresScrollToBottom":false,"_class":"ORKConsentReviewStep","useSurveyMode":false,"iconImage":{"imageName":"7259A545-C1AF-4696-B0A5-E4DADBB7172F"},"title":"","auxiliaryImage":{"imageName":"0336A673-281A-47C4-BB1E-2428BFBFA947"},"signature":{"requiresName":true,"requiresSignatureImage":true,"_class":"ORKConsentSignature","identifier":"5739826D-2DEA-4CB9-AB4E-10047140EC66"},"identifier":"","footnote":"","image":{"imageName":"76F181D1-005C-43C2-B429-AE931FE7371E"},"text":"","reasonForConsent":"","imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "consentDocument":{"_class":"ORKConsentDocument"},"optional":false,"shouldTintImages":true,"requiresScrollToBottom":false,"_class":"ORKConsentReviewStep","useSurveyMode":false,"iconImage":{"imageName":"7259A545-C1AF-4696-B0A5-E4DADBB7172F"},"title":"","auxiliaryImage":{"imageName":"0336A673-281A-47C4-BB1E-2428BFBFA947"},"signature":{"requiresName":true,"requiresSignatureImage":true,"_class":"ORKConsentSignature","identifier":"5739826D-2DEA-4CB9-AB4E-10047140EC66"},"identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"76F181D1-005C-43C2-B429-AE931FE7371E"},"text":"","reasonForConsent":"","imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"answerFormat":{"_class":"ORKAnswerFormat"},"detailText":"", "headerTextAlignment": 0, "optional":true,"shouldTintImages":true,"useSurveyMode":false,"_class":"ORKConsentSharingStep","presentationStyle":"default","iconImage":{"imageName":"648F7701-58AE-4D8E-9BF4-7CEB2544CE26"},"auxiliaryImage":{"imageName":"47CCEC1A-365D-4A7B-AE45-381EDD7B1F32"},"title":"","identifier":"","footnote":"","image":{"imageName":"E0C3A64C-50AA-4499-8CF6-41EBEA752510"},"text":"","placeholder":"","question":"","localizedLearnMoreHTMLContent":"","useCardView":true,"imageContentMode": 0, "learnMoreItem":{"_class":"ORKLearnMoreItem"},"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0, "tagText": "","earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"answerFormat":{"_class":"ORKAnswerFormat"},"detailText":"", "headerTextAlignment": 0, "optional":true,"shouldTintImages":true,"useSurveyMode":false,"_class":"ORKConsentSharingStep","presentationStyle":"default","iconImage":{"imageName":"648F7701-58AE-4D8E-9BF4-7CEB2544CE26"},"auxiliaryImage":{"imageName":"47CCEC1A-365D-4A7B-AE45-381EDD7B1F32"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"E0C3A64C-50AA-4499-8CF6-41EBEA752510"},"text":"","placeholder":"","question":"","localizedLearnMoreHTMLContent":"","useCardView":true,"imageContentMode": 0, "learnMoreItem":{"_class":"ORKLearnMoreItem"},"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0, "tagText": "","earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":true,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"B6F92FB7-5395-4AE2-9360-066CA37A418E"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"C7C218A3-69F7-4C4E-9501-BAD38CC4260F"},"title":"","image":{"imageName":"55019522-82E5-4D89-86D3-0ACD6A220E9E"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment": 0, "stepDuration":5,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKCountdownStep","shouldStartTimerAutomatically":true,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":true,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"B6F92FB7-5395-4AE2-9360-066CA37A418E"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"C7C218A3-69F7-4C4E-9501-BAD38CC4260F"},"title":"","image":{"imageName":"55019522-82E5-4D89-86D3-0ACD6A220E9E"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment": 0, "stepDuration":5,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKCountdownStep","shouldStartTimerAutomatically":true,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":false,"recorderConfigurations":[],"shouldSpeakCountDown":false,"shouldTintImages":true,"iconImage":{"imageName":"883D1208-F5D7-438F-96E2-BDCADF944A00"},"auxiliaryImage":{"imageName":"314A97C4-3FC7-42E3-BA7F-318B7584547E"},"thresholdValue":35,"title":"","shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"image":{"imageName":"B6828B3C-AE63-4DDC-A099-CA8898DBD6CA"},"detailText":"", "headerTextAlignment": 0, "stepDuration":0,"shouldShowDefaultTimer":true,"requiredContiguousSamples":5,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"samplingInterval":1,"finishedSpokenInstruction":"","_class":"ORKEnvironmentSPLMeterStep","text":"","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":false,"recorderConfigurations":[],"shouldSpeakCountDown":false,"shouldTintImages":true,"iconImage":{"imageName":"883D1208-F5D7-438F-96E2-BDCADF944A00"},"auxiliaryImage":{"imageName":"314A97C4-3FC7-42E3-BA7F-318B7584547E"},"thresholdValue":35,"title":"","shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"image":{"imageName":"B6828B3C-AE63-4DDC-A099-CA8898DBD6CA"},"detailText":"", "headerTextAlignment": 0, "stepDuration":0,"shouldShowDefaultTimer":true,"requiredContiguousSamples":5,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"samplingInterval":1,"finishedSpokenInstruction":"","_class":"ORKEnvironmentSPLMeterStep","text":"","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"3F5C9800-6A7A-4158-8ECF-0832B44DF6C1"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"988B687D-F50F-4B89-B6B7-20F11AE6AC8E"},"title":"","image":{"imageName":"B7400237-AD21-4AA3-8E4C-60F06E05EA39"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment": 0, "stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKFitnessStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"},"userInfo":{}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"3F5C9800-6A7A-4158-8ECF-0832B44DF6C1"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"988B687D-F50F-4B89-B6B7-20F11AE6AC8E"},"title":"","image":{"imageName":"B7400237-AD21-4AA3-8E4C-60F06E05EA39"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment": 0, "stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKFitnessStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"},"userInfo":{}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "optional":true,"useSurveyMode":true,"shouldTintImages":true,"_class":"ORKFormStep","auxiliaryImage":{"imageName":"747C6BFD-53E7-47EE-95B6-D4ABDC6270CF"},"iconImage":{"imageName":"A9782DB7-4168-4967-8E34-F75A62A7106E"},"title":"","identifier":"","footnote":"","image":{"imageName":"0BBE4F43-391F-4B33-9770-740363779CBD"},"text":"","formItems":[],"useCardView":true,"imageContentMode": 0,"footerText":"","bodyItemTextAlignment":0,"buildInBodyItems": 0,"cardViewStyle":0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "optional":true,"useSurveyMode":true,"shouldTintImages":true,"_class":"ORKFormStep","auxiliaryImage":{"imageName":"747C6BFD-53E7-47EE-95B6-D4ABDC6270CF"},"iconImage":{"imageName":"A9782DB7-4168-4967-8E34-F75A62A7106E"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"0BBE4F43-391F-4B33-9770-740363779CBD"},"text":"","formItems":[],"useCardView":true,"imageContentMode": 0,"footerText":"","bodyItemTextAlignment":0,"buildInBodyItems": 0,"cardViewStyle":0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"50DE67FB-AE5A-4C1A-97E6-038BAB9A346F"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"23DBF489-731A-446A-A5ED-3D3E737C5E12"},"title":"","image":{"imageName":"A39F0D25-B88E-446C-BC34-614AE0405E73"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment":0,"stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKFrontFacingCameraStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"maximumRecordingLimit":60, "allowsReview":true, "allowsRetry":true,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"50DE67FB-AE5A-4C1A-97E6-038BAB9A346F"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"23DBF489-731A-446A-A5ED-3D3E737C5E12"},"title":"","image":{"imageName":"A39F0D25-B88E-446C-BC34-614AE0405E73"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"", "headerTextAlignment":0,"stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKFrontFacingCameraStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"maximumRecordingLimit":60, "allowsReview":true, "allowsRetry":true,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":true,"recorderConfigurations":[],"shouldSpeakCountDown":false,"shouldTintImages":true,"iconImage":{"imageName":"C4304649-4220-45B0-95C8-07219157A460"},"auxiliaryImage":{"imageName":"CD0C6044-D7E4-4970-9E24-D4907A9CCF85"},"movingDirection":0,"title":"","shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"image":{"imageName":"48957C0F-22A8-419C-A372-9DB9B4CFE41B"},"detailText":"", "headerTextAlignment": 0, "stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"dominantHandTested":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"numberOfPegs":0,"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"bodyItems":[],"text":"","finishedSpokenInstruction":"","_class":"ORKHolePegTestPlaceStep","rotated":false,"threshold":0,"shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":true,"recorderConfigurations":[],"shouldSpeakCountDown":false,"shouldTintImages":true,"iconImage":{"imageName":"C4304649-4220-45B0-95C8-07219157A460"},"auxiliaryImage":{"imageName":"CD0C6044-D7E4-4970-9E24-D4907A9CCF85"},"movingDirection":0,"title":"","shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"image":{"imageName":"48957C0F-22A8-419C-A372-9DB9B4CFE41B"},"detailText":"", "headerTextAlignment": 0, "stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"dominantHandTested":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"numberOfPegs":0,"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"bodyItems":[],"text":"","finishedSpokenInstruction":"","_class":"ORKHolePegTestPlaceStep","rotated":false,"threshold":0,"shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":true,"recorderConfigurations":[],"shouldSpeakCountDown":false,"shouldTintImages":true,"iconImage":{"imageName":"BE486BA2-4BF4-4B55-A13C-823460C271F9"},"auxiliaryImage":{"imageName":"CC4FA554-A433-46CB-948E-35F2B01177BB"},"movingDirection":0,"title":"","shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"image":{"imageName":"0D2B43F6-8030-40F3-B7D5-6D3848EAEB83"},"detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"dominantHandTested":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"numberOfPegs":0,"shouldVibrateOnStart":false,"bodyItems":[],"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKHolePegTestRemoveStep","threshold":0,"shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":true,"recorderConfigurations":[],"shouldSpeakCountDown":false,"shouldTintImages":true,"iconImage":{"imageName":"BE486BA2-4BF4-4B55-A13C-823460C271F9"},"auxiliaryImage":{"imageName":"CC4FA554-A433-46CB-948E-35F2B01177BB"},"movingDirection":0,"title":"","shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"image":{"imageName":"0D2B43F6-8030-40F3-B7D5-6D3848EAEB83"},"detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"dominantHandTested":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"numberOfPegs":0,"shouldVibrateOnStart":false,"bodyItems":[],"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKHolePegTestRemoveStep","threshold":0,"shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "optional":true,"useSurveyMode":false,"templateImageInsets":{"right":1,"top":1,"left":1,"bottom":1},"_class":"ORKImageCaptureStep","shouldTintImages":true,"iconImage":{"imageName":"B540C098-2AC8-47DC-AA92-C5D12711DE58"},"auxiliaryImage":{"imageName":"E8D4C452-E28D-4F04-9681-FCFE512B578D"},"captureRaw":false,"title":"","identifier":"","templateImage":{"imageName":"DFC768AB-9173-4574-A981-53298C0F9155"},"footnote":"","image":{"imageName":"D1E13489-E3D2-4248-9260-2F7A750DA1A3"},"text":"","accessibilityInstructions":"","accessibilityHint":"","imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "optional":true,"useSurveyMode":false,"templateImageInsets":{"right":1,"top":1,"left":1,"bottom":1},"_class":"ORKImageCaptureStep","shouldTintImages":true,"iconImage":{"imageName":"B540C098-2AC8-47DC-AA92-C5D12711DE58"},"auxiliaryImage":{"imageName":"E8D4C452-E28D-4F04-9681-FCFE512B578D"},"captureRaw":false,"title":"","identifier":"","templateImage":{"imageName":"DFC768AB-9173-4574-A981-53298C0F9155"},"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"D1E13489-E3D2-4248-9260-2F7A750DA1A3"},"text":"","accessibilityInstructions":"","accessibilityHint":"","imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKInstructionStep","iconImage":{"imageName":"009AF45B-7E20-494E-A16C-88C6BDC15016"},"auxiliaryImage":{"imageName":"63D79505-966B-4AB6-BD80-0B4CADF45EAA"},"title":"","identifier":"","image":{"imageName":"97759B9C-39F2-4BE2-AD0A-FBCC3571DC5C"},"footnote":"","text":"","detailText":"", "headerTextAlignment": 0, "imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"centerImageVertically":0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKInstructionStep","iconImage":{"imageName":"009AF45B-7E20-494E-A16C-88C6BDC15016"},"auxiliaryImage":{"imageName":"63D79505-966B-4AB6-BD80-0B4CADF45EAA"},"title":"","identifier":"","image":{"imageName":"97759B9C-39F2-4BE2-AD0A-FBCC3571DC5C"},"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"text":"","detailText":"", "headerTextAlignment": 0, "imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"centerImageVertically":0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKLearnMoreInstructionStep","iconImage":{"imageName":"AA4B1340-91CA-43F8-8DFF-65D8072F47E0"},"auxiliaryImage":{"imageName":"51F527BE-5B1E-465A-9260-B79664443AC2"},"title":"","identifier":"","image":{"imageName":"EE23D70C-83EB-41CE-83FC-4D3D632322DE"},"footnote":"","text":"","detailText":"", "headerTextAlignment": 0, "imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"centerImageVertically":0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKLearnMoreInstructionStep","iconImage":{"imageName":"AA4B1340-91CA-43F8-8DFF-65D8072F47E0"},"auxiliaryImage":{"imageName":"51F527BE-5B1E-465A-9260-B79664443AC2"},"title":"","identifier":"","image":{"imageName":"EE23D70C-83EB-41CE-83FC-4D3D632322DE"},"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"text":"","detailText":"", "headerTextAlignment": 0, "imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"centerImageVertically":0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "loginViewControllerString":"ORKLoginStepViewController","optional":true,"useSurveyMode":true,"shouldTintImages":true,"_class":"ORKLoginStep","iconImage":{"imageName":"65159B22-6011-4EB7-81BD-2E597B4AA29A"},"auxiliaryImage":{"imageName":"45AA55E2-9A86-4285-9FF7-A1E77856C480"},"title":"","identifier":"","footnote":"","image":{"imageName":"5B301CC2-521C-4403-BFBA-7597E0A93CFA"},"text":"","formItems":[],"useCardView":true,"imageContentMode": 0,"footerText":"","bodyItemTextAlignment":0,"buildInBodyItems": 0,"cardViewStyle":0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "loginViewControllerString":"ORKLoginStepViewController","optional":true,"useSurveyMode":true,"shouldTintImages":true,"_class":"ORKLoginStep","iconImage":{"imageName":"65159B22-6011-4EB7-81BD-2E597B4AA29A"},"auxiliaryImage":{"imageName":"45AA55E2-9A86-4285-9FF7-A1E77856C480"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"5B301CC2-521C-4403-BFBA-7597E0A93CFA"},"text":"","formItems":[],"useCardView":true,"imageContentMode": 0,"footerText":"","bodyItemTextAlignment":0,"buildInBodyItems": 0,"cardViewStyle":0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"pageTask":{"_class":"ORKOrderedTask","identifier":"test1"},"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKNavigablePageStep","iconImage":{"imageName":"EA8D496D-A56D-4C7E-A4F0-78CE32EE034C"},"auxiliaryImage":{"imageName":"A17C26E6-AEE0-4F8A-97E5-96C2B925884F"},"title":"","identifier":"","image":{"imageName":"428F188A-57C5-44A2-8B53-1BA16F8F50E0"},"footnote":"","text":"","detailText":"", "headerTextAlignment": 0, "imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"pageTask":{"_class":"ORKOrderedTask","identifier":"test1"},"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKNavigablePageStep","iconImage":{"imageName":"EA8D496D-A56D-4C7E-A4F0-78CE32EE034C"},"auxiliaryImage":{"imageName":"A17C26E6-AEE0-4F8A-97E5-96C2B925884F"},"title":"","identifier":"","image":{"imageName":"428F188A-57C5-44A2-8B53-1BA16F8F50E0"},"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"text":"","detailText":"", "headerTextAlignment": 0, "imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
{"shouldVibrateOnStart":false,"spokenInstruction":"","shouldStartTimerAutomatically":false,"successSound":0,"stepDuration":0,"shouldShowDefaultTimer":true,"optional":false,"minimumStimulusInterval":0,"detailText":"", "headerTextAlignment": 0, "text":"","_class":"ORKNormalizedReactionTimeStep","useSurveyMode":false,"numberOfAttempts":0,"maximumStimulusInterval":0, "currentInterval":0,"thresholdAcceleration":0,"bodyItems":[],"shouldVibrateOnFinish":false,"image":{"imageName":"282B623C-C013-4FDD-8721-4D2EB755598F"},"iconImage":{"imageName":"904E22CF-C9ED-485D-B9C4-6B47D351C10A"},"shouldPlaySoundOnStart":false,"auxiliaryImage":{"imageName":"64424C2B-9897-4A78-A79E-B1948817505A"},"failureSound":0,"shouldContinueOnFinish":true,"identifier":"","shouldSpeakRemainingTimeAtHalfway":false,"footnote":"","shouldSpeakCountDown":false,"timeout":0,"title":"","finishedSpokenInstruction":"","shouldUseNextAsSkipButton":false,"shouldPlaySoundOnFinish":false,"shouldTintImages":true,"timeoutSound":0,"recorderConfigurations":[],"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"shouldVibrateOnStart":false,"spokenInstruction":"","shouldStartTimerAutomatically":false,"successSound":0,"stepDuration":0,"shouldShowDefaultTimer":true,"optional":false,"minimumStimulusInterval":0,"detailText":"", "headerTextAlignment": 0, "text":"","_class":"ORKNormalizedReactionTimeStep","useSurveyMode":false,"numberOfAttempts":0,"maximumStimulusInterval":0, "currentInterval":0,"thresholdAcceleration":0,"bodyItems":[],"shouldVibrateOnFinish":false,"image":{"imageName":"282B623C-C013-4FDD-8721-4D2EB755598F"},"iconImage":{"imageName":"904E22CF-C9ED-485D-B9C4-6B47D351C10A"},"shouldPlaySoundOnStart":false,"auxiliaryImage":{"imageName":"64424C2B-9897-4A78-A79E-B1948817505A"},"failureSound":0,"shouldContinueOnFinish":true,"identifier":"","shouldSpeakRemainingTimeAtHalfway":false,"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldSpeakCountDown":false,"timeout":0,"title":"","finishedSpokenInstruction":"","shouldUseNextAsSkipButton":false,"shouldPlaySoundOnFinish":false,"shouldTintImages":true,"timeoutSound":0,"recorderConfigurations":[],"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"optional":false,"pdfURL":"file:\/\/\/usr\/","useSurveyMode":false,"_class":"ORKPDFViewerStep","shouldTintImages":true,"iconImage":{"imageName":"304906CA-FB5B-4147-AA16-1A087A78A324"},"title":"","identifier":"","footnote":"","auxiliaryImage":{"imageName":"2ED7211C-A4AB-4EB3-A59E-C99AA7884B2D"},"actionBarOption":0,"image":{"imageName":"E2F454DF-3E96-4974-8BBB-46E1FF556A0C"},"text":"","detailText":"", "headerTextAlignment": 0, "imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"optional":false,"pdfURL":"file:\/\/\/usr\/","useSurveyMode":false,"_class":"ORKPDFViewerStep","shouldTintImages":true,"iconImage":{"imageName":"304906CA-FB5B-4147-AA16-1A087A78A324"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"auxiliaryImage":{"imageName":"2ED7211C-A4AB-4EB3-A59E-C99AA7884B2D"},"actionBarOption":0,"image":{"imageName":"E2F454DF-3E96-4974-8BBB-46E1FF556A0C"},"text":"","detailText":"", "headerTextAlignment": 0, "imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","stimulusDuration":0,"recorderConfigurations":[],"shouldContinueOnFinish":true,"shouldSpeakCountDown":false,"interStimulusInterval":0,"shouldTintImages":true,"iconImage":{"imageName":"A0A7FA5A-91F9-4FC1-8D58-287F482B2074"},"auxiliaryImage":{"imageName":"A2ED4D38-98B4-46E2-A926-C226ED3415B0"},"shouldPlaySoundOnFinish":false,"seriesLength":0,"shouldPlaySoundOnStart":false,"title":"","image":{"imageName":"F7381130-E0E1-4B0E-A726-C0D0C6D0C8F0"},"detailText":"", "headerTextAlignment": 0, "stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"presentationMode":0,"shouldVibrateOnStart":false,"bodyItems":[],"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKPSATStep","shouldStartTimerAutomatically":true,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"stimulusDuration":0,"recorderConfigurations":[],"shouldContinueOnFinish":true,"shouldSpeakCountDown":false,"interStimulusInterval":0,"shouldTintImages":true,"iconImage":{"imageName":"A0A7FA5A-91F9-4FC1-8D58-287F482B2074"},"auxiliaryImage":{"imageName":"A2ED4D38-98B4-46E2-A926-C226ED3415B0"},"shouldPlaySoundOnFinish":false,"seriesLength":0,"shouldPlaySoundOnStart":false,"title":"","image":{"imageName":"F7381130-E0E1-4B0E-A726-C0D0C6D0C8F0"},"detailText":"", "headerTextAlignment": 0, "stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"presentationMode":0,"shouldVibrateOnStart":false,"bodyItems":[],"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKPSATStep","shouldStartTimerAutomatically":true,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"pageTask":{"_class":"ORKOrderedTask","identifier":"test1"},"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKPageStep","iconImage":{"imageName":"AF540A3D-754B-4D3B-8800-3147F200E737"},"auxiliaryImage":{"imageName":"3F29D2C0-BFAD-47F5-BF04-46C669F92C27"},"title":"","identifier":"","image":{"imageName":"D83FAB77-1713-4C02-BAFD-4C0C0D831BCD"},"footnote":"","text":"","detailText":"", "headerTextAlignment": 0, "imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"pageTask":{"_class":"ORKOrderedTask","identifier":"test1"},"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKPageStep","iconImage":{"imageName":"AF540A3D-754B-4D3B-8800-3147F200E737"},"auxiliaryImage":{"imageName":"3F29D2C0-BFAD-47F5-BF04-46C669F92C27"},"title":"","identifier":"","image":{"imageName":"D83FAB77-1713-4C02-BAFD-4C0C0D831BCD"},"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"text":"","detailText":"", "headerTextAlignment": 0, "imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "passcodeType":0,"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKPasscodeStep","iconImage":{"imageName":"AD57BE82-B09F-4325-A9EA-DE82F7C29610"},"auxiliaryImage":{"imageName":"3B3736C1-BD56-4237-9875-5C65FFFD0A37"},"title":"","identifier":"","footnote":"","image":{"imageName":"3F144446-AAAE-4D83-9860-46E99BB08AE1"},"text":"","useBiometrics":true, "passcodeFlow":0,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "passcodeType":0,"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKPasscodeStep","iconImage":{"imageName":"AD57BE82-B09F-4325-A9EA-DE82F7C29610"},"auxiliaryImage":{"imageName":"3B3736C1-BD56-4237-9875-5C65FFFD0A37"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"3F144446-AAAE-4D83-9860-46E99BB08AE1"},"text":"","useBiometrics":true, "passcodeFlow":0,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"answerFormat":{"_class":"ORKAnswerFormat"},"detailText":"", "headerTextAlignment": 0, "optional":true,"shouldTintImages":true,"useSurveyMode":true,"_class":"ORKQuestionStep","presentationStyle":"default","iconImage":{"imageName":"08814579-346A-4783-8F5E-4BC2F61E9FE5"},"auxiliaryImage":{"imageName":"61DAEC67-9E43-4B89-A3F8-BE87C9F87C3B"},"title":"","identifier":"","footnote":"","image":{"imageName":"B2C3112F-8A16-4A7C-9CCF-743FBAF9B993"},"text":"","placeholder":"","question":"","useCardView":true,"imageContentMode": 0, "learnMoreItem":{"_class":"ORKLearnMoreItem"},"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"tagText": "","earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"answerFormat":{"_class":"ORKAnswerFormat"},"detailText":"", "headerTextAlignment": 0, "optional":true,"shouldTintImages":true,"useSurveyMode":true,"_class":"ORKQuestionStep","presentationStyle":"default","iconImage":{"imageName":"08814579-346A-4783-8F5E-4BC2F61E9FE5"},"auxiliaryImage":{"imageName":"61DAEC67-9E43-4B89-A3F8-BE87C9F87C3B"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"B2C3112F-8A16-4A7C-9CCF-743FBAF9B993"},"text":"","placeholder":"","question":"","useCardView":true,"imageContentMode": 0, "learnMoreItem":{"_class":"ORKLearnMoreItem"},"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"tagText": "","earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"recorderConfigurations":[],"iconImage":{"imageName":"F3331959-D3B6-43BA-A279-E1502B81DE5E"},"auxiliaryImage":{"imageName":"2C398061-2D1F-45E6-BCCF-F470628D51D1"},"title":"","image":{"imageName":"E1CF0E97-5E1A-4860-AF2D-D36FC5C427E3"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"limbOption":0,"detailText":"", "headerTextAlignment": 0, "stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKRangeOfMotionStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"},"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"recorderConfigurations":[],"iconImage":{"imageName":"F3331959-D3B6-43BA-A279-E1502B81DE5E"},"auxiliaryImage":{"imageName":"2C398061-2D1F-45E6-BCCF-F470628D51D1"},"title":"","image":{"imageName":"E1CF0E97-5E1A-4860-AF2D-D36FC5C427E3"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"limbOption":0,"detailText":"", "headerTextAlignment": 0, "stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKRangeOfMotionStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"},"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"shouldVibrateOnStart":false,"spokenInstruction":"","shouldStartTimerAutomatically":false,"successSound":0,"stepDuration":0,"shouldShowDefaultTimer":true,"optional":false,"minimumStimulusInterval":0,"detailText":"", "headerTextAlignment": 0, "text":"","_class":"ORKReactionTimeStep","useSurveyMode":false,"numberOfAttempts":0,"maximumStimulusInterval":0,"thresholdAcceleration":0,"bodyItems":[],"shouldVibrateOnFinish":false,"image":{"imageName":"282B623C-C013-4FDD-8721-4D2EB755598F"},"iconImage":{"imageName":"904E22CF-C9ED-485D-B9C4-6B47D351C10A"},"shouldPlaySoundOnStart":false,"auxiliaryImage":{"imageName":"64424C2B-9897-4A78-A79E-B1948817505A"},"failureSound":0,"shouldContinueOnFinish":true,"identifier":"","shouldSpeakRemainingTimeAtHalfway":false,"footnote":"","shouldSpeakCountDown":false,"timeout":0,"title":"","finishedSpokenInstruction":"","shouldUseNextAsSkipButton":false,"shouldPlaySoundOnFinish":false,"shouldTintImages":true,"timeoutSound":0,"recorderConfigurations":[],"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"shouldVibrateOnStart":false,"spokenInstruction":"","shouldStartTimerAutomatically":false,"successSound":0,"stepDuration":0,"shouldShowDefaultTimer":true,"optional":false,"minimumStimulusInterval":0,"detailText":"", "headerTextAlignment": 0, "text":"","_class":"ORKReactionTimeStep","useSurveyMode":false,"numberOfAttempts":0,"maximumStimulusInterval":0,"thresholdAcceleration":0,"bodyItems":[],"shouldVibrateOnFinish":false,"image":{"imageName":"282B623C-C013-4FDD-8721-4D2EB755598F"},"iconImage":{"imageName":"904E22CF-C9ED-485D-B9C4-6B47D351C10A"},"shouldPlaySoundOnStart":false,"auxiliaryImage":{"imageName":"64424C2B-9897-4A78-A79E-B1948817505A"},"failureSound":0,"shouldContinueOnFinish":true,"identifier":"","shouldSpeakRemainingTimeAtHalfway":false,"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldSpeakCountDown":false,"timeout":0,"title":"","finishedSpokenInstruction":"","shouldUseNextAsSkipButton":false,"shouldPlaySoundOnFinish":false,"shouldTintImages":true,"timeoutSound":0,"recorderConfigurations":[],"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "options":0,"optional":false,"useSurveyMode":true,"shouldTintImages":true,"_class":"ORKRegistrationStep","auxiliaryImage":{"imageName":"AE8E0687-1A0C-42C1-964A-E8F89E789B1E"},"iconImage":{"imageName":"4C7914C4-0EA8-4D43-A7B0-ECB2E3DE0FAC"},"title":"","identifier":"","footnote":"","image":{"imageName":"0BB5BA89-09CC-4DB0-B941-6A2D51834EC6"},"text":"","formItems":[],"useCardView":true,"imageContentMode": 0,"footerText":"","bodyItemTextAlignment":0,"buildInBodyItems": 0,"cardViewStyle":0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "options":0,"optional":false,"useSurveyMode":true,"shouldTintImages":true,"_class":"ORKRegistrationStep","auxiliaryImage":{"imageName":"AE8E0687-1A0C-42C1-964A-E8F89E789B1E"},"iconImage":{"imageName":"4C7914C4-0EA8-4D43-A7B0-ECB2E3DE0FAC"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"0BB5BA89-09CC-4DB0-B941-6A2D51834EC6"},"text":"","formItems":[],"useCardView":true,"imageContentMode": 0,"footerText":"","bodyItemTextAlignment":0,"buildInBodyItems": 0,"cardViewStyle":0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKRequestPermissionsStep","iconImage":{"imageName":"1425D9D4-DB67-4B5D-93B0-FE3125E67262"},"auxiliaryImage":{"imageName":"5DEF32D5-D23E-4E8F-8C05-4B1D24E6257D"},"title":"","identifier":"","footnote":"","image":{"imageName":"DB613E0C-4491-457B-B958-C7FBE6232101"},"text":"","detailText":"","headerTextAlignment": 0,"imageContentMode": 0, "headerTextAlignment": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0, "permissionTypes":[],"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKRequestPermissionsStep","iconImage":{"imageName":"1425D9D4-DB67-4B5D-93B0-FE3125E67262"},"auxiliaryImage":{"imageName":"5DEF32D5-D23E-4E8F-8C05-4B1D24E6257D"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"DB613E0C-4491-457B-B958-C7FBE6232101"},"text":"","detailText":"","headerTextAlignment": 0,"imageContentMode": 0, "headerTextAlignment": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0, "permissionTypes":[],"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKReviewStep","iconImage":{"imageName":"FC6FA284-33CF-4207-A766-E4B53D63D1FA"},"auxiliaryImage":{"imageName":"DF5BB476-8890-4AA0-9F39-D15A16D5FDF7"},"title":"","identifier":"","footnote":"","image":{"imageName":"C71BC697-7306-4B7D-99B7-62E7C9D0CEB2"},"excludeInstructionSteps":false,"text":"","resultSource":{"results":[],"_class":"ORKTaskResult","startDate":"2019-05-27T00:35:06-0700","endDate":"2019-05-27T00:35:06-0700"},"steps":[],"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKReviewStep","iconImage":{"imageName":"FC6FA284-33CF-4207-A766-E4B53D63D1FA"},"auxiliaryImage":{"imageName":"DF5BB476-8890-4AA0-9F39-D15A16D5FDF7"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"C71BC697-7306-4B7D-99B7-62E7C9D0CEB2"},"excludeInstructionSteps":false,"text":"","resultSource":{"results":[],"_class":"ORKTaskResult","startDate":"2019-05-27T00:35:06-0700","endDate":"2019-05-27T00:35:06-0700"},"steps":[],"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKSecondaryTaskStep","iconImage":{"imageName":"AA4B1340-91CA-43F8-8DFF-65D8072F47E0"},"auxiliaryImage":{"imageName":"51F527BE-5B1E-465A-9260-B79664443AC2"},"title":"","identifier":"","image":{"imageName":"EE23D70C-83EB-41CE-83FC-4D3D632322DE"},"footnote":"","text":"","detailText":"", "headerTextAlignment": 0, "imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"secondaryTask":{"_class":"ORKOrderedTask","identifier":"test1"},"secondaryTaskButtonTitle":"","nextButtonTitle":"","requiredAttempts":0,"centerImageVertically":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKSecondaryTaskStep","iconImage":{"imageName":"AA4B1340-91CA-43F8-8DFF-65D8072F47E0"},"auxiliaryImage":{"imageName":"51F527BE-5B1E-465A-9260-B79664443AC2"},"title":"","identifier":"","image":{"imageName":"EE23D70C-83EB-41CE-83FC-4D3D632322DE"},"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"text":"","detailText":"", "headerTextAlignment": 0, "imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"secondaryTask":{"_class":"ORKOrderedTask","identifier":"test1"},"secondaryTaskButtonTitle":"","nextButtonTitle":"","requiredAttempts":0,"centerImageVertically":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKSignatureStep","iconImage":{"imageName":"37EEFD54-6752-4FE3-A7AD-ABC987E21266"},"auxiliaryImage":{"imageName":"3FF8D308-8975-4B50-B016-28BA3E62C095"},"title":"","identifier":"","footnote":"","image":{"imageName":"10358617-E4C2-473F-8B22-9C68B4B8A5D9"},"text":"","detailText":"", "headerTextAlignment": 0, "imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKSignatureStep","iconImage":{"imageName":"37EEFD54-6752-4FE3-A7AD-ABC987E21266"},"auxiliaryImage":{"imageName":"3FF8D308-8975-4B50-B016-28BA3E62C095"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"10358617-E4C2-473F-8B22-9C68B4B8A5D9"},"text":"","detailText":"", "headerTextAlignment": 0, "imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"spokenInstruction":"","shouldStartTimerAutomatically":true,"stepDuration":0,"shouldShowDefaultTimer":true,"requireReversal":false,"maximumSpan":0,"optional":false,"initialSpan":0,"detailText":"", "headerTextAlignment": 0, "minimumSpan":0,"_class":"ORKSpatialSpanMemoryStep","text":"","useSurveyMode":false,"bodyItems":[],"customTargetPluralName":"","shouldVibrateOnFinish":false,"image":{"imageName":"A8AB293A-10C1-41BE-ACFE-7AE22DE83E8B"},"iconImage":{"imageName":"DCA06D4F-5800-4E11-AE9C-127854AE5393"},"shouldPlaySoundOnStart":false,"maximumTests":0,"auxiliaryImage":{"imageName":"68CF68A4-DED8-4EC1-8246-D11AAEBA99D8"},"customTargetImage":{"imageName":"7F102C61-3C9D-420A-8C29-ED016F6C4E45"},"shouldContinueOnFinish":true,"identifier":"","shouldSpeakRemainingTimeAtHalfway":false,"footnote":"","shouldSpeakCountDown":false,"playSpeed":0,"maximumConsecutiveFailures":0,"title":"","finishedSpokenInstruction":"","shouldUseNextAsSkipButton":false,"shouldPlaySoundOnFinish":false,"shouldTintImages":true,"shouldVibrateOnStart":false,"recorderConfigurations":[],"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"spokenInstruction":"","shouldStartTimerAutomatically":true,"stepDuration":0,"shouldShowDefaultTimer":true,"requireReversal":false,"maximumSpan":0,"optional":false,"initialSpan":0,"detailText":"", "headerTextAlignment": 0, "minimumSpan":0,"_class":"ORKSpatialSpanMemoryStep","text":"","useSurveyMode":false,"bodyItems":[],"customTargetPluralName":"","shouldVibrateOnFinish":false,"image":{"imageName":"A8AB293A-10C1-41BE-ACFE-7AE22DE83E8B"},"iconImage":{"imageName":"DCA06D4F-5800-4E11-AE9C-127854AE5393"},"shouldPlaySoundOnStart":false,"maximumTests":0,"auxiliaryImage":{"imageName":"68CF68A4-DED8-4EC1-8246-D11AAEBA99D8"},"customTargetImage":{"imageName":"7F102C61-3C9D-420A-8C29-ED016F6C4E45"},"shouldContinueOnFinish":true,"identifier":"","shouldSpeakRemainingTimeAtHalfway":false,"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldSpeakCountDown":false,"playSpeed":0,"maximumConsecutiveFailures":0,"title":"","finishedSpokenInstruction":"","shouldUseNextAsSkipButton":false,"shouldPlaySoundOnFinish":false,"shouldTintImages":true,"shouldVibrateOnStart":false,"recorderConfigurations":[],"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"targetSentence":"",
|
||||
"speechFilePath": "",
|
||||
"footnote": "",
|
||||
"shouldAutomaticallyAdjustImageTintColor":0,
|
||||
"shouldContinueOnFinish": true,
|
||||
"recorderConfigurations":[],
|
||||
"shouldSpeakCountDown": false,
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":true,"shouldTintImages":true,"shouldSpeakCountDown":false,"recorderConfigurations":[],"iconImage":{"imageName":"A7F86173-D719-4A24-80B1-84307C0CAF6F"},"auxiliaryImage":{"imageName":"FE592459-9F5E-41AB-B051-7EFCD8F7ADA4"},"title":"","image":{"imageName":"97352EFE-D43D-498A-B780-DCAADFB923E9"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"speechRecognitionText":"test","detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"shouldHideTranscript":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","speechRecognizerLocale":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKSpeechRecognitionStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":true,"shouldTintImages":true,"shouldSpeakCountDown":false,"recorderConfigurations":[],"iconImage":{"imageName":"A7F86173-D719-4A24-80B1-84307C0CAF6F"},"auxiliaryImage":{"imageName":"FE592459-9F5E-41AB-B051-7EFCD8F7ADA4"},"title":"","image":{"imageName":"97352EFE-D43D-498A-B780-DCAADFB923E9"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"speechRecognitionText":"test","detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"shouldHideTranscript":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","speechRecognizerLocale":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKSpeechRecognitionStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKStep","iconImage":{"imageName":"1425D9D4-DB67-4B5D-93B0-FE3125E67262"},"auxiliaryImage":{"imageName":"5DEF32D5-D23E-4E8F-8C05-4B1D24E6257D"},"title":"","identifier":"","footnote":"","image":{"imageName":"DB613E0C-4491-457B-B958-C7FBE6232101"},"text":"","detailText":"","headerTextAlignment": 0,"imageContentMode": 0, "headerTextAlignment": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKStep","iconImage":{"imageName":"1425D9D4-DB67-4B5D-93B0-FE3125E67262"},"auxiliaryImage":{"imageName":"5DEF32D5-D23E-4E8F-8C05-4B1D24E6257D"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"DB613E0C-4491-457B-B958-C7FBE6232101"},"text":"","detailText":"","headerTextAlignment": 0,"imageContentMode": 0, "headerTextAlignment": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
{"footnote":"","shouldContinueOnFinish":true,"shouldTintImages":true,"shouldSpeakCountDown":false,"recorderConfigurations":[],"iconImage":{"imageName":"62E9D4CF-3E7B-49B8-A295-7D2EB1ECC00B"},"auxiliaryImage":{"imageName":"8C25AB92-00C9-4E13-B55F-711658F53D48"},"title":"","image":{"imageName":"4930AC43-8AAA-4563-8C8F-6E7E25E550C3"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"","headerTextAlignment": 0,"stepDuration":9.2233720368547758e+18,"shouldShowDefaultTimer":false,"numberOfAttempts":0,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":true,"shouldSpeakRemainingTimeAtHalfway":false, "randomizeVisualAndColorAlignment": true,"useTextForStimuli":true,"useGridLayoutForButtons":false, "text":"","finishedSpokenInstruction":"","_class":"ORKStroopStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":true,"shouldTintImages":true,"shouldSpeakCountDown":false,"recorderConfigurations":[],"iconImage":{"imageName":"62E9D4CF-3E7B-49B8-A295-7D2EB1ECC00B"},"auxiliaryImage":{"imageName":"8C25AB92-00C9-4E13-B55F-711658F53D48"},"title":"","image":{"imageName":"4930AC43-8AAA-4563-8C8F-6E7E25E550C3"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"","headerTextAlignment": 0,"stepDuration":9.2233720368547758e+18,"shouldShowDefaultTimer":false,"numberOfAttempts":0,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":true,"shouldSpeakRemainingTimeAtHalfway":false,"randomizeVisualAndColorAlignment": true,"useTextForStimuli":true,"useGridLayoutForButtons":false,"text":"","finishedSpokenInstruction":"","_class":"ORKStroopStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"allowsSelection":false,"detailText":"","headerTextAlignment": 0,"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKTableStep","auxiliaryImage":{"imageName":"C594DE5C-AB0F-468C-956E-8347C5E14E08"},"iconImage":{"imageName":"A3C3C914-C4ED-4633-9852-67D8AB687094"},"isBulleted":false,"title":"","identifier":"","footnote":"","image":{"imageName":"FC4CCE13-5C8A-434F-979C-1E48ADDEBBE0"},"items":[],"text":"","bulletType":0,"bulletIconNames":[],"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"pinNavigationContainer":false,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"allowsSelection":false,"detailText":"","headerTextAlignment": 0,"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKTableStep","auxiliaryImage":{"imageName":"C594DE5C-AB0F-468C-956E-8347C5E14E08"},"iconImage":{"imageName":"A3C3C914-C4ED-4633-9852-67D8AB687094"},"isBulleted":false,"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"FC4CCE13-5C8A-434F-979C-1E48ADDEBBE0"},"items":[],"text":"","bulletType":0,"bulletIconNames":[],"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"pinNavigationContainer":false,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"E99E1E45-69C1-4A8D-B93A-8A2C21F83BF8"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"8C6E1C04-F1B1-4EA7-93F4-415FBEB3C489"},"title":"","image":{"imageName":"1DA566D1-4BE7-48C9-849B-8E30C0EE613A"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKTappingIntervalStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"E99E1E45-69C1-4A8D-B93A-8A2C21F83BF8"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"8C6E1C04-F1B1-4EA7-93F4-415FBEB3C489"},"title":"","image":{"imageName":"1DA566D1-4BE7-48C9-849B-8E30C0EE613A"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKTappingIntervalStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":false,"recorderConfigurations":[],"shouldSpeakCountDown":false,"shouldTintImages":true,"distanceInMeters":0,"iconImage":{"imageName":"392B209E-E4E0-458A-9CF3-0C7DF89F6626"},"auxiliaryImage":{"imageName":"0690C295-21F0-4FD8-926B-A4ECE1396745"},"title":"","shouldPlaySoundOnFinish":true,"shouldPlaySoundOnStart":true,"image":{"imageName":"2167A19B-9B1F-4010-812B-0F254CD98D00"},"detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":true,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"shouldVibrateOnStart":true,"bodyItems":[],"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKTimedWalkStep","shouldStartTimerAutomatically":true,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":false,"recorderConfigurations":[],"shouldSpeakCountDown":false,"shouldTintImages":true,"distanceInMeters":0,"iconImage":{"imageName":"392B209E-E4E0-458A-9CF3-0C7DF89F6626"},"auxiliaryImage":{"imageName":"0690C295-21F0-4FD8-926B-A4ECE1396745"},"title":"","shouldPlaySoundOnFinish":true,"shouldPlaySoundOnStart":true,"image":{"imageName":"2167A19B-9B1F-4010-812B-0F254CD98D00"},"detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":true,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"shouldVibrateOnStart":true,"bodyItems":[],"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKTimedWalkStep","shouldStartTimerAutomatically":true,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"recorderConfigurations":[],"iconImage":{"imageName":"80051064-3F2B-4675-AB0C-5C2C841B6BD8"},"auxiliaryImage":{"imageName":"E7C93E74-A1F3-4FA7-887C-64254B197612"},"title":"","image":{"imageName":"06DE4520-4A3F-4E48-A331-84FA1BC2F05D"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"spokenInstruction":"","practiceStep":false,"optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKToneAudiometryStep","toneDuration":0,"shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"recorderConfigurations":[],"iconImage":{"imageName":"80051064-3F2B-4675-AB0C-5C2C841B6BD8"},"auxiliaryImage":{"imageName":"E7C93E74-A1F3-4FA7-887C-64254B197612"},"title":"","image":{"imageName":"06DE4520-4A3F-4E48-A331-84FA1BC2F05D"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"spokenInstruction":"","practiceStep":false,"optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKToneAudiometryStep","toneDuration":0,"shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"661D3E94-889E-406B-A010-63E1E382D649"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"2F9EF951-6F59-413F-AC9A-4005401B6430"},"title":"","image":{"imageName":"A1753FF0-DF94-4966-863F-47542F37D42E"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKTouchAnywhereStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":false,"shouldTintImages":true,"shouldSpeakCountDown":false,"iconImage":{"imageName":"661D3E94-889E-406B-A010-63E1E382D649"},"recorderConfigurations":[],"auxiliaryImage":{"imageName":"2F9EF951-6F59-413F-AC9A-4005401B6430"},"title":"","image":{"imageName":"A1753FF0-DF94-4966-863F-47542F37D42E"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKTouchAnywhereStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":true,"recorderConfigurations":[],"shouldSpeakCountDown":false,"shouldTintImages":true,"iconImage":{"imageName":"CF6F5959-510B-4131-99B0-2B625446CCE7"},"auxiliaryImage":{"imageName":"CEC9CBE5-4978-473A-B597-3BFD19AA17FD"},"title":"","image":{"imageName":"30F1BD7F-633F-41EA-8144-0E06BCA8C457"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":true,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"shouldVibrateOnStart":false,"bodyItems":[],"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKTowerOfHanoiStep","numberOfDisks":3,"shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":true,"recorderConfigurations":[],"shouldSpeakCountDown":false,"shouldTintImages":true,"iconImage":{"imageName":"CF6F5959-510B-4131-99B0-2B625446CCE7"},"auxiliaryImage":{"imageName":"CEC9CBE5-4978-473A-B597-3BFD19AA17FD"},"title":"","image":{"imageName":"30F1BD7F-633F-41EA-8144-0E06BCA8C457"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":true,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":true,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"shouldVibrateOnStart":false,"bodyItems":[],"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKTowerOfHanoiStep","numberOfDisks":3,"shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":true,"shouldTintImages":true,"shouldSpeakCountDown":false,"recorderConfigurations":[],"iconImage":{"imageName":"6C57DF6B-CBDE-4763-906B-82204530AD07"},"auxiliaryImage":{"imageName":"3ED81064-D8E6-4D26-A2F0-9302EFB1058F"},"title":"","image":{"imageName":"3F2A9599-FE48-41D2-9169-ABB8EFD777C6"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKTrailmakingStep","trailType":"","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":true,"shouldTintImages":true,"shouldSpeakCountDown":false,"recorderConfigurations":[],"iconImage":{"imageName":"6C57DF6B-CBDE-4763-906B-82204530AD07"},"auxiliaryImage":{"imageName":"3ED81064-D8E6-4D26-A2F0-9302EFB1058F"},"title":"","image":{"imageName":"3F2A9599-FE48-41D2-9169-ABB8EFD777C6"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"detailText":"","headerTextAlignment": 0,"stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"bodyItems":[],"shouldVibrateOnStart":false,"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKTrailmakingStep","trailType":"","shouldStartTimerAutomatically":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"detailText":"","headerTextAlignment": 0,"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKVerificationStep","iconImage":{"imageName":"A3D51283-8457-474E-83F9-8624BA60C7D5"},"auxiliaryImage":{"imageName":"E9559DA0-9EE9-4365-A75E-5DA1A9A458F3"},"title":"","identifier":"","footnote":"","image":{"imageName":"39D4B5C9-17BA-40B1-8EA2-E78B3BDA896F"},"text":"","verificationViewControllerString":"ORKVerificationStepViewController","imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"detailText":"","headerTextAlignment": 0,"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKVerificationStep","iconImage":{"imageName":"A3D51283-8457-474E-83F9-8624BA60C7D5"},"auxiliaryImage":{"imageName":"E9559DA0-9EE9-4365-A75E-5DA1A9A458F3"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"39D4B5C9-17BA-40B1-8EA2-E78B3BDA896F"},"text":"","verificationViewControllerString":"ORKVerificationStepViewController","imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"accessibilityHint":"","shouldTintImages":true,"templateImageInsets":{"right":1,"top":1,"left":1,"bottom":1},"iconImage":{"imageName":"3EBEBF88-86DD-4500-8B48-B7F61F75C7A6"},"title":"","devicePosition":1,"auxiliaryImage":{"imageName":"7832E6A2-DA40-4CFA-AB16-808717B2CA4E"},"duration":123,"templateImage":{"imageName":"0DCC3994-3FA0-4A05-97AC-A3C82777010B"},"image":{"imageName":"D2B3C2CB-10D5-4C97-B0FF-208C38971A0F"},"detailText":"","headerTextAlignment": 0,"optional":true,"audioMute":false,"useSurveyMode":false,"identifier":"","bodyItems":[],"text":"","accessibilityInstructions":"","_class":"ORKVideoCaptureStep","torchMode":2,"footnote":"","imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"accessibilityHint":"","shouldTintImages":true,"templateImageInsets":{"right":1,"top":1,"left":1,"bottom":1},"iconImage":{"imageName":"3EBEBF88-86DD-4500-8B48-B7F61F75C7A6"},"title":"","devicePosition":1,"auxiliaryImage":{"imageName":"7832E6A2-DA40-4CFA-AB16-808717B2CA4E"},"duration":123,"templateImage":{"imageName":"0DCC3994-3FA0-4A05-97AC-A3C82777010B"},"image":{"imageName":"D2B3C2CB-10D5-4C97-B0FF-208C38971A0F"},"detailText":"","headerTextAlignment": 0,"optional":true,"audioMute":false,"useSurveyMode":false,"identifier":"","bodyItems":[],"text":"","accessibilityInstructions":"","_class":"ORKVideoCaptureStep","torchMode":2,"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"videoURL":"file:\/\/\/usr\/","optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKVideoInstructionStep","auxiliaryImage":{"imageName":"8EB1EFFE-C9DE-48C5-BD63-7B3182834B09"},"iconImage":{"imageName":"3AF26F65-958B-4EFA-974A-184B40D35D7A"},"title":"","identifier":"","footnote":"","image":{"imageName":"7025FEF9-6715-4499-B7C3-1C1AA8DDB3E1"},"text":"","thumbnailTime":0,"detailText":"","headerTextAlignment": 0,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"centerImageVertically":0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"},"bundleAsset":{"_class":"ORKBundleAsset","name":"filename","bundleIdentifier":"com.bundle.identifier","fileExtension":"mp4"}}
|
||||
{"bodyItems":[],"videoURL":"file:\/\/\/usr\/","optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKVideoInstructionStep","auxiliaryImage":{"imageName":"8EB1EFFE-C9DE-48C5-BD63-7B3182834B09"},"iconImage":{"imageName":"3AF26F65-958B-4EFA-974A-184B40D35D7A"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"7025FEF9-6715-4499-B7C3-1C1AA8DDB3E1"},"text":"","thumbnailTime":0,"detailText":"","headerTextAlignment": 0,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"centerImageVertically":0,"useExtendedPadding":0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"},"bundleAsset":{"_class":"ORKBundleAsset","name":"filename","bundleIdentifier":"com.bundle.identifier","fileExtension":"mp4"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKWaitStep","indicatorType":0,"iconImage":{"imageName":"8AB7019D-38A4-4969-8A3B-4132B98A4D43"},"title":"","identifier":"","footnote":"","image":{"imageName":"D9D9BA3C-8AE2-45F2-9439-7AF519EF2BFA"},"auxiliaryImage":{"imageName":"589E582A-6BE4-4956-9895-0C07DE2DE0E4"},"text":"","detailText":"","headerTextAlignment": 0,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKWaitStep","indicatorType":0,"iconImage":{"imageName":"8AB7019D-38A4-4969-8A3B-4132B98A4D43"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"D9D9BA3C-8AE2-45F2-9439-7AF519EF2BFA"},"auxiliaryImage":{"imageName":"589E582A-6BE4-4956-9895-0C07DE2DE0E4"},"text":"","detailText":"","headerTextAlignment": 0,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"footnote":"","shouldContinueOnFinish":false,"recorderConfigurations":[],"shouldSpeakCountDown":false,"shouldTintImages":true,"iconImage":{"imageName":"B2C5CEC9-067F-42C7-ADD5-F6BDCB1AEB72"},"auxiliaryImage":{"imageName":"01708EE8-CC14-408A-AB15-4C9E9806172E"},"title":"","image":{"imageName":"10F66CE1-AA9F-4F9C-B51A-5AEED1B73A27"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"numberOfStepsPerLeg":0,"detailText":"","headerTextAlignment": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"shouldVibrateOnStart":false,"bodyItems":[],"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKWalkingTaskStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
{"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"shouldContinueOnFinish":false,"recorderConfigurations":[],"shouldSpeakCountDown":false,"shouldTintImages":true,"iconImage":{"imageName":"B2C5CEC9-067F-42C7-ADD5-F6BDCB1AEB72"},"auxiliaryImage":{"imageName":"01708EE8-CC14-408A-AB15-4C9E9806172E"},"title":"","image":{"imageName":"10F66CE1-AA9F-4F9C-B51A-5AEED1B73A27"},"shouldPlaySoundOnFinish":false,"shouldPlaySoundOnStart":false,"numberOfStepsPerLeg":0,"detailText":"","headerTextAlignment": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"stepDuration":0,"shouldShowDefaultTimer":false,"shouldVibrateOnFinish":false,"spokenInstruction":"","optional":false,"useSurveyMode":false,"identifier":"","shouldUseNextAsSkipButton":false,"shouldVibrateOnStart":false,"bodyItems":[],"shouldSpeakRemainingTimeAtHalfway":false,"text":"","finishedSpokenInstruction":"","_class":"ORKWalkingTaskStep","shouldStartTimerAutomatically":false,"imageContentMode": 0,"earlyTerminationConfiguration": {"_class": "ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"bodyItems":[],"detailText":"","headerTextAlignment": 0,"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKWebViewStep","iconImage":{"imageName":"369C0323-EB2C-4BD7-8B1F-90030C5A1B8F"},"auxiliaryImage":{"imageName":"C1A70CC9-EC88-4525-A166-5DE6BD2CFA1A"},"title":"","identifier":"","image":{"imageName":"4DAC99C9-1BC9-42EA-95E7-CD746641F78A"},"footnote":"","text":"","html":"","customCSS":"","showSignatureAfterContent":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"detailText":"","headerTextAlignment": 0,"optional":false,"useSurveyMode":false,"shouldTintImages":true,"_class":"ORKWebViewStep","iconImage":{"imageName":"369C0323-EB2C-4BD7-8B1F-90030C5A1B8F"},"auxiliaryImage":{"imageName":"C1A70CC9-EC88-4525-A166-5DE6BD2CFA1A"},"title":"","identifier":"","image":{"imageName":"4DAC99C9-1BC9-42EA-95E7-CD746641F78A"},"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"text":"","html":"","customCSS":"","showSignatureAfterContent":false,"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "optional":true,"useSurveyMode":true,"shouldTintImages":true,"_class":"ORKdBHLToneAudiometryOnboardingStep","auxiliaryImage":{"imageName":"0255CA0B-11EA-4502-926A-07DCA0599AEC"},"iconImage":{"imageName":"B10BDAB3-6380-4F75-A5D3-7E334CD94C7D"},"title":"","identifier":"","footnote":"","image":{"imageName":"E2856DA0-1728-4A16-A468-9A940C0E6F95"},"text":"","formItems":[],"useCardView":true,"imageContentMode": 0,"footerText":"","bodyItemTextAlignment":0,"buildInBodyItems": 0,"cardViewStyle":0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"bodyItems":[],"detailText":"", "headerTextAlignment": 0, "optional":true,"useSurveyMode":true,"shouldTintImages":true,"_class":"ORKdBHLToneAudiometryOnboardingStep","auxiliaryImage":{"imageName":"0255CA0B-11EA-4502-926A-07DCA0599AEC"},"iconImage":{"imageName":"B10BDAB3-6380-4F75-A5D3-7E334CD94C7D"},"title":"","identifier":"","footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"image":{"imageName":"E2856DA0-1728-4A16-A468-9A940C0E6F95"},"text":"","formItems":[],"useCardView":true,"imageContentMode": 0,"footerText":"","bodyItemTextAlignment":0,"buildInBodyItems": 0,"cardViewStyle":0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"postStimulusDelay":1,"spokenInstruction":"","headphoneType":"","shouldStartTimerAutomatically":false,"stepDuration":0,"shouldShowDefaultTimer":true,"optional":false,"detailText":"", "headerTextAlignment": 0, "earPreference":0,"text":"","_class":"ORKdBHLToneAudiometryStep","useSurveyMode":false,"initialdBHLValue":30,"dBHLStepDownSize":10,"dBHLMinimumThreshold":-10,"bodyItems":[],"maxNumberOfTransitionsPerFrequency":15,"shouldVibrateOnFinish":false,"iconImage":{"imageName":"90BF43E2-61B4-493A-A818-55FF314B240D"},"shouldPlaySoundOnStart":false,"image":{"imageName":"A660ED46-8FFE-4AFA-A3AA-AC9E134A20F0"},"auxiliaryImage":{"imageName":"99B355E5-D322-4C26-BA80-5701151B3352"},"shouldContinueOnFinish":false,"identifier":"","shouldSpeakRemainingTimeAtHalfway":false,"footnote":"","dBHLStepUpSize":5,"dBHLStepUpSizeFirstMiss":20,"dBHLStepUpSizeSecondMiss":10,"dBHLStepUpSizeThirdMiss":10,"shouldSpeakCountDown":false,"toneDuration":1,"frequencyList":[],"maxRandomPreStimulusDelay":2,"title":"","finishedSpokenInstruction":"","shouldUseNextAsSkipButton":false,"shouldPlaySoundOnFinish":false,"shouldTintImages":true,"shouldVibrateOnStart":false,"recorderConfigurations":[],"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
{"postStimulusDelay":1,"spokenInstruction":"","headphoneType":"","shouldStartTimerAutomatically":false,"stepDuration":0,"shouldShowDefaultTimer":true,"optional":false,"detailText":"", "headerTextAlignment": 0, "earPreference":0,"text":"","_class":"ORKdBHLToneAudiometryStep","useSurveyMode":false,"initialdBHLValue":30,"dBHLStepDownSize":10,"dBHLMinimumThreshold":-10,"bodyItems":[],"maxNumberOfTransitionsPerFrequency":15,"shouldVibrateOnFinish":false,"iconImage":{"imageName":"90BF43E2-61B4-493A-A818-55FF314B240D"},"shouldPlaySoundOnStart":false,"image":{"imageName":"A660ED46-8FFE-4AFA-A3AA-AC9E134A20F0"},"auxiliaryImage":{"imageName":"99B355E5-D322-4C26-BA80-5701151B3352"},"shouldContinueOnFinish":false,"identifier":"","shouldSpeakRemainingTimeAtHalfway":false,"footnote":"","shouldAutomaticallyAdjustImageTintColor":0,"dBHLStepUpSize":5,"dBHLStepUpSizeFirstMiss":20,"dBHLStepUpSizeSecondMiss":10,"dBHLStepUpSizeThirdMiss":10,"shouldSpeakCountDown":false,"toneDuration":1,"frequencyList":[],"maxRandomPreStimulusDelay":2,"title":"","finishedSpokenInstruction":"","shouldUseNextAsSkipButton":false,"shouldPlaySoundOnFinish":false,"shouldTintImages":true,"shouldVibrateOnStart":false,"recorderConfigurations":[],"imageContentMode": 0,"bodyItemTextAlignment":0,"buildInBodyItems": 0,"useExtendedPadding":0,"earlyTerminationConfiguration":{"_class":"ORKEarlyTerminationConfiguration"}}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// ORKCatalog-Shared.xcconfig
|
||||
//
|
||||
|
||||
ORK_CATALOG_VERSION_NUMBER = 2.2.9
|
||||
ORK_CATALOG_VERSION_NUMBER = 2.2.12
|
||||
|
||||
ORK_CATALOG_BUILD_NUMBER = $(ORK_CATALOG_BUILD_NUMBER_CI_$(CI)) // ORK_CATALOG_BUILD_NUMBER_CI_TRUE or ORK_CATALOG_BUILD_NUMBER_CI_
|
||||
ORK_CATALOG_BUILD_NUMBER_CI_TRUE = $(CI_BUILD_NUMBER) // if CI_BUILD_NUMBER is defined (presumably by CI) just use it
|
||||
@@ -11,7 +11,7 @@ ORK_CATALOG_BUILD_NUMBER_CI_ = $(ORK_CATALOG_BUILD_NUMBER_CI_FALSE)
|
||||
|
||||
ORK_CATALOG_BUNDLE_ID_BASE = com.example.researchkit-samplecode.$(PRODUCT_NAME:rfc1034identifier)
|
||||
|
||||
ORK_CATALOG_BUNDLE_ID = $(ORK_CATALOG_BUNDLE_ID_CI_$(CI)) // ORK_CATALOG_BUNDLE_ID_CI_TRUE or ORK_CATALOG_BUNDLE_ID_CI_
|
||||
ORK_CATALOG_BUNDLE_ID_CI_TRUE = $(CI_BUNDLE_ID)$(ORK_CATALOG_CI_BUNDLE_ID_SUFFIX) // if CI_BUNDLE_ID is defined (presumably by CI) just use it, allow appending an optional suffix
|
||||
ORK_CATALOG_BUNDLE_ID = $(ORK_CATALOG_BUNDLE_ID_CI_$(USE_CI)) // ORK_CATALOG_BUNDLE_ID_CI_TRUE or ORK_CATALOG_BUNDLE_ID_CI_
|
||||
ORK_CATALOG_BUNDLE_ID_CI_TRUE = $(USE_CI_BUNDLE_ID)$(ORK_CATALOG_CI_BUNDLE_ID_SUFFIX) // if CI_BUNDLE_ID is defined (presumably by CI) just use it, allow appending an optional suffix
|
||||
ORK_CATALOG_BUNDLE_ID_CI_FALSE = $(ORK_CATALOG_BUNDLE_ID_BASE) // when not in CI, use the Base bundle ID
|
||||
ORK_CATALOG_BUNDLE_ID_CI_ = $(ORK_CATALOG_BUNDLE_ID_CI_FALSE)
|
||||
|
||||
@@ -94,6 +94,9 @@ func resultTableViewProviderForResult(_ result: ORKResult?, delegate: ResultProv
|
||||
case is ORKScaleQuestionResult:
|
||||
providerType = ScaleQuestionResultTableViewProvider.self
|
||||
|
||||
case is ORKSESQuestionResult:
|
||||
providerType = SESQuestionResultTableViewProvider.self
|
||||
|
||||
case is ORKTextQuestionResult:
|
||||
providerType = TextQuestionResultTableViewProvider.self
|
||||
|
||||
@@ -493,6 +496,20 @@ class NumericQuestionResultTableViewProvider: ResultTableViewProvider {
|
||||
}
|
||||
}
|
||||
|
||||
/// Table view provider specific to an `ORKSESQuestionResult` instance.
|
||||
class SESQuestionResultTableViewProvider: ResultTableViewProvider {
|
||||
// MARK: ResultTableViewProvider
|
||||
|
||||
override func resultRowsForSection(_ section: Int) -> [ResultRow] {
|
||||
let rungQuestionResult = result as! ORKSESQuestionResult
|
||||
|
||||
return super.resultRowsForSection(section) + [
|
||||
// The value returned from the socieoeconomic rung selected.
|
||||
ResultRow(text: "rungPicked", detail: rungQuestionResult.rungPicked)
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/// Table view provider specific to an `ORKScaleQuestionResult` instance.
|
||||
class ScaleQuestionResultTableViewProvider: ResultTableViewProvider {
|
||||
// MARK: ResultTableViewProvider
|
||||
@@ -544,6 +561,7 @@ class TimeOfDayQuestionResultTableViewProvider: ResultTableViewProvider {
|
||||
|
||||
// Format the date components received in the result.
|
||||
let dateComponentsFormatter = DateComponentsFormatter()
|
||||
dateComponentsFormatter.unitsStyle = .full
|
||||
let dateComponentsAnswerText = dateComponentsFormatter.string(from: questionResult.dateComponentsAnswer!)
|
||||
|
||||
return super.resultRowsForSection(section) + [
|
||||
|
||||
@@ -116,14 +116,16 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
case walkBackAndForth
|
||||
case heightQuestion
|
||||
case weightQuestion
|
||||
case healthQuantity
|
||||
case kneeRangeOfMotion
|
||||
case shoulderRangeOfMotion
|
||||
case trailMaking
|
||||
case visualAcuityLandoltC
|
||||
case contrastSensitivityPeakLandoltC
|
||||
case videoInstruction
|
||||
case review
|
||||
case webView
|
||||
|
||||
case tintColor
|
||||
|
||||
class TaskListRowSection {
|
||||
var title: String
|
||||
@@ -155,6 +157,7 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
.date3DayLimitQuestionTask,
|
||||
.heightQuestion,
|
||||
.weightQuestion,
|
||||
.healthQuantity,
|
||||
.imageChoiceQuestion,
|
||||
.locationQuestion,
|
||||
.numericQuestion,
|
||||
@@ -179,7 +182,8 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
.accountCreation,
|
||||
.login,
|
||||
.passcode,
|
||||
.biometricPasscode
|
||||
.biometricPasscode,
|
||||
.review
|
||||
]),
|
||||
TaskListRowSection(title: "Active Tasks", rows:
|
||||
[
|
||||
@@ -213,6 +217,7 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
]),
|
||||
TaskListRowSection(title: "Miscellaneous", rows:
|
||||
[
|
||||
.tintColor,
|
||||
.videoInstruction,
|
||||
.webView
|
||||
])]
|
||||
@@ -256,6 +261,9 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
|
||||
case .weightQuestion:
|
||||
return NSLocalizedString("Weight Question", comment: "")
|
||||
|
||||
case .healthQuantity:
|
||||
return NSLocalizedString("Health Quantity Question", comment: "")
|
||||
|
||||
case .imageChoiceQuestion:
|
||||
return NSLocalizedString("Image Choice Question", comment: "")
|
||||
@@ -308,6 +316,9 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
case .requestPermissions:
|
||||
return NSLocalizedString("Request Permissions Step", comment: "")
|
||||
|
||||
case .review:
|
||||
return NSLocalizedString("Review Step", comment: "")
|
||||
|
||||
case .eligibilityTask:
|
||||
return NSLocalizedString("Eligibility Task Example", comment: "")
|
||||
|
||||
@@ -409,7 +420,10 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
|
||||
case .webView:
|
||||
return NSLocalizedString("Web View", comment: "")
|
||||
|
||||
|
||||
case .tintColor:
|
||||
return NSLocalizedString("Tint Color", comment: "")
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -479,6 +493,11 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
case weightQuestionStep6
|
||||
case weightQuestionStep7
|
||||
|
||||
// Task with an ORKHealthQuantity questions
|
||||
case healthQuantityTask
|
||||
case healthQuantityQuestion1
|
||||
case healthQuantityQuestion2
|
||||
|
||||
// Task with an image choice question.
|
||||
case imageChoiceQuestionTask
|
||||
case imageChoiceQuestionStep1
|
||||
@@ -494,6 +513,11 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
case numericNoUnitQuestionStep
|
||||
case numericDisplayUnitQuestionStep
|
||||
|
||||
// Task with examples of review Steps.
|
||||
case reviewTask
|
||||
case embeddedReviewStep
|
||||
case standAloneReviewStep
|
||||
|
||||
// Task with examples of questions with sliding scales.
|
||||
case scaleQuestionTask
|
||||
case discreteScaleQuestionStep
|
||||
@@ -615,6 +639,11 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
case webViewTask
|
||||
case webViewStep
|
||||
|
||||
// Tint color
|
||||
case tintColorTask
|
||||
case tintColorStep
|
||||
case tintColorQuestion
|
||||
|
||||
}
|
||||
|
||||
// MARK: Properties
|
||||
@@ -655,6 +684,9 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
case .weightQuestion:
|
||||
return weightQuestionTask
|
||||
|
||||
case .healthQuantity:
|
||||
return healthQuantityTypeTask
|
||||
|
||||
case .imageChoiceQuestion:
|
||||
return imageChoiceQuestionTask
|
||||
|
||||
@@ -664,6 +696,9 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
case .numericQuestion:
|
||||
return numericQuestionTask
|
||||
|
||||
case .review:
|
||||
return reviewTask
|
||||
|
||||
case .scaleQuestion:
|
||||
return scaleQuestionTask
|
||||
|
||||
@@ -799,6 +834,9 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
case .contrastSensitivityPeakLandoltC:
|
||||
return contrastSensitivityPeakLandoltC
|
||||
|
||||
case .tintColor:
|
||||
return tintColor
|
||||
|
||||
case .videoInstruction:
|
||||
return videoInstruction
|
||||
|
||||
@@ -1151,7 +1189,7 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
|
||||
step4.text = "HealthKit, height"
|
||||
|
||||
let step4NonOptional = ORKQuestionStep(identifier: String(describing: Identifier.heightQuestionStep4) + "NonOptional", title: NSLocalizedString("Height", comment: ""), question: exampleQuestionText, answer: answerFormat1)
|
||||
let step4NonOptional = ORKQuestionStep(identifier: String(describing: Identifier.heightQuestionStep4) + "NonOptional", title: NSLocalizedString("Height", comment: ""), question: exampleQuestionText, answer: answerFormat4)
|
||||
step4NonOptional.text = "HealthKit, height (Non Optional"
|
||||
step4NonOptional.isOptional = false
|
||||
|
||||
@@ -1235,6 +1273,20 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
return ORKOrderedTask(identifier: String(describing: Identifier.weightQuestionTask), steps: [step1, step1NonOptional, step2, step2NonOptional, step3, step3NonOptional, step4, step4NonOptional, step5, step5NonOptional, step6, step6NonOptional, step7NonOptional, step7])
|
||||
}
|
||||
|
||||
private var healthQuantityTypeTask: ORKTask {
|
||||
let heartRateHealthKitQuantityTypeAnswerFormat = ORKHealthKitQuantityTypeAnswerFormat(quantityType: HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.heartRate)!, unit: nil, style: .decimal)
|
||||
let heartRateQuestion = ORKQuestionStep(identifier: String(describing: Identifier.healthQuantityQuestion1), title: NSLocalizedString("Heart Rate", comment: ""), question: "What is your Heart Rate?", answer: heartRateHealthKitQuantityTypeAnswerFormat)
|
||||
heartRateQuestion.text = "Heart Rate"
|
||||
heartRateQuestion.isOptional = false
|
||||
|
||||
|
||||
let bloodType = HKCharacteristicType.characteristicType(forIdentifier: HKCharacteristicTypeIdentifier.bloodType)!
|
||||
let bloodTypeAnswerFormat = ORKHealthKitCharacteristicTypeAnswerFormat(characteristicType: bloodType)
|
||||
let bloodTypeQuestion = ORKQuestionStep(identifier: String(describing: Identifier.healthQuantityQuestion2), title: NSLocalizedString("Blood Type", comment: ""), question: "What is your Blood Type?", answer: bloodTypeAnswerFormat)
|
||||
|
||||
return ORKOrderedTask(identifier: String(describing: Identifier.healthQuantityTask), steps: [heartRateQuestion, bloodTypeQuestion])
|
||||
}
|
||||
|
||||
/**
|
||||
This task demonstrates a survey question involving picking from a series of
|
||||
image choices. A more realistic applciation of this type of question might be to
|
||||
@@ -1258,7 +1310,7 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
|
||||
questionStep1.text = exampleDetailText
|
||||
|
||||
let answerFormat2 = ORKAnswerFormat.choiceAnswerFormat(with: imageChoces, style: .singleChoice, vertical: true)
|
||||
let answerFormat2 = ORKAnswerFormat.choiceAnswerFormat(with: imageChoces, style: .multipleChoice, vertical: true)
|
||||
|
||||
let questionStep2 = ORKQuestionStep(identifier: String(describing: Identifier.imageChoiceQuestionStep2), title: NSLocalizedString("Image Choice", comment: ""), question: exampleQuestionText, answer: answerFormat2)
|
||||
|
||||
@@ -1280,6 +1332,36 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
return ORKOrderedTask(identifier: String(describing: Identifier.locationQuestionTask), steps: [questionStep])
|
||||
}
|
||||
|
||||
/// This task presents a few different ORKReviewSteps
|
||||
private var reviewTask: ORKTask {
|
||||
let embeddedReviewStep = ORKReviewStep.embeddedReviewStep(withIdentifier: String(describing: Identifier.embeddedReviewStep))
|
||||
embeddedReviewStep.bodyItems = [
|
||||
ORKBodyItem(text: "Review Item #1", detailText: nil, image: nil, learnMoreItem: nil, bodyItemStyle: .bulletPoint),
|
||||
ORKBodyItem(text: "Review Item #2", detailText: nil, image: nil, learnMoreItem: nil, bodyItemStyle: .bulletPoint),
|
||||
ORKBodyItem(text: "Review Item #3", detailText: nil, image: nil, learnMoreItem: nil, bodyItemStyle: .bulletPoint),
|
||||
ORKBodyItem(text: "Review Item #4", detailText: nil, image: nil, learnMoreItem: nil, bodyItemStyle: .bulletPoint)
|
||||
]
|
||||
embeddedReviewStep.title = "Embedded Review Step"
|
||||
|
||||
let standAloneInstructionStep1 = ORKInstructionStep(identifier: "standAloneInstruction1")
|
||||
standAloneInstructionStep1.text = "First Item"
|
||||
standAloneInstructionStep1.detailText = "There is a lot of detail to cover in this Instruction Step"
|
||||
|
||||
let standAloneInstructionStep2 = ORKInstructionStep(identifier: "standAloneInstruction2")
|
||||
standAloneInstructionStep2.text = "Second Item"
|
||||
standAloneInstructionStep2.detailText = "There is a lot of detail to cover in this Instruction Step"
|
||||
|
||||
let standAloneInstructionStep3 = ORKInstructionStep(identifier: "standAloneInstruction3")
|
||||
standAloneInstructionStep3.text = "Third Item"
|
||||
standAloneInstructionStep3.detailText = "There is a lot of detail to cover in this Instruction Step"
|
||||
|
||||
let questionStep = ORKQuestionStep(identifier: "questionStep", title: "Question Step", question: "What is your name?", answer: ORKTextAnswerFormat())
|
||||
|
||||
let standAloneReviewStep = ORKReviewStep.standaloneReviewStep(withIdentifier:String(describing: Identifier.standAloneReviewStep), steps:[standAloneInstructionStep1, standAloneInstructionStep2, standAloneInstructionStep3, questionStep], resultSource: nil)
|
||||
standAloneReviewStep.title = "Standalone Review"
|
||||
return ORKOrderedTask(identifier: String(describing: Identifier.reviewTask), steps: [embeddedReviewStep, standAloneReviewStep])
|
||||
}
|
||||
|
||||
/**
|
||||
This task demonstrates use of numeric questions with and without units.
|
||||
Note that the unit is just a string, prompting the user to enter the value
|
||||
@@ -2060,7 +2142,32 @@ enum TaskListRow: Int, CustomStringConvertible {
|
||||
webViewStep.showSignatureAfterContent = true
|
||||
return ORKOrderedTask(identifier: String(describing: Identifier.webViewTask), steps: [webViewStep])
|
||||
}
|
||||
|
||||
|
||||
private var tintColor: ORKTask {
|
||||
let customStep = ORKFormStep(identifier: String(describing: Identifier.tintColorStep))
|
||||
customStep.formItems = [
|
||||
ORKFormItem(
|
||||
identifier: String(describing: Identifier.tintColorQuestion),
|
||||
text: NSLocalizedString("Select a Tint Color", comment: ""),
|
||||
detailText: NSLocalizedString("The tint color you select will be propagated to the app window after the task completes", comment: ""),
|
||||
learnMoreItem: nil,
|
||||
showsProgress: false,
|
||||
answerFormat: ORKAnswerFormat.choiceAnswerFormat(
|
||||
with: .singleChoice,
|
||||
textChoices: [
|
||||
ORKTextChoice(text: "Green", value: NSString(string: #keyPath(UIColor.green))),
|
||||
ORKTextChoice(text: "Red", value: NSString(string: #keyPath(UIColor.red))),
|
||||
ORKTextChoice(text: "Yellow", value: NSString(string: #keyPath(UIColor.yellow))),
|
||||
ORKTextChoice(text: "Blue", value: NSString(string: #keyPath(UIColor.blue))),
|
||||
]
|
||||
),
|
||||
tagText: nil,
|
||||
optional: true
|
||||
)
|
||||
]
|
||||
return ORKOrderedTask(identifier: String(describing: Identifier.tintColorTask), steps: [customStep])
|
||||
}
|
||||
|
||||
// MARK: `ORKTask` Reused Text Convenience
|
||||
|
||||
private var exampleDescription: String {
|
||||
|
||||
@@ -169,6 +169,12 @@ class TaskListViewController: UITableViewController, ORKTaskViewControllerDelega
|
||||
case .completed, .earlyTermination, .failed:
|
||||
// For any other reason, we also reset restoration data
|
||||
resetRestorationDataFor(taskViewController);
|
||||
|
||||
// For testing tintColor propagation: specifically for the tintColor task
|
||||
if taskViewController.result.identifier == String(describing: TaskListRow.Identifier.tintColorTask) {
|
||||
updateForTintColorTaskResult(taskViewController.result)
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -253,4 +259,26 @@ class TaskListViewController: UITableViewController, ORKTaskViewControllerDelega
|
||||
restorationDataByTaskID[taskID] = nil
|
||||
}
|
||||
|
||||
// MARK: Helpers
|
||||
|
||||
func updateForTintColorTaskResult(_ taskResult: ORKTaskResult) {
|
||||
let stepIdentifier = String(describing: TaskListRow.Identifier.tintColorStep)
|
||||
let stepResult = taskResult.stepResult(forStepIdentifier: stepIdentifier)
|
||||
|
||||
let questionResultIdentifier = String(describing: TaskListRow.Identifier.tintColorQuestion)
|
||||
let result = stepResult?.result(forIdentifier: questionResultIdentifier)
|
||||
guard let questionResult = result as? ORKChoiceQuestionResult else {
|
||||
fatalError("Expected tintColor task result to have a result of type ORKChoiceQuestionResult for identifier \(questionResultIdentifier)")
|
||||
}
|
||||
guard
|
||||
let colorName = questionResult.choiceAnswers?.first as? String,
|
||||
let color = UIColor.value(forKey: colorName) as? UIColor
|
||||
else {
|
||||
fatalError("Couldn't create a color from question result \(questionResult)")
|
||||
}
|
||||
|
||||
// Finally, set the tintColor
|
||||
self.view.window?.tintColor = color
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user