NewsBlur/media/ios/Classes/AuthorizeServicesViewController.m

133 lines
4.6 KiB
Mathematica
Raw Normal View History

2012-08-10 21:10:32 -07:00
//
// AuthorizeServicesViewController.m
// NewsBlur
//
// Created by Roy Yang on 8/10/12.
// Copyright (c) 2012 NewsBlur. All rights reserved.
//
#import "AuthorizeServicesViewController.h"
#import "NewsBlurAppDelegate.h"
#import "FirstTimeUserAddSitesViewController.h"
#import "FirstTimeUserAddFriendsViewController.h"
@implementation AuthorizeServicesViewController
@synthesize appDelegate;
@synthesize webView;
@synthesize url;
@synthesize type;
@synthesize fromStory;
2012-08-10 21:10:32 -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.
self.appDelegate = (NewsBlurAppDelegate *)[[UIApplication sharedApplication] delegate];
self.webView.delegate = self;
}
- (void)viewDidUnload {
[self setWebView:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)viewWillAppear:(BOOL)animated {
2012-08-12 16:50:34 -07:00
if ([type isEqualToString:@"google"]) {
self.navigationItem.title = @"Google Reader";
} else if ([type isEqualToString:@"facebook"]) {
self.navigationItem.title = @"Facebook";
} else if ([type isEqualToString:@"twitter"]) {
2013-03-04 18:21:10 -08:00
self.navigationItem.title = @"Twitter";
} else if ([type isEqualToString:@"appdotnet"]) {
self.navigationItem.title = @"App.net";
}
2012-08-10 21:10:32 -07:00
NSString *urlAddress = [NSString stringWithFormat:@"http://%@%@", NEWSBLUR_URL, url];
NSURL *fullUrl = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:fullUrl];
[self.webView loadRequest:requestObj];
2013-03-05 08:49:37 -08:00
if (self.fromStory) {
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]
initWithTitle: @"Cancel"
style: UIBarButtonSystemItemCancel
target: self
action: @selector(doCancelButton)];
self.navigationItem.leftBarButtonItem = cancelButton;
self.view.frame = CGRectMake(0, 0, 320, 416);
self.contentSizeForViewInPopover = self.view.frame.size;
}
2012-08-10 21:10:32 -07:00
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
2013-03-05 08:49:37 -08:00
- (void)doCancelButton {
[appDelegate.modalNavigationController dismissModalViewControllerAnimated:YES];
}
2012-08-10 21:10:32 -07:00
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSString *URLString = [[request URL] absoluteString];
NSLog(@"URL STRING IS %@", URLString);
if ([URLString isEqualToString:[NSString stringWithFormat:@"http://%@/", NEWSBLUR_URL]]) {
2012-08-12 20:09:45 -07:00
NSString *error = [self.webView stringByEvaluatingJavaScriptFromString:@"NEWSBLUR.error"];
if (self.fromStory) {
[appDelegate refreshUserProfile:^{
[self.navigationController popViewControllerAnimated:YES];
}];
} else {
[self.navigationController popViewControllerAnimated:YES];
if ([type isEqualToString:@"google"]) {
if (error.length) {
[appDelegate.firstTimeUserAddSitesViewController importFromGoogleReaderFailed:error];
} else {
[appDelegate.firstTimeUserAddSitesViewController importFromGoogleReader];
}
} else if ([type isEqualToString:@"facebook"]) {
if (error.length) {
[self showError:error];
} else {
[appDelegate.firstTimeUserAddFriendsViewController selectFacebookButton];
}
} else if ([type isEqualToString:@"twitter"]) {
if (error.length) {
[self showError:error];
} else {
[appDelegate.firstTimeUserAddFriendsViewController selectTwitterButton];
}
2012-08-12 20:09:45 -07:00
}
2012-08-10 21:10:32 -07:00
}
return NO;
}
// // for failed google reader authorization
// if ([URLString hasPrefix:[NSString stringWithFormat:@"http://%@/import/callback", NEWSBLUR_URL]]) {
// [self.navigationController popViewControllerAnimated:YES];
// [appDelegate.firstTimeUserAddSitesViewController importFromGoogleReaderFailed];
// return NO;
// }
2012-08-11 18:03:28 -07:00
2012-08-10 21:10:32 -07:00
return YES;
}
2012-08-12 20:09:45 -07:00
- (void)showError:(NSString *)error {
[appDelegate.firstTimeUserAddFriendsViewController changeMessaging:error];
2012-08-12 20:09:45 -07:00
}
2012-08-10 21:10:32 -07:00
@end