rt300@29: // rt300@29: // TimedSessionController.m rt300@29: // sonicZoom rt300@29: // rt300@29: // Created by Robert Tubb on 18/02/2013. rt300@29: // rt300@29: // rt300@29: #import "testApp.h" rt300@29: #import "TimedSessionController.h" rt300@29: @interface TimedSessionController() rt300@29: // private stuff rt300@29: @end rt300@29: rt300@29: @implementation TimedSessionController rt300@29: rt300@29: int orders[6][3] = {{0,1,2},{0,2,1},{1,0,2},{1,2,0},{2,0,1},{2,1,0}}; rt300@29: int theOrder; rt300@29: int scount; rt300@29: rt300@29: NSArray *alertMessages = [NSArray arrayWithObjects: rt300@33: @"Now try the sliders only.", rt300@33: @"Now try the sliders and the Zoomer together.", rt300@33: @"Now try the zoomer only.", rt300@33: @"Now please take the questionnaire.",nil]; rt300@29: rt300@29: // nicer if it was initWithAppRef ? rt300@29: - (void)setAppRef:(id)theOFApp{ rt300@29: self.theOFAppRef = theOFApp; rt300@29: theOrder = arc4random() % 6; rt300@29: scount = 0; rt300@29: } rt300@29: -(void)startTimer{ rt300@29: // SHOW FIRST PROMPT rt300@29: NSString *themessage; rt300@29: themessage = [alertMessages objectAtIndex:orders[theOrder][0]]; rt300@29: UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Thanks!" rt300@33: message:[themessage stringByAppendingString:@" Press play to start sound."] rt300@29: delegate:self rt300@29: cancelButtonTitle:@"Continue" rt300@29: otherButtonTitles:nil]; rt300@29: alert.alertViewStyle = UIAlertViewStyleDefault; rt300@29: [alert show]; rt300@29: [alert release]; rt300@29: rt300@29: } rt300@29: -(void)resetTime:(int)newTime{ rt300@29: rt300@29: } rt300@29: rt300@29: // ALERT rt300@29: rt300@29: rt300@29: -(void)showNextPrompt{ rt300@29: NSString *themessage; rt300@29: scount++; rt300@30: ((testApp *)self.theOFAppRef)->moveVel = TwoVector(); // stops movement rt300@29: if(scount < 3){ rt300@29: themessage = [alertMessages objectAtIndex:orders[theOrder][scount] ]; rt300@29: }else{ rt300@29: themessage = [alertMessages objectAtIndex:3 ]; rt300@29: } rt300@31: NSString * topmsg; rt300@31: if(scount == 0){ rt300@31: topmsg = @"OK"; rt300@31: }else{ rt300@31: topmsg = @"Thanks!"; rt300@31: } rt300@31: UIAlertView * alert = [[UIAlertView alloc] initWithTitle:topmsg rt300@29: message:themessage rt300@29: delegate:self rt300@29: cancelButtonTitle:@"Continue" rt300@29: otherButtonTitles:nil]; rt300@29: alert.alertViewStyle = UIAlertViewStyleDefault; rt300@29: [alert show]; rt300@29: [alert release]; rt300@31: rt300@29: rt300@29: } rt300@29: rt300@29: -(void)cancelTimers{ rt300@29: scount = 0; rt300@29: if(self.theCurrentTimer){ rt300@29: [self.theCurrentTimer invalidate]; rt300@29: self.theCurrentTimer = nil; rt300@29: } rt300@29: } rt300@29: - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ rt300@29: rt300@29: NSLog(@"OK TO NEXT VIEW"); rt300@29: rt300@29: if(scount < 3){ rt300@29: NSInteger next = orders[theOrder][scount]; rt300@30: rt300@29: ((testApp *)self.theOFAppRef)->interfaceSelected(next); rt300@29: rt300@29: self.theCurrentTimer = [NSTimer scheduledTimerWithTimeInterval:SECONDS_PER_INTERFACE target:self selector:@selector(showNextPrompt) userInfo:nil repeats:NO]; rt300@29: rt300@29: }else{ rt300@29: ((testApp *)self.theOFAppRef)->showQuestionnaire(); rt300@29: scount = 0; // incase we try again rt300@29: self.theCurrentTimer = nil; rt300@29: } rt300@29: rt300@29: } rt300@29: rt300@29: rt300@29: @end