Skip to content

Commit 0f458aa

Browse files
Alfredo UribeAlfredo Uribe
authored andcommitted
Working page controller
now has 5 dots and logic in place to move highlight appropriately
1 parent 39fa706 commit 0f458aa

6 files changed

Lines changed: 62 additions & 25 deletions

File tree

EasyReader/Application/Api/CSFeedItemUpdater.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ - (void) start
3232
[myInvocation setTarget:self];
3333
[myInvocation setSelector:@selector(requestFiveMinutesOfFeedItems:)];
3434

35-
int interval = 60 * 1;
35+
int interval = 20 * 1;
3636
[NSTimer scheduledTimerWithTimeInterval:interval invocation:myInvocation repeats:YES];
3737
}
3838

EasyReader/Application/Controllers/Home/CSHomeViewController.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,11 @@
1515

1616
@property (weak, nonatomic) IBOutlet UIScrollView *verticalScrollView;
1717
@property (strong, nonatomic) IBOutlet UIButton *button_leftMenu;
18+
@property (strong, nonatomic) IBOutlet UIPageControl *pageControl_itemIndicator;
1819
@property (nonatomic, strong) UIWebView *feedItemWebView;
19-
@property (nonatomic, strong) NSSet *feedItems;
20+
@property (nonatomic, strong) NSMutableSet *feedItems;
2021
@property User* currentUser;
2122

23+
@property int collectionCellGoingTo;
24+
2225
@end

EasyReader/Application/Controllers/Home/CSHomeViewController.m

Lines changed: 51 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,12 @@ @implementation CSHomeViewController
3232

3333
- (void)viewDidLoad
3434
{
35-
[super viewDidLoad];
36-
[self setUpCollectionView];
37-
[self setUpWebView];
38-
[self setupFeedItemObserver];
39-
// Do any additional setup after loading the view.
35+
_feedItems = [[NSMutableSet alloc] init];
36+
[super viewDidLoad];
37+
[self setUpCollectionView];
38+
[self setUpWebView];
39+
[self setupFeedItemObserver];
40+
// Do any additional setup after loading the view.
4041
}
4142

4243
- (void)viewDidLayoutSubviews
@@ -62,6 +63,9 @@ - (void) setupFeedItemObserver
6263
for ( Feed *feed in addedFeeds ){
6364
[feed observeRelationship:@"feedItems"
6465
changeBlock:^(__weak Feed *feed, NSSet *old, NSSet *new) {
66+
67+
_feedItems = [(CSFeedItemCollectionViewDataSource *)_collectionView_feedItems.dataSource feedItems];
68+
6569
if(!new) {
6670
NSLog(@"startup?");
6771
} else {
@@ -72,46 +76,51 @@ - (void) setupFeedItemObserver
7276
[removedFeedItems removeObjectsInArray:[new allObjects]];
7377

7478
for( FeedItem *item in removedFeedItems ){
75-
[[(CSFeedItemCollectionViewDataSource *)_collectionView_feedItems.dataSource feedItems] removeObject:item];
79+
[_feedItems removeObject:item];
7680
}
7781

7882
for( FeedItem *item in addedFeedItems ){
79-
[[(CSFeedItemCollectionViewDataSource *)_collectionView_feedItems.dataSource feedItems] addObject:item];
83+
[_feedItems addObject:item];
8084
}
8185
}
8286

8387
//redraw the collection with the changes to the feed items
8488
[feedCollectionViewDataSource sortFeedItems];
8589
[_collectionView_feedItems reloadData];
90+
_pageControl_itemIndicator.numberOfPages = [_feedItems count] < 6 ? [_feedItems count] : 5;
91+
8692
if(currentFeedItem){
8793
[self scrollToCurrentFeedItem];
94+
[self setPageControllerPageAtIndex:[feedCollectionViewDataSource.sortedFeedItems indexOfObject:currentFeedItem]];
8895
}
8996
}
9097
insertionBlock:nil
9198
removalBlock:nil
9299
replacementBlock:nil];
93100
}
94-
95-
//properties:@[@"title", @"summary", @"updatedAt", @"publishedAt", @"createdAt", @"image", @"url"]
96101
}
97102
insertionBlock:nil
98103
removalBlock:nil
99104
replacementBlock:nil
100105
];
101106
}
102107

