From 183a6d00abea7b4cabc9c999b74b1aac589d94e5 Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Thu, 18 Aug 2011 21:48:30 -0700 Subject: [PATCH] Adding pull on Feed detail page in iphone app to forc ea refresh of the feed. Doesn't quite work yet. --- media/iphone/Classes/FeedDetailTableCell.xib | 4 ++-- media/iphone/Classes/FeedDetailViewController.h | 2 +- media/iphone/Classes/FeedDetailViewController.m | 15 ++++++++++++++- media/iphone/Classes/NewsBlurViewController.h | 3 ++- media/iphone/Classes/NewsBlurViewController.m | 15 +++++++++++++++ 5 files changed, 34 insertions(+), 5 deletions(-) diff --git a/media/iphone/Classes/FeedDetailTableCell.xib b/media/iphone/Classes/FeedDetailTableCell.xib index 02891b689..0b109884a 100644 --- a/media/iphone/Classes/FeedDetailTableCell.xib +++ b/media/iphone/Classes/FeedDetailTableCell.xib @@ -2,7 +2,7 @@ 1024 - 11A511 + 11B26 1617 1138 566.00 @@ -106,7 +106,7 @@ 1 - MC44NzQ4NjczMjAxIDAuODc0NzA4OTUwNSAwLjg5NzYyOTk3NjMAA + MC45Mzk5NzgyNDE5IDAuOTM4OTkxNjY1OCAwLjk3NDUzMTExNDEAA 1 diff --git a/media/iphone/Classes/FeedDetailViewController.h b/media/iphone/Classes/FeedDetailViewController.h index 7baa02bd4..3ab2f2967 100644 --- a/media/iphone/Classes/FeedDetailViewController.h +++ b/media/iphone/Classes/FeedDetailViewController.h @@ -12,7 +12,7 @@ @class NewsBlurAppDelegate; @interface FeedDetailViewController : UIViewController - { + { NewsBlurAppDelegate *appDelegate; NSArray * stories; diff --git a/media/iphone/Classes/FeedDetailViewController.m b/media/iphone/Classes/FeedDetailViewController.m index f482f41ea..25275e106 100644 --- a/media/iphone/Classes/FeedDetailViewController.m +++ b/media/iphone/Classes/FeedDetailViewController.m @@ -438,12 +438,25 @@ // called when the user pulls-to-refresh - (void)pullToRefreshViewShouldRefresh:(PullToRefreshView *)view { -// [self fetchFeedList:NO]; + NSString *urlString = @"http://www.newsblur.com/reader/mark_feed_as_read"; + NSURL *url = [NSURL URLWithString:urlString]; + ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; + [request setPostValue:[appDelegate.activeFeed objectForKey:@"id"] forKey:@"feed_id"]; + [request setDelegate:nil]; + [request setDidFinishSelector:@selector(markedAsRead)]; + [request setDidFailSelector:@selector(markedAsRead)]; + [request startAsynchronous]; + [appDelegate markActiveFeedAllRead]; + [appDelegate.navigationController + popToViewController:[appDelegate.navigationController.viewControllers + objectAtIndex:0] + animated:YES]; } // called when the date shown needs to be updated, optional - (NSDate *)pullToRefreshViewLastUpdated:(PullToRefreshView *)view { // return self.lastUpdate; + return [[[NSDate alloc] initWithTimeIntervalSinceNow:-30*30] autorelease]; } diff --git a/media/iphone/Classes/NewsBlurViewController.h b/media/iphone/Classes/NewsBlurViewController.h index aece596ee..e5c84654d 100644 --- a/media/iphone/Classes/NewsBlurViewController.h +++ b/media/iphone/Classes/NewsBlurViewController.h @@ -14,7 +14,7 @@ @class NewsBlurAppDelegate; @interface NewsBlurViewController : UIViewController - + { NewsBlurAppDelegate *appDelegate; @@ -36,6 +36,7 @@ IBOutlet UIBarButtonItem * sitesButton; } +- (void)returnToApp; - (void)fetchFeedList:(BOOL)showLoader; - (IBAction)doLogoutButton; - (IBAction)selectIntelligence; diff --git a/media/iphone/Classes/NewsBlurViewController.m b/media/iphone/Classes/NewsBlurViewController.m index 0682e75c7..489fa646d 100644 --- a/media/iphone/Classes/NewsBlurViewController.m +++ b/media/iphone/Classes/NewsBlurViewController.m @@ -61,6 +61,12 @@ blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] pull = [[PullToRefreshView alloc] initWithScrollView:self.feedTitlesTable]; [pull setDelegate:self]; [self.feedTitlesTable addSubview:pull]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(returnToApp) + name:UIApplicationWillEnterForegroundNotification + object:nil]; + [super viewDidLoad]; } @@ -144,6 +150,15 @@ blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] #pragma mark - #pragma mark Initialization +- (void)returnToApp { + NSDate *decayDate = [[NSDate alloc] initWithTimeIntervalSinceNow:(-10*60)]; + NSLog(@"Last Update: %@ - %f", self.lastUpdate, [self.lastUpdate timeIntervalSinceDate:decayDate]); + if ([self.lastUpdate timeIntervalSinceDate:decayDate] < 0) { + [self fetchFeedList:NO]; + } + [decayDate release]; +} + - (void)fetchFeedList:(BOOL)showLoader { if (showLoader) { MBProgressHUD *HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];