8 #import <MobileCoreServices/MobileCoreServices.h> 89 self.title =
@"Nutrition";
110 [
menuButton addTarget:self action:@selector(goToMenuScreen) forControlEvents:UIControlEventTouchUpInside];
111 [
snapMealButton addTarget:self action:@selector(goToSnapMealScreen) forControlEvents:UIControlEventTouchUpInside];
112 [
timelineButton addTarget:self action:@selector(goToTimelineScreen) forControlEvents:UIControlEventTouchUpInside];
113 [
editorButton addTarget:self action:@selector(goToEditorScreen) forControlEvents:UIControlEventTouchUpInside];
114 [
healthkitButton addTarget:self action:@selector(toggleAppleHealthKit) forControlEvents:UIControlEventTouchUpInside];
115 [
self.view addSubview:menuButton];
116 [
self.view addSubview:snapMealButton];
117 [
self.view addSubview:timelineButton];
118 [
self.view addSubview:editorButton];
119 [
self.view addSubview:healthkitButton];
123 [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
124 [[NSNotificationCenter defaultCenter] addObserver:self
125 selector:@selector(deviceOrientationDidChange:)
126 name: UIDeviceOrientationDidChangeNotification
135 - (void) viewDidAppear:(BOOL)animated
146 - (void) viewWillDisappear:(BOOL)animated
155 - (void)deviceOrientationDidChange:(NSNotification *)notification {
160 #pragma mark - ZOrientProtocol 163 UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
166 case UIDeviceOrientationPortrait:
167 case UIDeviceOrientationFaceUp:
173 case UIDeviceOrientationLandscapeLeft:
174 case UIDeviceOrientationLandscapeRight:
188 UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
191 case UIDeviceOrientationPortrait:
192 case UIDeviceOrientationFaceUp:
198 case UIDeviceOrientationLandscapeLeft:
199 case UIDeviceOrientationLandscapeRight:
215 CGSize viewSize =
self.view.frame.size;
219 [
self.view addSubview:backgrdImageView];
225 CGSize viewSize =
self.view.frame.size;
229 [
self.view addSubview:backgrdImageView];
237 [
menuButton setFrame:menuButtonFramePortrait];
243 CGSize viewSize =
self.view.frame.size;
251 [
menuButton setFrame:menuButtonFrameLandscape];
257 CGSize viewSize =
self.view.frame.size;
266 CGRect totalFrame =
self.view.frame;
267 float topButtonTop = totalFrame.size.height * 0.40;
268 float leftMargin = totalFrame.size.width * 0.04;
269 float buttonWidth = totalFrame.size.width * 0.72;
270 float buttonHeight = 70;
271 float buttonInterval = 8.0;
273 float buttonTop = topButtonTop;
278 buttonTop += (buttonHeight + buttonInterval);
283 buttonTop += (buttonHeight + buttonInterval);
288 buttonTop += (buttonHeight + buttonInterval);
293 buttonTop += (buttonHeight + buttonInterval);
301 CGRect totalFrame =
self.view.frame;
302 float buttonTop = totalFrame.size.height * 0.15 ;
303 float leftButtonLeft = totalFrame.size.width * 0.04;
304 float buttonWidth = 66;
305 float buttonHeight = 70;
306 float buttonInterval = 8.0;
308 float buttonLeft = leftButtonLeft;
313 buttonLeft += (buttonWidth + buttonInterval);
318 buttonLeft += (buttonWidth + buttonInterval);
323 buttonLeft += (buttonWidth + buttonInterval);
328 buttonLeft += (buttonWidth + buttonInterval);
337 UIImage *pomegraniteSeedsImage = [UIImage imageNamed:@"pomegraniteSeedWhtCtr120.png"];
339 CGRect zeroButtonFrame = CGRectMake(100, 100, 100, 100);
343 UIImage *menuButtonImage = [UIImage imageNamed:@"menuIcon60.png"];
344 [
menuButton setImage:menuButtonImage forState:UIControlStateNormal];
345 [
menuButton setBackgroundImage:pomegraniteSeedsImage forState:UIControlStateNormal];
346 [
menuButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
347 [
menuButton setTitleShadowColor:[UIColor blackColor] forState:UIControlStateNormal];
352 UIImage *snapMealButtonImage = [UIImage imageNamed:@"cameraIcon60.png"];
353 [
snapMealButton setImage:snapMealButtonImage forState:UIControlStateNormal];
354 [
snapMealButton setBackgroundImage:pomegraniteSeedsImage forState:UIControlStateNormal];
355 [
snapMealButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
356 [
snapMealButton setTitleShadowColor:[UIColor blackColor] forState:UIControlStateNormal];
360 UIImage *timelineButtonImage = [UIImage imageNamed:@"calendarIcon60.png"];
361 [
timelineButton setImage:timelineButtonImage forState:UIControlStateNormal];
362 [
timelineButton setBackgroundImage:pomegraniteSeedsImage forState:UIControlStateNormal];
363 [
timelineButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
364 [
timelineButton setTitleShadowColor:[UIColor blackColor] forState:UIControlStateNormal];
368 UIImage *editorButtonImage = [UIImage imageNamed:@"kitchenIcon60.png"];
369 [
editorButton setImage:editorButtonImage forState:UIControlStateNormal];
370 [
editorButton setBackgroundImage:pomegraniteSeedsImage forState:UIControlStateNormal];
371 [
editorButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
372 [
editorButton setTitleShadowColor:[UIColor blackColor] forState:UIControlStateNormal];
375 UIFont *healthKitButtonFont = [UIFont fontWithName:@"Georgia-Bold" size:24.0];
377 UIImage *healthkitButtonImage = [UIImage imageNamed:@"heartIcon60.png"];
378 [
healthkitButton setImage:healthkitButtonImage forState:UIControlStateNormal];
379 [
healthkitButton setBackgroundImage:pomegraniteSeedsImage forState:UIControlStateNormal];
380 [
healthkitButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
381 [
healthkitButton setTitleShadowColor:[UIColor blackColor] forState:UIControlStateNormal];
408 #pragma mark - Z5GoogleLoginListener 415 self.navigationItem.rightBarButtonItem = nil;
422 UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Logout"
423 style:UIBarButtonItemStylePlain
425 action:@selector(logOutGoogle)];
426 self.navigationItem.rightBarButtonItem = anotherButton;
427 self.navigationItem.rightBarButtonItem.enabled = YES;
435 if (0 == [[localData todaysMenuItems] count]) {
437 [
self.navigationController pushViewController:vc animated:YES];
440 [
self.navigationController pushViewController:menuPostVC animated:YES];
446 usingDelegate: (id <UINavigationControllerDelegate, UIImagePickerControllerDelegate>) self];
449 NSLog(
@"NutritionRoot.goToTimelineScreen");
451 [[
self navigationController] pushViewController:vc2 animated:YES];
456 NSLog(
@"NutritionRoot.goToOriginateScreen");
458 [[
self navigationController] pushViewController:vc3 animated:YES];
461 NSLog(
@"NutritionRoot.goToEditorScreen");
463 [[
self navigationController] pushViewController:vc5 animated:YES];
466 NSLog(
@"NutritionRoot.goToHealthKitScreen");
468 [[
self navigationController] pushViewController:vc3 animated:YES];
473 NSLog(
@"ZCMNutritionRootViewController.reviewComplete");
479 Boolean updatedStatus = ![usingHealthKit boolValue];
487 #pragma mark - UIImagePickerControllerDelegate 489 - (void)imagePickerController:(UIImagePickerController *)picker
490 didFinishPickingMediaWithInfo:(NSDictionary<NSString *,
id> *)info
495 NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
496 UIImage *originalImage, *editedImage, *imageToSave;
499 if (CFStringCompare ((CFStringRef) mediaType, kUTTypeImage, 0)
500 == kCFCompareEqualTo) {
502 editedImage = (UIImage *) [info objectForKey:
503 UIImagePickerControllerEditedImage];
504 originalImage = (UIImage *) [info objectForKey:
505 UIImagePickerControllerOriginalImage];
508 imageToSave = editedImage;
510 imageToSave = originalImage;
522 NSDate *nowDate = [NSDate dateWithTimeIntervalSinceNow:0];
524 Meal *snapMeal = [snapmeals lastObject];
525 snapMeal.
photo = UIImagePNGRepresentation(imageToSave);
528 [mealSnapReview setFocusImage:imageToSave];
529 [mealSnapReview setFocusMeal:snapMeal];
530 [mealSnapReview setMealDelegate:self];
531 [
self.navigationController pushViewController:mealSnapReview animated:YES];
535 if (CFStringCompare ((CFStringRef) mediaType, kUTTypeMovie, 0)
536 == kCFCompareEqualTo) {
538 NSString *moviePath = [[info objectForKey:
539 UIImagePickerControllerMediaURL] path];
541 if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (moviePath)) {
542 UISaveVideoAtPathToSavedPhotosAlbum (
543 moviePath, nil, nil, nil);
547 [picker dismissViewControllerAnimated:YES completion:nil];
550 - (void) returnFromEntryReviewWithInfo:(UIImage *)imageToSave withCaption:(NSString *)caption
554 NSDate *nowDate = [NSDate dateWithTimeIntervalSinceNow:0];
556 Meal *snapMeal = [snapMealArr lastObject];
557 snapMeal.
photo = UIImageJPEGRepresentation(imageToSave, 0.90);
560 - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
562 NSLog(
@"CameraSnap.imagePickerControllerDidCancel");
563 [picker dismissViewControllerAnimated:YES completion:nil];
567 [
super didReceiveMemoryWarning];
CGRect snapMealButtonFramePortrait
CGRect healthkitButtonFrameLandscape
void addLoginListener:(id< Z5GoogleLoginListener > ear)
void goToHealthKitScreen()
void toggleAppleHealthKit()
NSString * rootLandscapeBackgroundName
UIButton * snapMealButton
UIButton * timelineButton
CGRect timelineButtonFrameLandscape
instancetype sharedInstance()
UIButton * healthkitButton
CGRect menuButtonFrameLandscape
CGRect healthkitButtonFramePortrait
void viewDidAppearLandscape()
void goToTimelineScreen()
NSString * rootPortraitBackgroundName
void logTodaysMenu:(NSString *caption)
UIImageView * backgrdImageView
CGRect editorButtonFramePortrait
NSMutableArray * createTodaysMenuFromUserDefaults()
void goToOriginateScreen()
UIImage * imageNamed:sizedToPortrait:(NSString *imageName, [sizedToPortrait] CGSize imageSize)
CGRect snapMealButtonFrameLandscape
void viewDidAppearPortrait()
UIImage * imageNamed:sizedToLandscape:(NSString *imageName, [sizedToLandscape] CGSize imageSize)
void viewDidLoadLandscape()
void goToSnapMealScreen()
NSArray< Meal * > * findOrCreateMealWithDate:(NSDate *findDate)
Singleton interface to both core and remote data sources.
UIButton * makeGradientButton:withFrame:andFont:(NSString *caption, [withFrame] CGRect buttonFrame, [andFont] UIFont *buttonFont)
void positionFramesLandscape()
void positionFramesPortrait()
void viewDidLoadPortrait()
void didReceiveMemoryWarning()
CGRect timelineButtonFramePortrait
BOOL startCameraControllerFromViewController:usingDelegate:(UIViewController *controller, [usingDelegate] id< UINavigationControllerDelegate, UIImagePickerControllerDelegate > delegate)
CGRect editorButtonFrameLandscape
CGRect menuButtonFramePortrait