mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-05 16:58:59 +00:00
174 lines
No EOL
5.4 KiB
Objective-C
174 lines
No EOL
5.4 KiB
Objective-C
//
|
|
// DashboardViewController.m
|
|
// NewsBlur
|
|
//
|
|
// Created by Roy Yang on 7/10/12.
|
|
// Copyright (c) 2012 NewsBlur. All rights reserved.
|
|
//
|
|
|
|
#import "DashboardViewController.h"
|
|
#import "NewsBlurAppDelegate.h"
|
|
#import "ActivityModule.h"
|
|
#import "InteractionsModule.h"
|
|
#import "UserProfileViewController.h"
|
|
#import "JSON.h"
|
|
|
|
#define FEEDBACK_URL @"http://dev.newsblur.com/about"
|
|
|
|
@implementation DashboardViewController
|
|
|
|
@synthesize appDelegate;
|
|
@synthesize interactionsModule;
|
|
@synthesize activitiesModule;
|
|
@synthesize feedbackWebView;
|
|
@synthesize toolbar;
|
|
@synthesize segmentedButton;
|
|
|
|
|
|
- (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.
|
|
self.toolbar.tintColor = [UIColor colorWithRed:0.16f green:0.36f blue:0.46 alpha:0.9];
|
|
self.interactionsModule.hidden = NO;
|
|
self.activitiesModule.hidden = YES;
|
|
self.feedbackWebView.hidden = YES;
|
|
self.feedbackWebView.delegate = self;
|
|
|
|
// preload feedback
|
|
self.feedbackWebView.scalesPageToFit = YES;
|
|
|
|
|
|
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];
|
|
}
|
|
|
|
- (void)viewDidUnload {
|
|
[self setAppDelegate:nil];
|
|
[self setInteractionsModule:nil];
|
|
[self setActivitiesModule:nil];
|
|
[self setToolbar:nil];
|
|
[self setSegmentedButton:nil];
|
|
[self setFeedbackWebView:nil];
|
|
[super viewDidUnload];
|
|
// Release any retained subviews of the main view.
|
|
// e.g. self.myOutlet = nil;
|
|
}
|
|
|
|
- (void)viewWillAppear:(BOOL)animated {
|
|
self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.16f green:0.36f blue:0.46 alpha:0.9];
|
|
|
|
CGRect frame = CGRectMake(0, 0, 400, 44);
|
|
UILabel *label = [[UILabel alloc] initWithFrame:frame];
|
|
label.backgroundColor = [UIColor clearColor];
|
|
label.font = [UIFont boldSystemFontOfSize:16.0];
|
|
label.textAlignment = UITextAlignmentCenter;
|
|
label.textColor = [UIColor whiteColor];
|
|
label.text = DASHBOARD_TITLE;
|
|
self.navigationItem.titleView = label;
|
|
}
|
|
|
|
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
|
return YES;
|
|
}
|
|
|
|
- (IBAction)doLogout:(id)sender {
|
|
[appDelegate confirmLogout];
|
|
}
|
|
|
|
# pragma mark
|
|
# pragma mark Interactions
|
|
|
|
- (void)refreshInteractions {
|
|
[self.interactionsModule fetchInteractionsDetail:1];
|
|
}
|
|
|
|
- (void)requestFailed:(ASIHTTPRequest *)request {
|
|
NSLog(@"Error in finishLoadInteractions is %@", [request error]);
|
|
}
|
|
|
|
- (IBAction)tapSegmentedButton:(id)sender {
|
|
int selectedSegmentIndex = [self.segmentedButton selectedSegmentIndex];
|
|
|
|
if (selectedSegmentIndex == 0) {
|
|
self.interactionsModule.hidden = NO;
|
|
self.activitiesModule.hidden = YES;
|
|
self.feedbackWebView.hidden = YES;
|
|
} else if (selectedSegmentIndex == 1) {
|
|
self.interactionsModule.hidden = YES;
|
|
self.activitiesModule.hidden = NO;
|
|
self.feedbackWebView.hidden = YES;
|
|
} else if (selectedSegmentIndex == 2) {
|
|
self.interactionsModule.hidden = YES;
|
|
self.activitiesModule.hidden = YES;
|
|
self.feedbackWebView.hidden = NO;
|
|
}
|
|
}
|
|
|
|
# pragma mark
|
|
# pragma mark Activities
|
|
|
|
- (void)refreshActivity {
|
|
NSString *urlString = [NSString stringWithFormat:@"http://%@/social/activities?user_id=%@&limit=10",
|
|
NEWSBLUR_URL,
|
|
[appDelegate.dictUserProfile objectForKey:@"user_id"]];
|
|
NSURL *url = [NSURL URLWithString:urlString];
|
|
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
|
|
[request setDidFinishSelector:@selector(finishLoadActivities:)];
|
|
[request setDidFailSelector:@selector(requestFailed:)];
|
|
[request setDelegate:self];
|
|
[request startAsynchronous];
|
|
}
|
|
|
|
- (void)finishLoadActivities:(ASIHTTPRequest *)request {
|
|
NSString *responseString = [request responseString];
|
|
NSDictionary *results = [[NSDictionary alloc]
|
|
initWithDictionary:[responseString JSONValue]];
|
|
|
|
appDelegate.dictUserActivities = results;
|
|
|
|
if (self.activitiesModule == nil) {
|
|
ActivityModule *activity = [[ActivityModule alloc] init];
|
|
activity.frame = CGRectMake(20, 510, 320, 320);
|
|
self.activitiesModule = activity;
|
|
[self.view addSubview:self.activitiesModule];
|
|
}
|
|
|
|
NSArray *activities = [appDelegate.dictUserActivities objectForKey:@"activities"];
|
|
NSString *username = [appDelegate.dictUserActivities objectForKey:@"username"];
|
|
if (!username) {
|
|
username = [[appDelegate.dictUserActivities objectForKey:@"user_profile"] objectForKey:@"username"];
|
|
}
|
|
|
|
[self.activitiesModule refreshWithActivities:activities withUsername:username];
|
|
|
|
}
|
|
|
|
# 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;
|
|
}
|
|
}
|
|
@end |