2012-07-10 12:34:58 -07:00
|
|
|
//
|
|
|
|
// DashboardViewController.m
|
|
|
|
// NewsBlur
|
|
|
|
//
|
|
|
|
// Created by Roy Yang on 7/10/12.
|
|
|
|
// Copyright (c) 2012 NewsBlur. All rights reserved.
|
|
|
|
//
|
|
|
|
|
|
|
|
#import "DashboardViewController.h"
|
|
|
|
#import "NewsBlurAppDelegate.h"
|
2012-07-11 18:08:07 -07:00
|
|
|
#import "ActivityModule.h"
|
2012-07-11 20:19:42 -07:00
|
|
|
#import "InteractionsModule.h"
|
2014-02-10 19:21:53 -08:00
|
|
|
#import "FeedDetailViewController.h"
|
2012-07-12 00:10:42 -07:00
|
|
|
#import "UserProfileViewController.h"
|
2014-02-10 19:21:53 -08:00
|
|
|
#import "TMCache.h"
|
2014-02-12 20:09:37 -08:00
|
|
|
#import "StoriesCollection.h"
|
2012-07-10 12:34:58 -07:00
|
|
|
|
2012-12-05 13:10:11 -08:00
|
|
|
#define FEEDBACK_URL @"http://www.newsblur.com/about"
|
2012-07-21 18:56:25 -07:00
|
|
|
|
2012-07-10 12:34:58 -07:00
|
|
|
@implementation DashboardViewController
|
|
|
|
|
|
|
|
@synthesize appDelegate;
|
2012-07-12 10:59:17 -07:00
|
|
|
@synthesize interactionsModule;
|
|
|
|
@synthesize activitiesModule;
|
2014-02-10 19:21:53 -08:00
|
|
|
@synthesize storiesModule;
|
2012-07-21 18:56:25 -07:00
|
|
|
@synthesize feedbackWebView;
|
2012-07-24 16:42:18 -07:00
|
|
|
@synthesize topToolbar;
|
2012-07-21 15:59:10 -07:00
|
|
|
@synthesize toolbar;
|
|
|
|
@synthesize segmentedButton;
|
2012-07-21 12:58:22 -07:00
|
|
|
|
2012-07-10 12:34:58 -07:00
|
|
|
|
|
|
|
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
|
|
|
|
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
|
|
|
|
if (self) {
|
|
|
|
// Custom initialization
|
|
|
|
}
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)viewDidLoad {
|
|
|
|
[super viewDidLoad];
|
|
|
|
// Do any additional setup after loading the view from its nib.
|
2014-02-11 16:00:31 -08:00
|
|
|
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
|
|
|
|
self.interactionsModule.hidden = YES;
|
|
|
|
} else {
|
|
|
|
self.interactionsModule.hidden = NO;
|
|
|
|
}
|
2012-08-06 19:21:39 -07:00
|
|
|
self.activitiesModule.hidden = YES;
|
2012-07-21 18:56:25 -07:00
|
|
|
self.feedbackWebView.hidden = YES;
|
|
|
|
self.feedbackWebView.delegate = self;
|
2012-08-06 19:21:39 -07:00
|
|
|
self.segmentedButton.selectedSegmentIndex = 0;
|
2012-08-03 00:13:56 -07:00
|
|
|
|
2012-07-21 18:56:25 -07:00
|
|
|
// preload feedback
|
|
|
|
self.feedbackWebView.scalesPageToFit = YES;
|
|
|
|
|
2013-09-25 10:47:35 -07:00
|
|
|
[self.segmentedButton
|
|
|
|
setTitleTextAttributes:@{NSFontAttributeName:
|
|
|
|
[UIFont fontWithName:@"Helvetica-Bold" size:11.0f]}
|
|
|
|
forState:UIControlStateNormal];
|
|
|
|
|
2012-07-21 18:56:25 -07:00
|
|
|
NSString *urlAddress = FEEDBACK_URL;
|
|
|
|
//Create a URL object.
|
|
|
|
NSURL *url = [NSURL URLWithString:urlAddress];
|
|
|
|
//URL Requst Object
|
|
|
|
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
|
|
|
|
//Load the request in the UIWebView.
|
|
|
|
[self.feedbackWebView loadRequest:requestObj];
|
2013-09-26 16:12:09 -07:00
|
|
|
|
|
|
|
CGRect topToolbarFrame = self.topToolbar.frame;
|
|
|
|
topToolbarFrame.size.height += 20;
|
|
|
|
self.topToolbar.frame = topToolbarFrame;
|
2014-02-10 19:21:53 -08:00
|
|
|
|
|
|
|
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
|
2014-02-12 20:09:37 -08:00
|
|
|
self.storiesModule = [FeedDetailViewController new];
|
2014-02-10 19:21:53 -08:00
|
|
|
self.storiesModule.isDashboardModule = YES;
|
2014-02-12 20:09:37 -08:00
|
|
|
self.storiesModule.storiesCollection = [StoriesCollection new];
|
2014-02-21 16:06:49 -08:00
|
|
|
// NSLog(@"Dashboard story module view: %@ (%@)", self.storiesModule, self.storiesModule.storiesCollection);
|
2014-02-10 19:21:53 -08:00
|
|
|
self.storiesModule.view.frame = self.activitiesModule.frame;
|
|
|
|
[self.view insertSubview:self.storiesModule.view belowSubview:self.activitiesModule];
|
|
|
|
[self addChildViewController:self.storiesModule];
|
|
|
|
[self.storiesModule didMoveToParentViewController:self];
|
|
|
|
}
|
2012-07-10 12:34:58 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
- (void)viewWillAppear:(BOOL)animated {
|
2014-09-18 11:25:51 -07:00
|
|
|
[super viewWillAppear:animated];
|
2012-07-10 12:34:58 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
|
|
|
return YES;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (IBAction)doLogout:(id)sender {
|
|
|
|
[appDelegate confirmLogout];
|
|
|
|
}
|
2012-07-10 16:48:05 -07:00
|
|
|
|
|
|
|
# pragma mark
|
2012-07-26 23:07:47 -07:00
|
|
|
# pragma mark Navigation
|
2012-07-11 20:19:42 -07:00
|
|
|
|
2012-07-21 15:59:10 -07:00
|
|
|
- (IBAction)tapSegmentedButton:(id)sender {
|
2013-09-25 17:43:00 -07:00
|
|
|
NSInteger selectedSegmentIndex = [self.segmentedButton selectedSegmentIndex];
|
2012-07-21 15:59:10 -07:00
|
|
|
|
2014-02-10 19:21:53 -08:00
|
|
|
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
|
|
|
|
if (selectedSegmentIndex == 0) {
|
|
|
|
self.storiesModule.view.hidden = NO;
|
|
|
|
self.interactionsModule.hidden = YES;
|
|
|
|
self.activitiesModule.hidden = YES;
|
|
|
|
} else if (selectedSegmentIndex == 1) {
|
2014-02-13 17:18:29 -08:00
|
|
|
[self refreshInteractions];
|
2014-02-10 19:21:53 -08:00
|
|
|
self.storiesModule.view.hidden = YES;
|
|
|
|
self.interactionsModule.hidden = NO;
|
|
|
|
self.activitiesModule.hidden = YES;
|
|
|
|
} else if (selectedSegmentIndex == 2) {
|
2014-02-13 17:18:29 -08:00
|
|
|
[self refreshActivity];
|
2014-02-10 19:21:53 -08:00
|
|
|
self.storiesModule.view.hidden = YES;
|
|
|
|
self.interactionsModule.hidden = YES;
|
|
|
|
self.activitiesModule.hidden = NO;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if (selectedSegmentIndex == 0) {
|
|
|
|
self.interactionsModule.hidden = NO;
|
|
|
|
self.activitiesModule.hidden = YES;
|
|
|
|
} else if (selectedSegmentIndex == 1) {
|
|
|
|
self.interactionsModule.hidden = YES;
|
|
|
|
self.activitiesModule.hidden = NO;
|
|
|
|
}
|
2012-07-21 15:59:10 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-02-10 19:21:53 -08:00
|
|
|
#pragma mark - Stories
|
|
|
|
|
|
|
|
- (void)refreshStories {
|
2014-02-24 18:56:51 -08:00
|
|
|
[appDelegate.cachedStoryImages removeAllObjects:^(TMCache *cache) {
|
2014-03-05 16:03:26 -08:00
|
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
|
[appDelegate loadRiverFeedDetailView:self.storiesModule withFolder:@"everything"];
|
|
|
|
});
|
2014-02-10 19:21:53 -08:00
|
|
|
}];
|
|
|
|
}
|
|
|
|
|
2012-07-11 20:19:42 -07:00
|
|
|
# pragma mark
|
2012-07-26 23:07:47 -07:00
|
|
|
# pragma mark Interactions
|
2012-07-11 20:19:42 -07:00
|
|
|
|
2012-07-26 23:07:47 -07:00
|
|
|
- (void)refreshInteractions {
|
2013-02-22 12:13:01 -08:00
|
|
|
appDelegate.userInteractionsArray = nil;
|
|
|
|
[self.interactionsModule.interactionsTable reloadData];
|
|
|
|
[self.interactionsModule.interactionsTable scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
|
2013-09-12 16:40:23 -07:00
|
|
|
[self.interactionsModule fetchInteractionsDetail:1];
|
2012-07-11 18:08:07 -07:00
|
|
|
}
|
|
|
|
|
2012-07-26 23:07:47 -07:00
|
|
|
# pragma mark
|
|
|
|
# pragma mark Activities
|
2012-07-16 22:35:28 -07:00
|
|
|
|
2012-07-26 23:07:47 -07:00
|
|
|
- (void)refreshActivity {
|
2013-02-22 12:13:01 -08:00
|
|
|
appDelegate.userActivitiesArray = nil;
|
|
|
|
[self.activitiesModule.activitiesTable reloadData];
|
|
|
|
[self.activitiesModule.activitiesTable scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
|
2012-07-26 23:07:47 -07:00
|
|
|
[self.activitiesModule fetchActivitiesDetail:1];
|
2012-07-11 18:08:07 -07:00
|
|
|
}
|
|
|
|
|
2012-07-21 18:56:25 -07:00
|
|
|
# pragma mark
|
|
|
|
# pragma mark Feedback
|
|
|
|
|
|
|
|
- (BOOL)webView:(UIWebView *)webView
|
|
|
|
shouldStartLoadWithRequest:(NSURLRequest *)request
|
|
|
|
navigationType:(UIWebViewNavigationType)navigationType {
|
|
|
|
NSURL *url = [request URL];
|
|
|
|
NSString *urlString = [NSString stringWithFormat:@"%@", url];
|
|
|
|
|
|
|
|
if ([urlString isEqualToString: FEEDBACK_URL]){
|
|
|
|
return YES;
|
|
|
|
} else {
|
|
|
|
return NO;
|
|
|
|
}
|
|
|
|
}
|
2012-07-21 15:59:10 -07:00
|
|
|
@end
|