Correctly updating feed detail story title list on read. Also syncing all mark reads (including gestures).

This commit is contained in:
Samuel Clay 2014-03-05 15:20:31 -08:00
parent 9254f799bb
commit efb9108a38
5 changed files with 20 additions and 9 deletions

View file

@ -172,8 +172,10 @@
[appDelegate.storyDetailViewController fetchTextView];
} else if (markUnread) {
[storiesCollection toggleStoryUnread:story];
[self reloadData];
} else if (saveStory) {
[storiesCollection toggleStorySaved:story];
[self reloadData];
}
inDoubleTap = NO;
}

View file

@ -1887,8 +1887,8 @@
for (StoryDetailViewController *page in @[storyPageControl.previousPage,
storyPageControl.currentPage,
storyPageControl.nextPage]) {
if (![[page.activeStory objectForKey:@"story_hash"]
isEqualToString:[story objectForKey:@"story_hash"]]) {
if ([[page.activeStory objectForKey:@"story_hash"]
isEqualToString:[story objectForKey:@"story_hash"]]) {
page.isRecentlyUnread = NO;
[storyPageControl refreshHeaders];
}
@ -1899,8 +1899,8 @@
for (StoryDetailViewController *page in @[storyPageControl.previousPage,
storyPageControl.currentPage,
storyPageControl.nextPage]) {
if (![[page.activeStory objectForKey:@"story_hash"]
isEqualToString:[story objectForKey:@"story_hash"]]) {
if ([[page.activeStory objectForKey:@"story_hash"]
isEqualToString:[story objectForKey:@"story_hash"]]) {
page.isRecentlyUnread = YES;
[storyPageControl refreshHeaders];
}

View file

@ -418,6 +418,7 @@ static UIFont *userLabelFont;
appDelegate.hasNoSites = NO;
appDelegate.recentlyReadStories = [NSMutableDictionary dictionary];
appDelegate.unreadStoryHashes = [NSMutableDictionary dictionary];
self.isOffline = NO;
NSString *responseString = [request responseString];

View file

@ -418,6 +418,11 @@
NSMutableDictionary *newStory = [story mutableCopy];
[newStory setValue:[NSNumber numberWithInt:1] forKey:@"read_status"];
if ([[appDelegate.activeStory objectForKey:@"story_hash"]
isEqualToString:[newStory objectForKey:@"story_hash"]]) {
appDelegate.activeStory = newStory;
}
// make the story as read in self.activeFeedStories
NSString *newStoryIdStr = [NSString stringWithFormat:@"%@", [newStory valueForKey:@"story_hash"]];
NSMutableArray *newActiveFeedStories = [self.activeFeedStories mutableCopy];
@ -430,10 +435,6 @@
}
}
self.activeFeedStories = newActiveFeedStories;
if ([[appDelegate.activeStory objectForKey:@"story_hash"]
isEqualToString:[newStory objectForKey:@"story_hash"]]) {
appDelegate.activeStory = newStory;
}
// If not a feed, then don't bother updating local feed.
if (!feed) return;
@ -508,6 +509,11 @@
NSMutableDictionary *newStory = [story mutableCopy];
[newStory setValue:[NSNumber numberWithInt:0] forKey:@"read_status"];
if ([[appDelegate.activeStory objectForKey:@"story_hash"]
isEqualToString:[newStory objectForKey:@"story_hash"]]) {
appDelegate.activeStory = newStory;
}
// make the story as read in self.activeFeedStories
NSString *newStoryIdStr = [NSString stringWithFormat:@"%@", [newStory valueForKey:@"story_hash"]];
NSMutableArray *newActiveFeedStories = [self.activeFeedStories mutableCopy];
@ -520,7 +526,7 @@
}
}
self.activeFeedStories = newActiveFeedStories;
// If not a feed, then don't bother updating local feed.
if (!feed) return;

View file

@ -137,8 +137,10 @@
[self fetchTextView];
} else if (markUnread) {
[appDelegate.storiesCollection toggleStoryUnread];
[appDelegate.feedDetailViewController reloadData];
} else if (saveStory) {
[appDelegate.storiesCollection toggleStorySaved];
[appDelegate.feedDetailViewController reloadData];
}
inDoubleTap = NO;
}