Transfering dashboard stories over to feed detail, but can't handle multiple loads.

This commit is contained in:
Samuel Clay 2014-02-18 18:38:07 -08:00
parent d4b4a11ace
commit 30d1f3a486
5 changed files with 86 additions and 70 deletions

View file

@ -81,7 +81,8 @@
[super viewDidLoad];
self.appDelegate = (NewsBlurAppDelegate *)[[UIApplication sharedApplication] delegate];
self.storiesCollection = appDelegate.storiesCollection;
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(preferredContentSizeChanged:)
name:UIContentSizeCategoryDidChangeNotification
@ -118,8 +119,6 @@
self.notifier = [[NBNotifier alloc] initWithTitle:@"Fetching stories..." inView:self.view];
[self.view addSubview:self.notifier];
storiesCollection = appDelegate.storiesCollection;
}
- (void)preferredContentSizeChanged:(NSNotification *)aNotification {
@ -735,6 +734,7 @@
error:&error];
id feedId = [results objectForKey:@"feed_id"];
NSString *feedIdStr = [NSString stringWithFormat:@"%@",feedId];
NSLog(@"Finished loading feed: %@", [[[results objectForKey:@"stories"] objectAtIndex:0] objectForKey:@"story_title"]);
if (!(storiesCollection.isRiverView ||
storiesCollection.isSocialView ||
@ -907,7 +907,9 @@
NSInteger locationOfStoryId = [storiesCollection locationOfStoryId:storyHashStr];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:locationOfStoryId inSection:0];
[self.storyTitlesTable selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionBottom];
[self.storyTitlesTable selectRowAtIndexPath:indexPath
animated:YES
scrollPosition:UITableViewScrollPositionMiddle];
FeedDetailTableCell *cell = (FeedDetailTableCell *)[self.storyTitlesTable cellForRowAtIndexPath:indexPath];
[self loadStory:cell atRow:indexPath.row];
@ -1135,7 +1137,7 @@
if (self.isDashboardModule) {
NSInteger storyIndex = [storiesCollection indexFromLocation:indexPath.row];
NSDictionary *activeStory = [[storiesCollection activeFeedStories] objectAtIndex:storyIndex];
[appDelegate loadRiverDetailViewWithStory:[activeStory objectForKey:@"story_hash"] showFindingStory:NO];
[appDelegate openDashboardRiverForStory:[activeStory objectForKey:@"story_hash"] showFindingStory:NO];
} else {
FeedDetailTableCell *cell = (FeedDetailTableCell*) [tableView cellForRowAtIndexPath:indexPath];
[self loadStory:cell atRow:indexPath.row];

View file

@ -261,8 +261,8 @@
- (void)loadTryFeedDetailView:(NSString *)feedId withStory:(NSString *)contentId isSocial:(BOOL)social withUser:(NSDictionary *)user showFindingStory:(BOOL)showHUD;
- (void)loadStarredDetailViewWithStory:(NSString *)contentId showFindingStory:(BOOL)showHUD;
- (void)loadRiverFeedDetailView:(FeedDetailViewController *)feedDetailView withFolder:(NSString *)folder;
- (void)loadRiverDetailViewWithStory:(NSString *)contentId
showFindingStory:(BOOL)showHUD;
- (void)openDashboardRiverForStory:(NSString *)contentId
showFindingStory:(BOOL)showHUD;
- (void)loadStoryDetailView;
- (void)adjustStoryDetailWebView;

View file

@ -1035,71 +1035,85 @@
- (void)loadRiverFeedDetailView:(FeedDetailViewController *)feedDetailView withFolder:(NSString *)folder {
self.readStories = [NSMutableArray array];
NSMutableArray *feeds = [NSMutableArray array];
[feedDetailView.storiesCollection setStories:nil];
[feedDetailView.storiesCollection setFeedUserProfiles:nil];
[feedDetailView view]; // force viewDidLoad
self.inFeedDetail = YES;
BOOL transferFromDashboard = [folder isEqualToString:@"river_dashboard"];
[feedDetailView resetFeedDetail];
// [feedDetailView view]; // force viewDidLoad
self.inFeedDetail = YES;
if ([folder isEqualToString:@"river_global"]) {
feedDetailView.storiesCollection.isSocialRiverView = YES;
if (transferFromDashboard) {
StoriesCollection *dashboardCollection = dashboardViewController.storiesModule.storiesCollection;
[feedDetailView resetFeedDetail];
[feedDetailView.storiesCollection setStories:dashboardCollection.activeFeedStories];
[feedDetailView.storiesCollection setFeedUserProfiles:dashboardCollection.activeFeedUserProfiles];
feedDetailView.feedPage = dashboardViewController.storiesModule.feedPage + 1;
feedDetailView.storiesCollection.isRiverView = YES;
[feedDetailView.storiesCollection setActiveFolder:@"river_global"];
} else if ([folder isEqualToString:@"river_blurblogs"]) {
feedDetailView.storiesCollection.isSocialRiverView = YES;
feedDetailView.storiesCollection.isRiverView = YES;
// add all the feeds from every NON blurblog folder
[feedDetailView.storiesCollection setActiveFolder:@"river_blurblogs"];
for (NSString *folderName in self.feedsViewController.activeFeedLocations) {
if ([folderName isEqualToString:@"river_blurblogs"]) { // remove all blurblugs which is a blank folder name
NSArray *originalFolder = [self.dictFolders objectForKey:folderName];
NSArray *folderFeeds = [self.feedsViewController.activeFeedLocations objectForKey:folderName];
for (int l=0; l < [folderFeeds count]; l++) {
[feeds addObject:[originalFolder objectAtIndex:[[folderFeeds objectAtIndex:l] intValue]]];
}
}
}
} else if ([folder isEqualToString:@"everything"]) {
feedDetailView.storiesCollection.isSocialRiverView = NO;
feedDetailView.storiesCollection.isRiverView = YES;
// add all the feeds from every NON blurblog folder
feedDetailView.storiesCollection.isSocialView = NO;
[feedDetailView.storiesCollection setActiveFolder:@"everything"];
for (NSString *folderName in self.feedsViewController.activeFeedLocations) {
if (![folderName isEqualToString:@"river_blurblogs"]) {
NSArray *originalFolder = [self.dictFolders objectForKey:folderName];
NSArray *folderFeeds = [self.feedsViewController.activeFeedLocations objectForKey:folderName];
for (int l=0; l < [folderFeeds count]; l++) {
[feeds addObject:[originalFolder objectAtIndex:[[folderFeeds objectAtIndex:l] intValue]]];
feedDetailView.storiesCollection.activeFolderFeeds = dashboardCollection.activeFolderFeeds;
} else {
[feedDetailView.storiesCollection setStories:nil];
[feedDetailView.storiesCollection setFeedUserProfiles:nil];
[feedDetailView resetFeedDetail];
if ([folder isEqualToString:@"river_global"]) {
feedDetailView.storiesCollection.isSocialRiverView = YES;
feedDetailView.storiesCollection.isRiverView = YES;
[feedDetailView.storiesCollection setActiveFolder:@"river_global"];
} else if ([folder isEqualToString:@"river_blurblogs"]) {
feedDetailView.storiesCollection.isSocialRiverView = YES;
feedDetailView.storiesCollection.isRiverView = YES;
// add all the feeds from every NON blurblog folder
[feedDetailView.storiesCollection setActiveFolder:@"river_blurblogs"];
for (NSString *folderName in self.feedsViewController.activeFeedLocations) {
if ([folderName isEqualToString:@"river_blurblogs"]) { // remove all blurblugs which is a blank folder name
NSArray *originalFolder = [self.dictFolders objectForKey:folderName];
NSArray *folderFeeds = [self.feedsViewController.activeFeedLocations objectForKey:folderName];
for (int l=0; l < [folderFeeds count]; l++) {
[feeds addObject:[originalFolder objectAtIndex:[[folderFeeds objectAtIndex:l] intValue]]];
}
}
}
} else if ([folder isEqualToString:@"everything"]) {
feedDetailView.storiesCollection.isSocialRiverView = NO;
feedDetailView.storiesCollection.isRiverView = YES;
// add all the feeds from every NON blurblog folder
[feedDetailView.storiesCollection setActiveFolder:@"everything"];
for (NSString *folderName in self.feedsViewController.activeFeedLocations) {
if (![folderName isEqualToString:@"river_blurblogs"]) {
NSArray *originalFolder = [self.dictFolders objectForKey:folderName];
NSArray *folderFeeds = [self.feedsViewController.activeFeedLocations objectForKey:folderName];
for (int l=0; l < [folderFeeds count]; l++) {
[feeds addObject:[originalFolder objectAtIndex:[[folderFeeds objectAtIndex:l] intValue]]];
}
}
}
[self.folderCountCache removeAllObjects];
} else if ([folder isEqualToString:@"saved_stories"]) {
feedDetailView.storiesCollection.isRiverView = YES;
feedDetailView.storiesCollection.isSocialRiverView = NO;
[feedDetailView.storiesCollection setActiveFolder:folder];
} else {
feedDetailView.storiesCollection.isSocialRiverView = NO;
feedDetailView.storiesCollection.isRiverView = YES;
NSString *folderName = [self.dictFoldersArray objectAtIndex:[folder intValue]];
[feedDetailView.storiesCollection setActiveFolder:folderName];
NSArray *originalFolder = [self.dictFolders objectForKey:folderName];
NSArray *activeFeedLocations = [self.feedsViewController.activeFeedLocations objectForKey:folderName];
for (int l=0; l < [activeFeedLocations count]; l++) {
[feeds addObject:[originalFolder objectAtIndex:[[activeFeedLocations objectAtIndex:l] intValue]]];
}
}
[self.folderCountCache removeAllObjects];
} else if ([folder isEqualToString:@"saved_stories"]) {
feedDetailView.storiesCollection.isRiverView = YES;
feedDetailView.storiesCollection.isSocialRiverView = NO;
[feedDetailView.storiesCollection setActiveFolder:folder];
} else {
feedDetailView.storiesCollection.isSocialRiverView = NO;
feedDetailView.storiesCollection.isRiverView = YES;
NSString *folderName = [self.dictFoldersArray objectAtIndex:[folder intValue]];
[feedDetailView.storiesCollection setActiveFolder:folderName];
NSArray *originalFolder = [self.dictFolders objectForKey:folderName];
NSArray *activeFeedLocations = [self.feedsViewController.activeFeedLocations objectForKey:folderName];
for (int l=0; l < [activeFeedLocations count]; l++) {
[feeds addObject:[originalFolder objectAtIndex:[[activeFeedLocations objectAtIndex:l] intValue]]];
}
}
feedDetailView.storiesCollection.activeFolderFeeds = feeds;
if (!self.feedsViewController.viewShowingAllFeeds) {
for (id feedId in feeds) {
NSString *feedIdStr = [NSString stringWithFormat:@"%@", feedId];
[self.feedsViewController.stillVisibleFeeds setObject:[NSNumber numberWithBool:YES] forKey:feedIdStr];
feedDetailView.storiesCollection.activeFolderFeeds = feeds;
if (!self.feedsViewController.viewShowingAllFeeds) {
for (id feedId in feeds) {
NSString *feedIdStr = [NSString stringWithFormat:@"%@", feedId];
[self.feedsViewController.stillVisibleFeeds setObject:[NSNumber numberWithBool:YES] forKey:feedIdStr];
}
}
}
if (feedDetailView.storiesCollection.activeFolder) {
[self.folderCountCache removeObjectForKey:feedDetailView.storiesCollection.activeFolder];
}
@ -1123,8 +1137,8 @@
}
}
- (void)loadRiverDetailViewWithStory:(NSString *)contentId
showFindingStory:(BOOL)showHUD {
- (void)openDashboardRiverForStory:(NSString *)contentId
showFindingStory:(BOOL)showHUD {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
[self.navigationController popToRootViewControllerAnimated:NO];
[self.navigationController dismissViewControllerAnimated:YES completion:nil];
@ -1142,7 +1156,7 @@
storiesCollection.activeFeed = nil;
storiesCollection.activeFolder = @"everything";
[self loadRiverFeedDetailView:feedDetailViewController withFolder:@"everything"];
[self loadRiverFeedDetailView:feedDetailViewController withFolder:@"river_dashboard"];
if (showHUD) {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

View file

@ -5,7 +5,7 @@
#import <SystemConfiguration/SystemConfiguration.h>
#import <MobileCoreServices/MobileCoreServices.h>
//#define DEBUG 1
#define DEBUG 1
//#define PROD_DEBUG 1
#ifdef DEBUG

View file

@ -105,7 +105,6 @@ MIDDLEWARE_CLASSES = (
'django.contrib.auth.middleware.AuthenticationMiddleware',
'apps.profile.middleware.TimingMiddleware',
'apps.profile.middleware.LastSeenMiddleware',
'apps.profile.middleware.SQLLogToConsoleMiddleware',
'apps.profile.middleware.UserAgentBanMiddleware',
'subdomains.middleware.SubdomainMiddleware',
'apps.profile.middleware.SimpsonsMiddleware',
@ -623,8 +622,9 @@ REDIS_STORY_HASH_TEMP_POOL = redis.ConnectionPool(host=REDIS['host'], port=6379,
JAMMIT = jammit.JammitAssets(NEWSBLUR_DIR)
if DEBUG:
MIDDLEWARE_CLASSES += ('utils.mongo_raw_log_middleware.MongoDumpMiddleware',)
MIDDLEWARE_CLASSES += ('utils.redis_raw_log_middleware.RedisDumpMiddleware',)
# MIDDLEWARE_CLASSES += ('apps.profile.middleware.SQLLogToConsoleMiddleware',)
# MIDDLEWARE_CLASSES += ('utils.mongo_raw_log_middleware.MongoDumpMiddleware',)
# MIDDLEWARE_CLASSES += ('utils.redis_raw_log_middleware.RedisDumpMiddleware',)
MIDDLEWARE_CLASSES += ('utils.request_introspection_middleware.DumpRequestMiddleware',)
MIDDLEWARE_CLASSES += ('utils.exception_middleware.ConsoleExceptionMiddleware',)