Migrated FRPPhotoViewModel to RVM.

This commit is contained in:
Ash Furrow
2013-10-25 19:16:54 -04:00
parent 346197710f
commit 979fdb79c0
4 changed files with 16 additions and 41 deletions

View File

@@ -56,7 +56,7 @@
@strongify(self);
FRPPhotoViewController *photoViewController = self.pageViewController.viewControllers.firstObject;
FRPPhotoModel *photoModel = photoViewController.viewModel.photoModel;
FRPPhotoModel *photoModel = photoViewController.viewModel.model;
FRPPhotoDetailViewModel *viewModel = [[FRPPhotoDetailViewModel alloc] initWithPhotoModel:photoModel];
@@ -85,7 +85,7 @@
-(FRPPhotoViewController *)photoViewControllerForIndex:(NSInteger)index {
FRPPhotoModel *photoModel = [self.viewModel photoModelAtIndex:index];
if (photoModel) {
FRPPhotoViewModel *photoViewModel = [[FRPPhotoViewModel alloc] initWithPhotoModel:photoModel];
FRPPhotoViewModel *photoViewModel = [[FRPPhotoViewModel alloc] initWithModel:photoModel];
FRPPhotoViewController *photoViewController = [[FRPPhotoViewController alloc] initWithViewModel:photoViewModel index:index];
return photoViewController;
}

View File

@@ -52,22 +52,8 @@
[self.view addSubview:imageView];
self.imageView = imageView;
@weakify(self);
[[self rac_signalForSelector:@selector(viewDidAppear:)] subscribeNext:^(id x) {
@strongify(self);
if (self.presentedViewController == nil) {
[SVProgressHUD show];
[self.viewModel.loadPhotosFromNetworkCommand execute:nil];
}
}];
[self.viewModel.loadPhotosFromNetworkCommand.executionSignals subscribeNext:^(id x) {
[x subscribeCompleted:^{
[SVProgressHUD dismiss];
}];
}];
[self.viewModel.loadPhotosFromNetworkCommand.errors subscribeNext:^(id x) {
[SVProgressHUD showErrorWithStatus:@"Error"];
[self.viewModel.didBecomeActiveSignal subscribeNext:^(id x) {
[SVProgressHUD dismiss];
}];
}

View File

@@ -10,12 +10,10 @@
@class FRPPhotoModel;
@interface FRPPhotoViewModel : NSObject
@interface FRPPhotoViewModel : RVMViewModel
-(instancetype)initWithPhotoModel:(FRPPhotoModel *)photoModel;
@property (nonatomic, readonly) FRPPhotoModel *model;
@property (nonatomic, readonly) FRPPhotoModel *photoModel;
@property (nonatomic, readonly) RACCommand *loadPhotosFromNetworkCommand;
@property (nonatomic, readonly) RACSignal *photoImageSignal;
-(NSString *)photoName;

View File

@@ -14,8 +14,6 @@
@interface FRPPhotoViewModel ()
@property (nonatomic, strong) RACCommand *loadPhotosFromNetworkCommand;
@property (nonatomic, strong) FRPPhotoModel *photoModel;
@property (nonatomic, strong) RACSignal *photoImageSignal;
@end
@@ -23,27 +21,20 @@
@implementation FRPPhotoViewModel
-(instancetype)initWithPhotoModel:(FRPPhotoModel *)photoModel {
self = [self init];
self = [self initWithModel:photoModel];
if (!self) return nil;
self.photoModel = photoModel;
@weakify(self);
self.loadPhotosFromNetworkCommand = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(id input) {
return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
@strongify(self);
// Fetch data
[[FRPPhotoImporter fetchPhotoDetails:self.photoModel] subscribeError:^(NSError *error) {
[subscriber sendError:nil];
} completed:^{
[subscriber sendCompleted];
}];
return nil;
[self.didBecomeActiveSignal subscribeNext:^(id x) {
@strongify(self);
[[FRPPhotoImporter fetchPhotoDetails:self.model] subscribeError:^(NSError *error) {
NSLog(@"Could not fetch photo details: %@", error);
} completed:^{
NSLog(@"Fetched photo details.");
}];
}];
self.photoImageSignal = [RACObserve(self.photoModel, fullsizedData) map:^id(id value) {
self.photoImageSignal = [RACObserve(self.model, fullsizedData) map:^id(id value) {
return [UIImage imageWithData:value];
}];
@@ -51,7 +42,7 @@
}
-(NSString *)photoName {
return self.photoModel.photoName;
return self.model.photoName;
}
@end