Skip to content
This repository was archived by the owner on Dec 22, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 63 additions & 1 deletion Assignment Two/RKTaskSamples.swift
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,68 @@ struct RKTaskSamples {
Add steps to the array above to create a survey!
*/

return ORKOrderedTask(identifier: "SurveyTask-Assessment", steps: steps)
let booleanAnswer = ORKBooleanAnswerFormat(yesString: "YES!", noString: "Not now")
let booleanStep = ORKQuestionStep(identifier: "AreYouReady-Boolean", title: "Before we get started...", question: "Are you ready to start the test?", answer: booleanAnswer)

steps += [booleanStep]

let dateAnswerFormat = ORKDateAnswerFormat(style: .date)
let numberAnswerFormat = ORKNumericAnswerFormat(style: .integer, unit: nil, minimum: 0 as NSNumber, maximum: 100 as NSNumber)

let ageFormItem = ORKFormItem(identifier: "RegistrationForm-Age", text: "How old are you?", answerFormat: numberAnswerFormat, optional: true)
let dateFormItem = ORKFormItem(identifier: "RegistrationForm-DateQuestion", text: "When did you have surgery?", answerFormat: dateAnswerFormat)

let formStep = ORKFormStep(identifier: "RegistrationForm", title: "About you", text: "Please take a moment to answer some (very) quick questions!")
formStep.formItems = [dateFormItem, ageFormItem]
steps += [formStep]

let summaryStep = ORKCompletionStep(identifier: "SummaryStep")
summaryStep.title = "Thank you."
summaryStep.text = "All done!"
steps += [summaryStep]

let task = ORKNavigableOrderedTask(identifier: "SurveyTask-Assessment", steps: steps)

let resultBooleanSelector = ORKResultSelector(resultIdentifier: booleanStep.identifier)
let predicate = ORKResultPredicate.predicateForBooleanQuestionResult(with: resultBooleanSelector, expectedAnswer: false)
let navigableRule = ORKPredicateStepNavigationRule(resultPredicatesAndDestinationStepIdentifiers: [(predicate, summaryStep.identifier)])
task.setNavigationRule(navigableRule, forTriggerStepIdentifier: booleanStep.identifier)

return task
}()

/**
Sample task template!
*/
static let sampleTappingTask: ORKOrderedTask = {
var steps = [ORKStep]()

/*
CS342 -- ASSIGNMENT 2
Add steps to the array above to create a survey!
*/

let booleanAnswer = ORKBooleanAnswerFormat(yesString: "YES!", noString: "Not now")
let booleanStep = ORKQuestionStep(identifier: "AreYouReady-Boolean", title: "Before we get started...", question: "Are you ready to start the test?", answer: booleanAnswer)

steps += [booleanStep]

// add an active task here
let tappingTask = ORKOrderedTask.twoFingerTappingIntervalTask(withIdentifier: "TappingTask", intendedUseDescription: "Finger tapping is a universal way to communicate.", duration: 5, handOptions: .right, options: ORKPredefinedTaskOption())
steps += tappingTask.steps

let summaryStep = ORKCompletionStep(identifier: "SummaryStep")
summaryStep.title = "Thank you."
summaryStep.text = "All done!"
steps += [summaryStep]

let task = ORKNavigableOrderedTask(identifier: "SurveyTappingTask-Assessment", steps: steps)

let resultBooleanSelector = ORKResultSelector(resultIdentifier: booleanStep.identifier)
let predicate = ORKResultPredicate.predicateForBooleanQuestionResult(with: resultBooleanSelector, expectedAnswer: false)
let navigableRule = ORKPredicateStepNavigationRule(resultPredicatesAndDestinationStepIdentifiers: [(predicate, summaryStep.identifier)])
task.setNavigationRule(navigableRule, forTriggerStepIdentifier: booleanStep.identifier)

return task
}()
}
7 changes: 7 additions & 0 deletions Assignment Two/Views/SurveyView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,17 @@ struct SurveyView: View {
*/

// surveyOptional = /* my ORKOrderedTask */
surveyOptional = RKTaskSamples.sampleSurveyTask
}) {
RoundedTextView("Start Survey", backgroundColor: .red)
}

Button(action: {
surveyOptional = RKTaskSamples.sampleTappingTask
}) {
RoundedTextView("Start Tapping!", backgroundColor: .red)
}

Spacer()
}
.frame(maxWidth: .infinity)
Expand Down