108+
// Sets up collection view on controller start up
103109
- (void)setUpCollectionView
104110
{
105-
User *current = [User current];
106-
NSSet *feedItems = current.feedItems;
107-
108-
feedCollectionViewDataSource =
109-
[[CSFeedItemCollectionViewDataSource alloc] initWithFeedItems:feedItems
110-
reusableCellIdentifier:@"feedItemCell"
111-
configureBlock:[self configureFeedItem]];
112-
113-
self.collectionView_feedItems.dataSource = feedCollectionViewDataSource;
114-
self.collectionView_feedItems.delegate = self;
111+
User *current = [User current];
112+
NSSet *feedItems = current.feedItems;
113+
114+
feedCollectionViewDataSource =
115+
[[CSFeedItemCollectionViewDataSource alloc] initWithFeedItems:feedItems
116+
reusableCellIdentifier:@"feedItemCell"
117+
configureBlock:[self configureFeedItem]];
118+
119+
self.collectionView_feedItems.dataSource = feedCollectionViewDataSource;
120+
self.collectionView_feedItems.delegate = self;
121+
122+
self.collectionView_feedItems.pagingEnabled = YES;
123+
self.pageControl_itemIndicator.currentPage = 0;
115124
}
116125

117126

@@ -181,7 +190,29 @@ - (void)scrollToCurrentFeedItem
181190
[_collectionView_feedItems scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:NO];
182191
}
183192

184-
-(void)loadFeedItemWebView
193+
194+
- (void)collectionView:(UICollectionView *)collectionView didEndDisplayingCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath
195+
{
196+
int newIndex = indexPath.row+((indexPath.row-self.collectionCellGoingTo)*-1);
197+
[self setPageControllerPageAtIndex:newIndex];
198+
}
199+
200+
- (void)setPageControllerPageAtIndex:(int)index
201+
{
202+
if ([_feedItems count] < 6){
203+
_pageControl_itemIndicator.currentPage = index;
204+
} else {
205+
if( index < 3 ){
206+
_pageControl_itemIndicator.currentPage = index;
207+
} else if(index > ([_feedItems count]-3) ){
208+
_pageControl_itemIndicator.currentPage = 5-([_feedItems count]-index);
209+
} else {
210+
_pageControl_itemIndicator.currentPage = 2;
211+
}
212+
}
213+
}
214+
215+
- (void)loadFeedItemWebView
185216
{
186217
// Check if this is a new url
187218
if(currentURL != self.collectionView_feedItems.currentFeedItem.url){

EasyReader/Application/Controllers/Home/FeedItemCollectionView/CSFeedItemCollectionViewDataSource.m

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
//
88

99
#import "CSFeedItemCollectionViewDataSource.h"
10+
#import "CSHomeViewController.h"
1011
#import "FeedItem.h"
1112
#import "CSFeedItemCell.h"
1213

@@ -87,9 +88,10 @@ - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cell
8788
forIndexPath:indexPath];
8889

8990
FeedItem *item = [_sortedFeedItems objectAtIndex:indexPath.row];
90-
9191
_configureFeedItemCell(cell, item);
9292

93+
[(CSHomeViewController*)collectionView.delegate setCollectionCellGoingTo:indexPath.row];
94+
9395
return cell;
9496
}
9597

EasyReader/Application/Models/User.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ - (NSSet *)feedItems
2424

2525
for (Feed *feed in self.feeds)
2626
{
27-
[feedItems setByAddingObjectsFromSet:feed.feedItems];
27+
[feedItems addObjectsFromArray:[feed.feedItems allObjects]];
2828
}
2929

3030
return feedItems;

EasyReader/Application/Views/Main_iPhone.storyboard

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@
132132
<action selector="buttonLeftMenu_touchUpInside_goToMenu:" destination="Hgn-0q-Z1W" eventType="touchUpInside" id="hMD-Og-FDZ"/>
133133
</connections>
134134
</button>
135-
<pageControl opaque="NO" contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" numberOfPages="3" translatesAutoresizingMaskIntoConstraints="NO" id="vdW-Yb-aAb">
135+
<pageControl opaque="NO" contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" numberOfPages="5" translatesAutoresizingMaskIntoConstraints="NO" id="vdW-Yb-aAb">
136136
<rect key="frame" x="0.0" y="531" width="320" height="37"/>
137137
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
138138
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
@@ -152,6 +152,7 @@
152152
<connections>
153153
<outlet property="button_leftMenu" destination="wb1-Na-kaO" id="0oK-RY-cyj"/>
154154
<outlet property="collectionView_feedItems" destination="xvT-99-V3u" id="kb5-it-zd3"/>
155+
<outlet property="pageControl_itemIndicator" destination="vdW-Yb-aAb" id="8X6-MF-OZ3"/>
155156
<outlet property="verticalScrollView" destination="EWA-9Z-pb1" id="yj7-Ir-WAm"/>
156157
</connections>
157158
</viewController>

0 commit comments

Comments
 (0)