Skip to content

Commit 9b53f2f

Browse files
committed
Perfect Trending logic
Former-commit-id: 90949a0
1 parent a338ace commit 9b53f2f

File tree

2 files changed

+22
-13
lines changed

2 files changed

+22
-13
lines changed

MVVMReactiveCocoa/ViewModel/MRCTrendingSettingsViewModel.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ - (void)initialize {
2323
[super initialize];
2424

2525
self.title = @"Options";
26+
self.shouldRequestRemoteDataOnViewDidLoad = NO;
2627

2728
NSArray *sinces = @[
2829
@"Today",

MVVMReactiveCocoa/ViewModel/MRCTrendingViewModel.m

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,20 @@
88

99
#import "MRCTrendingViewModel.h"
1010

11+
@interface MRCTrendingViewModel ()
12+
13+
@property (nonatomic, strong) RACSignal *optionsSignal;
14+
15+
@end
16+
1117
@implementation MRCTrendingViewModel
1218

1319
- (void)initialize {
1420
[super initialize];
1521

22+
self.shouldRequestRemoteDataOnViewDidLoad = NO;
23+
self.requestRemoteDataCommand.allowsConcurrentExecution = YES;
24+
1625
NSString *since = [[NSUserDefaults standardUserDefaults] stringForKey:@"since"];
1726
NSString *language = [[NSUserDefaults standardUserDefaults] stringForKey:@"language"];
1827

@@ -24,17 +33,15 @@ - (void)initialize {
2433
RAC(self, title) = RACObserve(self, language);
2534
RAC(self, subtitle) = RACObserve(self, since);
2635

36+
self.optionsSignal = [RACSignal combineLatest:@[ RACObserve(self, since).distinctUntilChanged,
37+
RACObserve(self, language).distinctUntilChanged, ]];
38+
2739
@weakify(self)
28-
[[[RACSignal
29-
combineLatest:@[
30-
RACObserve(self, since).distinctUntilChanged,
31-
RACObserve(self, language).distinctUntilChanged
32-
]]
33-
skip:1]
34-
subscribeNext:^(id x) {
35-
@strongify(self)
36-
[self.requestRemoteDataCommand execute:nil];
37-
}];
40+
[self.optionsSignal subscribeNext:^(id x) {
41+
@strongify(self)
42+
self.dataSource = nil;
43+
[self.requestRemoteDataCommand execute:nil];
44+
}];
3845
}
3946

4047
- (MRCReposViewModelType)type {
@@ -60,9 +67,10 @@ - (id)fetchLocalData {
6067
}
6168

6269
- (RACSignal *)requestRemoteDataSignalWithPage:(NSUInteger)page {
63-
return [[self.services
64-
repositoryService]
65-
requestTrendingRepositoriesSince:self.since language:self.language];
70+
return [[[self.services
71+
repositoryService]
72+
requestTrendingRepositoriesSince:self.since language:self.language]
73+
takeUntil:[self.optionsSignal skip:1]];
6674
}
6775

6876
@end

0 commit comments

Comments
 (0)