Fixing page counting.

This commit is contained in:
Samuel Clay 2012-11-26 09:54:20 -08:00
parent c9dae06d0f
commit af8fcfe221
10 changed files with 58 additions and 146 deletions

View file

@ -211,6 +211,7 @@
self.pageFetching = NO;
self.pageFinished = NO;
self.feedPage = 1;
[appDelegate.storyPageControl resetPages];
}
- (void)reloadPage {

View file

@ -541,7 +541,6 @@
[self transitionFromShareView];
}
[self.storyPageControl resetPages];
self.feedDetailIsVisible = NO;
CGRect vb = [self.view bounds];

View file

@ -101,6 +101,7 @@
int feedDetailPortraitYCoordinate;
int storyCount;
int storyLocationsCount;
int originalStoryCount;
NSInteger selectedIntelligence;
int visibleUnreadCount;
@ -181,6 +182,7 @@
@property (readwrite) NSURL * activeOriginalStoryURL;
@property (readwrite) int feedDetailPortraitYCoordinate;
@property (readwrite) int storyCount;
@property (readwrite) int storyLocationsCount;
@property (readwrite) int originalStoryCount;
@property (readwrite) int visibleUnreadCount;
@property (readwrite) int savedStoriesCount;

View file

@ -100,6 +100,7 @@
@synthesize activeFeedUserProfiles;
@synthesize activeStory;
@synthesize storyCount;
@synthesize storyLocationsCount;
@synthesize visibleUnreadCount;
@synthesize savedStoriesCount;
@synthesize originalStoryCount;
@ -965,6 +966,7 @@
self.activeFeedStories = [self.activeFeedStories arrayByAddingObjectsFromArray:stories];
self.storyCount = [self.activeFeedStories count];
[self calculateStoryLocations];
self.storyLocationsCount = [self.activeFeedStoryLocations count];
}
- (void)setStories:(NSArray *)activeFeedStoriesValue {
@ -973,6 +975,7 @@
self.recentlyReadStories = [NSMutableArray array];
self.recentlyReadFeeds = [NSMutableSet set];
[self calculateStoryLocations];
self.storyLocationsCount = [self.activeFeedStoryLocations count];
}
- (void)setFeedUserProfiles:(NSArray *)activeFeedUserProfilesValue{

View file

@ -50,7 +50,6 @@
@property (nonatomic) UIBarButtonItem *buttonBack;
@property (nonatomic) IBOutlet UIBarButtonItem *activity;
@property (nonatomic) IBOutlet UIBarButtonItem *buttonAction;
@property (nonatomic) IBOutlet UIBarButtonItem *buttonNextStory;
@property (nonatomic) IBOutlet UIToolbar *bottomPlaceholderToolbar;
@property (nonatomic) IBOutlet UIBarButtonItem *fontSettingsButton;
@property (nonatomic) IBOutlet UIBarButtonItem *originalStoryButton;
@ -69,6 +68,7 @@
- (void)resetPages;
- (void)refreshPages;
- (void)setStoryFromScroll;
- (void)setStoryFromScroll:(BOOL)force;
- (void)updatePageWithActiveStory:(int)location;
- (void)changePage:(NSInteger)pageIndex;
- (void)changePage:(NSInteger)pageIndex animated:(BOOL)animated;
@ -93,7 +93,6 @@
- (IBAction)showOriginalSubview:(id)sender;
- (IBAction)doNextUnreadStory;
- (IBAction)doNextStory;
- (IBAction)doPreviousStory;
- (IBAction)tapProgressBar:(id)sender;

View file

@ -35,7 +35,6 @@
@synthesize buttonNext;
@synthesize buttonAction;
@synthesize activity;
@synthesize buttonNextStory;
@synthesize fontSettingsButton;
@synthesize originalStoryButton;
@synthesize subscribeButton;
@ -95,7 +94,6 @@
self.fontSettingsButton = settingsButton;
// original button for iPhone
UIBarButtonItem *originalButton = [[UIBarButtonItem alloc]
initWithTitle:@"Original"
style:UIBarButtonItemStyleBordered
@ -200,7 +198,7 @@
}
- (void)transitionFromFeedDetail {
[self performSelector:@selector(resetPages) withObject:self afterDelay:0.5];
// [self performSelector:@selector(resetPages) withObject:self afterDelay:0.5];
[appDelegate.masterContainerViewController transitionFromFeedDetail];
}
@ -212,17 +210,18 @@
NSLog(@"resetPages");
[currentPage clearStory];
[nextPage clearStory];
// [previousPage clearStory];
[previousPage clearStory];
[currentPage hideStory];
[nextPage hideStory];
// [previousPage hideStory];
[previousPage hideStory];
currentPage.pageIndex = -2;
nextPage.pageIndex = -2;
previousPage.pageIndex = -2;
// self.scrollView.contentOffset = CGPointMake(0, 0);
CGRect frame = self.scrollView.frame;
self.scrollView.contentSize = frame.size;
}
- (void)refreshPages {
@ -239,7 +238,7 @@
}
- (void)resizeScrollView {
NSInteger widthCount = self.appDelegate.storyCount;
NSInteger widthCount = self.appDelegate.storyLocationsCount;
if (widthCount == 0) {
widthCount = 1;
}
@ -299,9 +298,9 @@
int wasIndex = pageController.pageIndex;
pageController.pageIndex = newIndex;
NSLog(@"Applied Index: Was %d, now %d (%d/%d/%d)", wasIndex, newIndex, previousPage.pageIndex, currentPage.pageIndex, nextPage.pageIndex);
NSLog(@"Applied Index: Was %d, now %d (%d/%d/%d) [%d stories]", wasIndex, newIndex, previousPage.pageIndex, currentPage.pageIndex, nextPage.pageIndex, [appDelegate.activeFeedStoryLocations count]);
if (newIndex >= [appDelegate.activeFeedStoryLocations count]) {
if (newIndex > 0 && newIndex >= [appDelegate.activeFeedStoryLocations count]) {
if (self.appDelegate.feedDetailViewController.feedPage < 50 &&
!self.appDelegate.feedDetailViewController.pageFinished &&
!self.appDelegate.feedDetailViewController.pageFetching) {
@ -325,6 +324,7 @@
[pageController initStory];
[pageController drawStory];
} else {
[pageController clearStory];
NSLog(@"Skipping drawing %d (waiting for %d)", newIndex, self.scrollingToPage);
}
} else if (outOfBounds) {
@ -333,12 +333,10 @@
[self resizeScrollView];
[self.loadingIndicator stopAnimating];
}
- (void)scrollViewDidScroll:(UIScrollView *)sender {
[sender setContentOffset:CGPointMake(sender.contentOffset.x, 0)];
// [sender setContentOffset:CGPointMake(sender.contentOffset.x, 0)];
CGFloat pageWidth = self.scrollView.frame.size.width;
float fractionalPage = self.scrollView.contentOffset.x / pageWidth;
@ -346,6 +344,9 @@
NSInteger upperNumber = lowerNumber + 1;
NSInteger previousNumber = lowerNumber - 1;
int storyCount = [appDelegate.activeFeedStoryLocations count];
if (storyCount == 0 || lowerNumber > storyCount) return;
// NSLog(@"Did Scroll: %f = %d (%d/%d/%d)", fractionalPage, lowerNumber, previousPage.pageIndex, currentPage.pageIndex, nextPage.pageIndex);
if (lowerNumber == currentPage.pageIndex) {
if (upperNumber != nextPage.pageIndex) {
@ -362,7 +363,6 @@
NSLog(@"Prev was %d, now %d (B)", previousPage.pageIndex, previousNumber);
[self applyNewIndex:lowerNumber pageController:previousPage];
}
[self setStoryFromScroll];
} else {
// Going forwards
if (lowerNumber == nextPage.pageIndex) {
@ -376,13 +376,17 @@
[self applyNewIndex:previousNumber pageController:previousPage];
} else {
NSLog(@"Next was %d, now %d (C3)", nextPage.pageIndex, upperNumber);
NSLog(@"Current was %d, now %d (C3)", currentPage.pageIndex, lowerNumber);
NSLog(@"Prev was %d, now %d (C3)", previousPage.pageIndex, previousNumber);
[self applyNewIndex:lowerNumber pageController:currentPage];
[self applyNewIndex:upperNumber pageController:nextPage];
// [self applyNewIndex:previousNumber pageController:previousPage];
[self applyNewIndex:previousNumber pageController:previousPage];
}
[self setStoryFromScroll];
}
// if (self.isDraggingScrollview) {
[self setStoryFromScroll];
// }
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
@ -425,6 +429,7 @@
}
- (void)changePage:(NSInteger)pageIndex animated:(BOOL)animated {
NSLog(@"changePage to %d (animated: %d)", pageIndex, animated);
// update the scroll view to the appropriate page
[self resizeScrollView];
@ -446,12 +451,20 @@
}
- (void)setStoryFromScroll {
[self setStoryFromScroll:NO];
}
- (void)setStoryFromScroll:(BOOL)force {
CGFloat pageWidth = self.scrollView.frame.size.width;
float fractionalPage = self.scrollView.contentOffset.x / pageWidth;
NSInteger nearestNumber = lround(fractionalPage);
if (currentPage.pageIndex == nearestNumber ||
currentPage.pageIndex == -1) return;
if (!force && currentPage.pageIndex > 0 &&
currentPage.pageIndex == nearestNumber &&
currentPage.pageIndex != self.scrollingToPage) {
NSLog(@"Skipping setStoryFromScroll: currentPage is %d (%d, %d)", currentPage.pageIndex, nearestNumber, self.scrollingToPage);
return;
}
if (currentPage.pageIndex < nearestNumber) {
NSLog(@"Swap next into current, current into previous: %d / %d", currentPage.pageIndex, nearestNumber);
@ -474,11 +487,17 @@
nextPage.webView.scrollView.scrollsToTop = NO;
previousPage.webView.scrollView.scrollsToTop = NO;
currentPage.webView.scrollView.scrollsToTop = YES;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
appDelegate.feedDetailViewController.storyTitlesTable.scrollsToTop = NO;
}
self.scrollView.scrollsToTop = NO;
int storyIndex = [appDelegate indexFromLocation:currentPage.pageIndex];
appDelegate.activeStory = [appDelegate.activeFeedStories objectAtIndex:storyIndex];
[self updatePageWithActiveStory:currentPage.pageIndex];
if (self.isDraggingScrollview || self.scrollingToPage == currentPage.pageIndex) {
self.scrollingToPage = -1;
int storyIndex = [appDelegate indexFromLocation:currentPage.pageIndex];
appDelegate.activeStory = [appDelegate.activeFeedStories objectAtIndex:storyIndex];
[self updatePageWithActiveStory:currentPage.pageIndex];
}
}
- (void)updatePageWithActiveStory:(int)location {
@ -886,46 +905,6 @@
}
}
- (IBAction)doNextStory {
int nextLocation = [appDelegate locationOfNextStory];
[self.loadingIndicator stopAnimating];
if (self.appDelegate.feedDetailViewController.pageFetching) {
return;
}
if (nextLocation == -1 &&
self.appDelegate.feedDetailViewController.feedPage < 50 &&
!self.appDelegate.feedDetailViewController.pageFinished &&
!self.appDelegate.feedDetailViewController.pageFetching) {
// Fetch next page and see if it has the unreads.
[self.loadingIndicator startAnimating];
self.activity.customView = self.loadingIndicator;
[self.appDelegate.feedDetailViewController fetchNextPage:^() {
[self doNextStory];
}];
} else if (nextLocation == -1) {
[MBProgressHUD hideHUDForView:self.view animated:NO];
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.mode = MBProgressHUDModeText;
hud.removeFromSuperViewOnHide = YES;
hud.labelText = @"No stories left";
[hud hide:YES afterDelay:0.8];
} else {
// [appDelegate setActiveStory:[[appDelegate activeFeedStories]
// objectAtIndex:nextLocation]];
// [appDelegate pushReadStory:[appDelegate.activeStory objectForKey:@"id"]];
//
// if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
// [appDelegate changeActiveFeedDetailRow];
// }
[self changePage:nextLocation];
}
}
- (IBAction)doPreviousStory {
[self.loadingIndicator stopAnimating];
id previousStoryId = [appDelegate popReadStory];

View file

@ -73,15 +73,6 @@
<int key="IBUIStyle">1</int>
<reference key="IBUIToolbar" ref="945643081"/>
</object>
<object class="IBUIBarButtonItem" id="890347356">
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">06-arrow-south.png</string>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIStyle">1</int>
<reference key="IBUIToolbar" ref="945643081"/>
</object>
<object class="IBUIBarButtonItem" id="235335976">
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<reference key="IBUIToolbar" ref="945643081"/>
@ -197,14 +188,6 @@
</object>
<int key="connectionID">53</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">buttonNextStory</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="890347356"/>
</object>
<int key="connectionID">54</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">progressView</string>
@ -237,14 +220,6 @@
</object>
<int key="connectionID">27</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">doNextStory</string>
<reference key="source" ref="890347356"/>
<reference key="destination" ref="372490531"/>
</object>
<int key="connectionID">58</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">tapProgressBar:</string>
@ -294,8 +269,8 @@
<reference key="object" ref="179724038"/>
<array class="NSMutableArray" key="children">
<reference ref="757323871"/>
<reference ref="945643081"/>
<reference ref="415445951"/>
<reference ref="945643081"/>
</array>
<reference key="parent" ref="0"/>
</object>
@ -314,7 +289,6 @@
<reference ref="1000698832"/>
<reference ref="558400182"/>
<reference ref="33555139"/>
<reference ref="890347356"/>
<reference ref="235335976"/>
</array>
<reference key="parent" ref="179724038"/>
@ -347,11 +321,6 @@
<reference key="object" ref="33555139"/>
<reference key="parent" ref="945643081"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">41</int>
<reference key="object" ref="890347356"/>
<reference key="parent" ref="945643081"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">40</int>
<reference key="object" ref="235335976"/>
@ -380,7 +349,6 @@
<string key="38.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="39.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="40.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="41.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="42.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="43.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="44.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -1850,10 +1818,6 @@
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="NS.key.0">06-arrow-south.png</string>
<string key="NS.object.0">{10, 12}</string>
</object>
<string key="IBCocoaTouchPluginVersion">1926</string>
</data>
</archive>

View file

@ -1137,14 +1137,14 @@
431B857215A131B200DCE497 /* Feed-Detail */ = {
isa = PBXGroup;
children = (
FF2D8CE214893BBF00057B80 /* MoveSiteViewController.h */,
FF2D8CE314893BBF00057B80 /* MoveSiteViewController.m */,
7843F50311EEB1A000675F64 /* FeedDetailTableCell.h */,
7843F50411EEB1A000675F64 /* FeedDetailTableCell.m */,
787A0CD811CE65330056422D /* FeedDetailViewController.h */,
787A0CD911CE65330056422D /* FeedDetailViewController.m */,
7843F50311EEB1A000675F64 /* FeedDetailTableCell.h */,
7843F50411EEB1A000675F64 /* FeedDetailTableCell.m */,
FFDE35E8162799B90034BFDE /* FeedDetailMenuViewController.h */,
FFDE35E9162799B90034BFDE /* FeedDetailMenuViewController.m */,
FF2D8CE214893BBF00057B80 /* MoveSiteViewController.h */,
FF2D8CE314893BBF00057B80 /* MoveSiteViewController.m */,
);
name = "Feed-Detail";
sourceTree = "<group>";

View file

@ -15,8 +15,8 @@
// #define BACKGROUND_REFRESH_SECONDS -5
#define BACKGROUND_REFRESH_SECONDS -10*60
#define NEWSBLUR_URL [NSString stringWithFormat:@"nb.local.com"]
// #define NEWSBLUR_URL [NSString stringWithFormat:@"www.newsblur.com"]
// #define NEWSBLUR_URL [NSString stringWithFormat:@"nb.local.com"]
#define NEWSBLUR_URL [NSString stringWithFormat:@"www.newsblur.com"]
#define NEWSBLUR_LINK_COLOR 0x405BA8
#define NEWSBLUR_HIGHLIGHT_COLOR 0xd2e6fd

View file

@ -47,6 +47,10 @@
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1045675160"/>
<object class="NSColor" key="IBUIBackgroundColor" id="293866115">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIMultipleTouchEnabled">YES</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
@ -75,10 +79,7 @@
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="21368090"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<reference key="IBUIBackgroundColor" ref="293866115"/>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<array class="NSMutableArray" key="IBUIItems">
@ -89,15 +90,6 @@
<int key="IBUIStyle">1</int>
<reference key="IBUIToolbar" ref="505686801"/>
</object>
<object class="IBUIBarButtonItem" id="708464537">
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">06-arrow-south.png</string>
</object>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBUIStyle">1</int>
<reference key="IBUIToolbar" ref="505686801"/>
</object>
<object class="IBUIBarButtonItem" id="165129926">
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<reference key="IBUIToolbar" ref="505686801"/>
@ -195,14 +187,6 @@
</object>
<int key="connectionID">68</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">buttonNextStory</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="708464537"/>
</object>
<int key="connectionID">69</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">progressView</string>
@ -259,14 +243,6 @@
</object>
<int key="connectionID">118</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">doNextStory</string>
<reference key="source" ref="708464537"/>
<reference key="destination" ref="372490531"/>
</object>
<int key="connectionID">122</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">tapProgressBar:</string>
@ -327,7 +303,6 @@
<reference key="object" ref="505686801"/>
<array class="NSMutableArray" key="children">
<reference ref="165129926"/>
<reference ref="708464537"/>
<reference ref="203941350"/>
<reference ref="326971428"/>
<reference ref="744162887"/>
@ -341,11 +316,6 @@
<reference key="object" ref="165129926"/>
<reference key="parent" ref="505686801"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="708464537"/>
<reference key="parent" ref="505686801"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="203941350"/>
@ -415,7 +385,6 @@
<reference key="6.IBUserGuides" ref="0"/>
<boolean value="NO" key="6.showNotes"/>
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
@ -1877,10 +1846,6 @@
<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="NS.key.0">06-arrow-south.png</string>
<string key="NS.object.0">{10, 12}</string>
</object>
<string key="IBCocoaTouchPluginVersion">1926</string>
</data>
</archive>