mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Making network request for River of News in iPhone app.
This commit is contained in:
parent
02c40ac2ab
commit
fdc95477d9
5 changed files with 74 additions and 9 deletions
|
@ -34,6 +34,7 @@
|
|||
- (void)resetFeedDetail;
|
||||
- (void)fetchNextPage:(void(^)())callback;
|
||||
- (void)fetchFeedDetail:(int)page withCallback:(void(^)())callback;
|
||||
- (void)fetchRiverPage:(int)page withCallback:(void(^)())callback;
|
||||
- (void)finishedLoadingFeed:(ASIHTTPRequest *)request;
|
||||
- (void)failLoadingFeed:(ASIHTTPRequest *)request;
|
||||
|
||||
|
|
|
@ -199,6 +199,47 @@
|
|||
[results release];
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark River of News
|
||||
|
||||
- (void)fetchRiverPage:(int)page withCallback:(void(^)())callback {
|
||||
if ([appDelegate.activeFeed objectForKey:@"id"] != nil && !self.pageFetching && !self.pageFinished) {
|
||||
self.feedPage = page;
|
||||
self.pageFetching = YES;
|
||||
int storyCount = appDelegate.storyCount;
|
||||
if (storyCount == 0) {
|
||||
[self.storyTitlesTable reloadData];
|
||||
[storyTitlesTable scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];
|
||||
}
|
||||
|
||||
NSString *theFeedDetailURL = [NSString stringWithFormat:@"http://%@/reader/feed/%@?page=%d",
|
||||
NEWSBLUR_URL,
|
||||
[appDelegate.activeFeed objectForKey:@"id"],
|
||||
self.feedPage];
|
||||
NSURL *urlFeedDetail = [NSURL URLWithString:theFeedDetailURL];
|
||||
|
||||
__block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:urlFeedDetail];
|
||||
[request setDelegate:self];
|
||||
[request setResponseEncoding:NSUTF8StringEncoding];
|
||||
[request setDefaultResponseEncoding:NSUTF8StringEncoding];
|
||||
[request setFailedBlock:^(void) {
|
||||
[self failLoadingFeed:request];
|
||||
}];
|
||||
[request setCompletionBlock:^(void) {
|
||||
[self finishedLoadingFeed:request];
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
}];
|
||||
[request setTimeOutSeconds:30];
|
||||
[request setTag:[[[appDelegate activeFeed] objectForKey:@"id"] intValue]];
|
||||
[request startAsynchronous];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Stories
|
||||
|
||||
- (void)renderStories:(NSArray *)newStories {
|
||||
NSInteger existingStoriesCount = [[appDelegate activeFeedStoryLocations] count];
|
||||
NSInteger newStoriesCount = [newStories count];
|
||||
|
|
|
@ -133,7 +133,21 @@
|
|||
[feedDetailViewController fetchFeedDetail:1 withCallback:nil];
|
||||
[self showNavigationBar:YES];
|
||||
navController.navigationBar.tintColor = [UIColor colorWithRed:0.16f green:0.36f blue:0.46 alpha:0.9];
|
||||
// navController.navigationBar.tintColor = UIColorFromRGB(0x59f6c1);
|
||||
// navController.navigationBar.tintColor = UIColorFromRGB(0x59f6c1);
|
||||
}
|
||||
|
||||
- (void)loadRiverFeedDetailView {
|
||||
UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"All" style: UIBarButtonItemStyleBordered target: nil action: nil];
|
||||
[feedsViewController.navigationItem setBackBarButtonItem: newBackButton];
|
||||
[newBackButton release];
|
||||
UINavigationController *navController = self.navigationController;
|
||||
[self setStories:nil];
|
||||
[navController pushViewController:feedDetailViewController animated:YES];
|
||||
[feedDetailViewController resetFeedDetail];
|
||||
[feedDetailViewController fetchRiverPage:1 withCallback:nil];
|
||||
[self showNavigationBar:YES];
|
||||
navController.navigationBar.tintColor = [UIColor colorWithRed:0.16f green:0.36f blue:0.46 alpha:0.9];
|
||||
// navController.navigationBar.tintColor = UIColorFromRGB(0x59f6c1);
|
||||
}
|
||||
|
||||
- (void)loadStoryDetailView {
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
- (void)finishLoadingFeedList:(ASIHTTPRequest *)request;
|
||||
|
||||
- (IBAction)doLogoutButton;
|
||||
- (void)didSelectSectionHeader;
|
||||
- (void)didSelectSectionHeader:(UIButton *)button;
|
||||
- (IBAction)selectIntelligence;
|
||||
- (void)updateFeedsWithIntelligence:(int)previousLevel newLevel:(int)newLevel;
|
||||
- (void)calculateFeedLocations:(BOOL)markVisible;
|
||||
|
|
|
@ -489,7 +489,8 @@ viewForHeaderInSection:(NSInteger)section {
|
|||
UIButton *invisibleHeaderButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
invisibleHeaderButton.frame = CGRectMake(0, 0, customView.frame.size.width, customView.frame.size.height);
|
||||
invisibleHeaderButton.alpha = .1;
|
||||
[invisibleHeaderButton addTarget:self action:@selector(didSelectSectionHeader) forControlEvents:UIControlEventTouchUpInside];
|
||||
invisibleHeaderButton.tag = section;
|
||||
[invisibleHeaderButton addTarget:self action:@selector(didSelectSectionHeader:) forControlEvents:UIControlEventTouchUpInside];
|
||||
[customView addSubview:invisibleHeaderButton];
|
||||
|
||||
return customView;
|
||||
|
@ -503,8 +504,16 @@ viewForHeaderInSection:(NSInteger)section {
|
|||
return 21;
|
||||
}
|
||||
|
||||
- (void)didSelectSectionHeader {
|
||||
NSLog(@"Touched");
|
||||
- (void)didSelectSectionHeader:(UIButton *)button {
|
||||
NSString *folderName = [appDelegate.dictFoldersArray objectAtIndex:button.tag];
|
||||
// NSArray *feeds = [appDelegate.dictFolders objectForKey:folderName];
|
||||
// NSArray *activeFolderFeeds = [self.activeFeedLocations objectForKey:folderName];
|
||||
|
||||
[appDelegate setActiveFolder:folderName];
|
||||
appDelegate.readStories = [NSMutableArray array];
|
||||
appDelegate.isRiverView = YES;
|
||||
|
||||
[appDelegate loadFeedDetailView];
|
||||
}
|
||||
|
||||
- (IBAction)selectIntelligence {
|
||||
|
@ -534,9 +543,9 @@ viewForHeaderInSection:(NSInteger)section {
|
|||
NSArray *activeFolderFeeds = [self.activeFeedLocations objectForKey:folderName];
|
||||
NSArray *originalFolder = [appDelegate.dictFolders objectForKey:folderName];
|
||||
|
||||
if (s == 9) {
|
||||
// if (s == 9) {
|
||||
// NSLog(@"Section %d: %@. %d to %d", s, folderName, previousLevel, newLevel);
|
||||
}
|
||||
// }
|
||||
|
||||
for (int f=0; f < [originalFolder count]; f++) {
|
||||
NSNumber *feedId = [originalFolder objectAtIndex:f];
|
||||
|
@ -544,12 +553,12 @@ viewForHeaderInSection:(NSInteger)section {
|
|||
NSDictionary *feed = [appDelegate.dictFeeds objectForKey:feedIdStr];
|
||||
int maxScore = [NewsBlurViewController computeMaxScoreForFeed:feed];
|
||||
|
||||
if (s == 9) {
|
||||
// if (s == 9) {
|
||||
// NSLog(@"MaxScore: %d for %@ (%@/%@/%@). Visible: %@", maxScore,
|
||||
// [feed objectForKey:@"feed_title"],
|
||||
// [feed objectForKey:@"ng"], [feed objectForKey:@"nt"], [feed objectForKey:@"ng"],
|
||||
// [self.visibleFeeds objectForKey:feedIdStr]);
|
||||
}
|
||||
// }
|
||||
|
||||
if ([self.visibleFeeds objectForKey:feedIdStr]) {
|
||||
if (maxScore < newLevel) {
|
||||
|
|
Loading…
Add table
Reference in a new issue