From b127aeb19185a9153367b51c973eb51eb88a84ea Mon Sep 17 00:00:00 2001 From: Ash Furrow Date: Sun, 20 Oct 2013 16:04:11 -0400 Subject: [PATCH] Presents login form when voting and not logged in. --- FRP/FRPFullSizePhotoViewController.m | 4 +++- FRP/FRPGalleryViewController.m | 4 +++- FRP/FRPLoginViewController.m | 4 +++- FRP/FRPPhotoDetailViewController.m | 34 ++++++++++++++++++++++++++-- FRP/FRPPhotoModel.h | 1 + 5 files changed, 42 insertions(+), 5 deletions(-) diff --git a/FRP/FRPFullSizePhotoViewController.m b/FRP/FRPFullSizePhotoViewController.m index 68cc525..4bb708c 100644 --- a/FRP/FRPFullSizePhotoViewController.m +++ b/FRP/FRPFullSizePhotoViewController.m @@ -62,7 +62,9 @@ FRPPhotoDetailViewController *viewController = [[FRPPhotoDetailViewController alloc] initWithPhotoModel:[self.pageViewController.viewControllers.firstObject photoModel]]; UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; - [self presentViewController:navigationController animated:YES completion:nil]; + [self presentViewController:navigationController animated:YES completion:^{ + [subscriber sendCompleted]; + }]; return nil; }]; diff --git a/FRP/FRPGalleryViewController.m b/FRP/FRPGalleryViewController.m index 237ef11..7a88b87 100644 --- a/FRP/FRPGalleryViewController.m +++ b/FRP/FRPGalleryViewController.m @@ -80,7 +80,9 @@ static NSString *CellIdentifier = @"Cell"; FRPLoginViewController *viewController = [[FRPLoginViewController alloc] initWithNibName:@"FRPLoginViewController" bundle:nil]; UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; - [self presentViewController:navigationController animated:YES completion:nil]; + [self presentViewController:navigationController animated:YES completion:^{ + [subscriber sendCompleted]; + }]; return nil; }]; diff --git a/FRP/FRPLoginViewController.m b/FRP/FRPLoginViewController.m index 2acaa53..c8be1fb 100644 --- a/FRP/FRPLoginViewController.m +++ b/FRP/FRPLoginViewController.m @@ -56,7 +56,9 @@ return [RACSignal createSignal:^RACDisposable *(id subscriber) { @strongify(self); - [self.presentingViewController dismissViewControllerAnimated:YES completion:nil]; + [self.presentingViewController dismissViewControllerAnimated:YES completion:^{ + [subscriber sendCompleted]; + }]; return nil; }]; diff --git a/FRP/FRPPhotoDetailViewController.m b/FRP/FRPPhotoDetailViewController.m index 16210ee..12d0cf0 100644 --- a/FRP/FRPPhotoDetailViewController.m +++ b/FRP/FRPPhotoDetailViewController.m @@ -6,7 +6,9 @@ // Copyright (c) 2013 Ash Furrow. All rights reserved. // +// View Controllers #import "FRPPhotoDetailViewController.h" +#import "FRPLoginViewController.h" // Model #import "FRPPhotoModel.h" @@ -42,7 +44,9 @@ self.navigationItem.rightBarButtonItem.rac_command = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(id input) { return [RACSignal createSignal:^RACDisposable *(id subscriber) { @strongify(self); - [self.presentingViewController dismissViewControllerAnimated:YES completion:nil]; + [self.presentingViewController dismissViewControllerAnimated:YES completion:^{ + [subscriber sendCompleted]; + }]; return nil; }]; @@ -77,8 +81,34 @@ UIButton *voteButton = [UIButton buttonWithType:UIButtonTypeCustom]; voteButton.frame = CGRectMake(20, CGRectGetHeight(self.view.bounds) - 44 - 20, CGRectGetWidth(self.view.bounds) - 40, 44); - [voteButton setTitle:@"Vote" forState:UIControlStateNormal]; voteButton.autoresizingMask = UIViewAutoresizingFlexibleTopMargin; + [RACObserve(self.photoModel, isVotedFor) subscribeNext:^(id x) { + if ([x boolValue]) { + [voteButton setTitle:@"Voted For!" forState:UIControlStateNormal]; + } else { + [voteButton setTitle:@"Vote" forState:UIControlStateNormal]; + } + }]; + voteButton.rac_command = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(id input) { + return [RACSignal createSignal:^RACDisposable *(id subscriber) { + if (AppDelegate.apiHelper.authMode == PXAPIHelperModeNoAuth) { + // Not logged in + + @strongify(self); + FRPLoginViewController *viewController = [[FRPLoginViewController alloc] initWithNibName:@"FRPLoginViewController" bundle:nil]; + UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; + + [self presentViewController:navigationController animated:YES completion:^{ + [subscriber sendCompleted]; + }]; + + return nil; + } else { + + return nil; + } + }]; + }]; [self.view addSubview:voteButton]; } @end diff --git a/FRP/FRPPhotoModel.h b/FRP/FRPPhotoModel.h index b1e8ee8..92fb7dd 100644 --- a/FRP/FRPPhotoModel.h +++ b/FRP/FRPPhotoModel.h @@ -18,5 +18,6 @@ @property (nonatomic, strong) NSData *thumbnailData; @property (nonatomic, strong) NSString *fullsizedURL; @property (nonatomic, strong) NSData *fullsizedData; +@property (nonatomic, assign, getter = isVotedFor) BOOL votedFor; @end