Skip to content
Browse files

Wire up the app with the oauth client.

  • Loading branch information...
1 parent 319f5c1 commit 04a32137e3c483bb64f8f35061e8b59530c5e346 @lukeredpath committed Jun 1, 2010
View
11 Classes/LROAuth2DemoViewController.h
@@ -8,9 +8,18 @@
#import <UIKit/UIKit.h>
-@interface LROAuth2DemoViewController : UITableViewController {
+@class LROAuth2AccessToken;
+@class OAuthRequestController;
+@interface LROAuth2DemoViewController : UITableViewController {
+ LROAuth2AccessToken *accessToken;
+ OAuthRequestController *oauthController;
}
+@property (nonatomic, retain) LROAuth2AccessToken *accessToken;
+- (void)saveAccessTokenToDisk;
+- (void)beginAuthorization;
+- (void)refreshAccessToken;
+- (void)loadFacebookFriends;
@end
View
106 Classes/LROAuth2DemoViewController.m
@@ -6,56 +6,100 @@
// Copyright LJR Software Limited 2010. All rights reserved.
//
-#import "LROAuth2DemoViewController.h"
+#import "LROAuth2DemoViewController.h"
+#import "LROAuth2AccessToken.h"
+#import "OAuthRequestController.h"
+
+NSString * AccessTokenSavePath() {
+ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
+ return [[paths objectAtIndex:0] stringByAppendingPathComponent:@"OAuthAccessToken.cache"];
+}
@implementation LROAuth2DemoViewController
+@synthesize accessToken;
+
+- (void)viewDidLoad
+{
+ [super viewDidLoad];
+
+ /*
+ * OAuthRequestController will post notifications when it has received/refreshed an access token,
+ * we'll use those to keep track of the OAuth authentication process and update the UI
+ */
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(didReceiveAccessToken:) name:OAuthReceivedAccessTokenNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(didRefreshAccessToken:) name:OAuthRefreshedAccessTokenNotification object:nil];
+}
-/*
-// The designated initializer. Override to perform setup that is required before the view is loaded.
-- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
- if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
- // Custom initialization
+- (void)viewDidAppear:(BOOL)animated
+{
+ // try and load an existing access token from disk
+ self.accessToken = [NSKeyedUnarchiver unarchiveObjectWithFile:AccessTokenSavePath()];
+
+ // check if we have a valid access token before continuing otherwise obtain/refresh a token
+ if (self.accessToken == nil) {
+ [self beginAuthorization];
+ } else {
+ if ([self.accessToken hasExpired]) {
+ //[self refreshAccessToken];
+ } else {
+ [self loadFacebookFriends];
}
- return self;
+ }
}
-*/
-/*
-// Implement loadView to create a view hierarchy programmatically, without using a nib.
-- (void)loadView {
+- (void)dealloc
+{
+ [accessToken release];
+ [super dealloc];
}
-*/
+- (void)didReceiveAccessToken:(NSNotification *)note;
+{
+ self.accessToken = (LROAuth2AccessToken *)note.object;
+
+ [self dismissModalViewControllerAnimated:YES];
+ [self saveAccessTokenToDisk];
+ [self loadFacebookFriends];
+}
-/*
-// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
-- (void)viewDidLoad {
- [super viewDidLoad];
+- (void)didRefreshAccessToken:(NSNotification *)note;
+{
+ self.accessToken = (LROAuth2AccessToken *)note.object;
+
+ [self saveAccessTokenToDisk];
+ [self loadFacebookFriends];
}
-*/
+#pragma mark -
-// Override to allow orientations other than the default portrait orientation.
-- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
- return YES;
+- (void)saveAccessTokenToDisk;
+{
+ [NSKeyedArchiver archiveRootObject:self.accessToken toFile:AccessTokenSavePath()];
}
-- (void)didReceiveMemoryWarning {
- // Releases the view if it doesn't have a superview.
- [super didReceiveMemoryWarning];
-
- // Release any cached data, images, etc that aren't in use.
+- (void)beginAuthorization;
+{
+ if (oauthController == nil) {
+ oauthController = [[OAuthRequestController alloc] init];
+ }
+ [self presentModalViewController:oauthController animated:YES];
+ [oauthController release];
}
-- (void)viewDidUnload {
- // Release any retained subviews of the main view.
- // e.g. self.myOutlet = nil;
+- (void)refreshAccessToken;
+{
+ if (oauthController == nil) {
+ oauthController = [[OAuthRequestController alloc] init];
+ }
+ [oauthController refreshAccessToken:self.accessToken];
}
-
-- (void)dealloc {
- [super dealloc];
+- (void)loadFacebookFriends;
+{
+
}
@end
View
25 Classes/OAuthRequestController.h
@@ -0,0 +1,25 @@
+//
+// OAuthRequestController.h
+// LROAuth2Demo
+//
+// Created by Luke Redpath on 01/06/2010.
+// Copyright 2010 LJR Software Limited. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "LROAuth2ClientDelegate.h"
+
+@class LROAuth2Client;
+@class LROAuth2AccessToken;
+
+extern NSString *const OAuthReceivedAccessTokenNotification;
+extern NSString *const OAuthRefreshedAccessTokenNotification;
+
+@interface OAuthRequestController : UIViewController <LROAuth2ClientDelegate> {
+ LROAuth2Client *oauthClient;
+ UIWebView *webView;
+}
+@property (nonatomic, retain) IBOutlet UIWebView *webView;
+
+- (void)refreshAccessToken:(LROAuth2AccessToken *)accessToken;
+@end
View
81 Classes/OAuthRequestController.m
@@ -0,0 +1,81 @@
+//
+// OAuthRequestController.m
+// LROAuth2Demo
+//
+// Created by Luke Redpath on 01/06/2010.
+// Copyright 2010 LJR Software Limited. All rights reserved.
+//
+
+#import "OAuthRequestController.h"
+#import "LROAuth2Client.h"
+
+/*
+ * you will need to create this from OAuthCredentials-Example.h
+ *
+ */
+#import "OAuthCredentials.h"
+
+NSString *const OAuthReceivedAccessTokenNotification = @"OAuthReceivedAccessTokenNotification";
+NSString *const OAuthRefreshedAccessTokenNotification = @"OAuthRefreshedAccessTokenNotification";
+
+@implementation OAuthRequestController
+
+@synthesize webView;
+
+- (id)init;
+{
+ if (self = [super initWithNibName:@"OAuthRequestController" bundle:nil]) {
+ oauthClient = [[LROAuth2Client alloc] initWithClientID:kOAuthClientID
+ secret:kOAuthClientSecret redirectURL:[NSURL URLWithString:kOAuthClientAuthURL]];
+
+ oauthClient.debug = YES;
+ oauthClient.delegate = self;
+ oauthClient.userURL = [NSURL URLWithString:@"https://graph.facebook.com/oauth/authorize"];
+ oauthClient.tokenURL = [NSURL URLWithString:@"https://graph.facebook.com/oauth/access_token"];
+
+ self.modalPresentationStyle = UIModalPresentationFullScreen;
+ self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
+ }
+ return self;
+}
+
+- (void)viewDidUnload
+{
+ [super viewDidUnload];
+ self.webView = nil;
+}
+
+- (void)viewDidAppear:(BOOL)animated
+{
+ [oauthClient authorizeUsingWebView:self.webView];
+}
+
+- (void)dealloc
+{
+ oauthClient.delegate = nil;
+ webView.delegate = nil;
+
+ [webView release];
+ [oauthClient release];
+ [super dealloc];
+}
+
+- (void)refreshAccessToken:(LROAuth2AccessToken *)accessToken
+{
+ [oauthClient refreshAccessToken:accessToken];
+}
+
+#pragma mark -
+#pragma mark LROAuth2ClientDelegate methods
+
+- (void)oauthClientDidReceiveAccessToken:(LROAuth2Client *)client
+{
+ [[NSNotificationCenter defaultCenter] postNotificationName:OAuthReceivedAccessTokenNotification object:client.accessToken];
+}
+
+- (void)oauthClientDidRefreshAccessToken:(LROAuth2Client *)client
+{
+ [[NSNotificationCenter defaultCenter] postNotificationName:OAuthRefreshedAccessTokenNotification object:client.accessToken];
+}
+
+@end
View
458 Classes/OAuthRequestController.xib
@@ -0,0 +1,458 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">800</int>
+ <string key="IBDocument.SystemVersion">10D2094</string>
+ <string key="IBDocument.InterfaceBuilderVersion">762</string>
+ <string key="IBDocument.AppKitVersion">1038.29</string>
+ <string key="IBDocument.HIToolboxVersion">460.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">87</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="4"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="975951072">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="819480699">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUINavigationBar" id="19563765">
+ <reference key="NSNextResponder" ref="819480699"/>
+ <int key="NSvFlags">290</int>
+ <string key="NSFrameSize">{590, 44}</string>
+ <reference key="NSSuperview" ref="819480699"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSArray" key="IBUIItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUINavigationItem" id="627842233">
+ <reference key="IBUINavigationBar" ref="19563765"/>
+ <string key="IBUITitle">Connect to your Facebook account</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBUIWebView" id="638400303">
+ <reference key="NSNextResponder" ref="819480699"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrame">{{0, 44}, {590, 430}}</string>
+ <reference key="NSSuperview" ref="819480699"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MSAxIDEAA</bytes>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIDataDetectorTypes">1</int>
+ <bool key="IBUIDetectsPhoneNumbers">YES</bool>
+ </object>
+ </object>
+ <string key="NSFrameSize">{590, 467}</string>
+ <reference key="NSSuperview"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">webView</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="638400303"/>
+ </object>
+ <int key="connectionID">8</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="819480699"/>
+ </object>
+ <int key="connectionID">9</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="975951072"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">4</int>
+ <reference key="object" ref="819480699"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="19563765"/>
+ <reference ref="638400303"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">5</int>
+ <reference key="object" ref="19563765"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="627842233"/>
+ </object>
+ <reference key="parent" ref="819480699"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="627842233"/>
+ <reference key="parent" ref="19563765"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">7</int>
+ <reference key="object" ref="638400303"/>
+ <reference key="parent" ref="819480699"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>4.IBEditorWindowLastContentRect</string>
+ <string>4.IBPluginDependency</string>
+ <string>5.IBPluginDependency</string>
+ <string>6.IBPluginDependency</string>
+ <string>7.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>OAuthRequestController</string>
+ <string>UIResponder</string>
+ <string>{{473, 474}, {590, 467}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">9</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">OAuthRequestController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">webView</string>
+ <string key="NS.object.0">UIWebView</string>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Classes/OAuthRequestController.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSPort.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSStream.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="189232854">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIBarButtonItem</string>
+ <string key="superclassName">UIBarItem</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIBarItem</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UINavigationBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="550745394">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UINavigationItem</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="550745394"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="189232854"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIWebView</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIWebView.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="800" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../LROAuth2Demo.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">87</string>
+ </data>
+</archive>
View
14 LROAuth2Demo.xcodeproj/project.pbxproj
@@ -54,6 +54,8 @@
A3B6F5F211B54FA300533386 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3B6F5F111B54FA300533386 /* CFNetwork.framework */; };
A3B6F5F711B54FB500533386 /* libz.1.2.3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A3B6F5F611B54FB500533386 /* libz.1.2.3.dylib */; };
A3B6F61111B5502600533386 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3B6F61011B5502600533386 /* MobileCoreServices.framework */; };
+ A3B6F63D11B550ED00533386 /* OAuthRequestController.m in Sources */ = {isa = PBXBuildFile; fileRef = A3B6F63B11B550ED00533386 /* OAuthRequestController.m */; };
+ A3B6F63E11B550ED00533386 /* OAuthRequestController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A3B6F63C11B550ED00533386 /* OAuthRequestController.xib */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
@@ -148,6 +150,11 @@
A3B6F5F111B54FA300533386 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
A3B6F5F611B54FB500533386 /* libz.1.2.3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.1.2.3.dylib; path = usr/lib/libz.1.2.3.dylib; sourceTree = SDKROOT; };
A3B6F61011B5502600533386 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
+ A3B6F63A11B550ED00533386 /* OAuthRequestController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OAuthRequestController.h; sourceTree = "<group>"; };
+ A3B6F63B11B550ED00533386 /* OAuthRequestController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OAuthRequestController.m; sourceTree = "<group>"; };
+ A3B6F63C11B550ED00533386 /* OAuthRequestController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = OAuthRequestController.xib; path = Classes/OAuthRequestController.xib; sourceTree = "<group>"; };
+ A3B6F64511B5517B00533386 /* OAuthCredentials-Example.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OAuthCredentials-Example.h"; sourceTree = "<group>"; };
+ A3B6F64611B5522D00533386 /* OAuthCredentials.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OAuthCredentials.h; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -202,15 +209,18 @@
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
isa = PBXGroup;
children = (
+ A3B6F64611B5522D00533386 /* OAuthCredentials.h */,
32CA4F630368D1EE00C91783 /* LROAuth2Demo_Prefix.pch */,
29B97316FDCFA39411CA2CEA /* main.m */,
+ A3B6F64511B5517B00533386 /* OAuthCredentials-Example.h */,
);
name = "Other Sources";
sourceTree = "<group>";
};
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
+ A3B6F63C11B550ED00533386 /* OAuthRequestController.xib */,
2899E5210DE3E06400AC0155 /* LROAuth2DemoViewController.xib */,
28AD733E0D9D9553002E5188 /* MainWindow.xib */,
8D1107310486CEB800E47090 /* LROAuth2Demo-Info.plist */,
@@ -381,6 +391,8 @@
children = (
28D7ACF60DDB3853001CB0EB /* LROAuth2DemoViewController.h */,
28D7ACF70DDB3853001CB0EB /* LROAuth2DemoViewController.m */,
+ A3B6F63A11B550ED00533386 /* OAuthRequestController.h */,
+ A3B6F63B11B550ED00533386 /* OAuthRequestController.m */,
);
name = Controllers;
sourceTree = "<group>";
@@ -429,6 +441,7 @@
files = (
28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */,
2899E5220DE3E06400AC0155 /* LROAuth2DemoViewController.xib in Resources */,
+ A3B6F63E11B550ED00533386 /* OAuthRequestController.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -477,6 +490,7 @@
A3B6F5C211B54EFD00533386 /* CJSONSerializer.m in Sources */,
A3B6F5C311B54EFD00533386 /* CSerializedJSONData.m in Sources */,
A3B6F5CA11B54F1100533386 /* Reachability.m in Sources */,
+ A3B6F63D11B550ED00533386 /* OAuthRequestController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
2 Vendor/LROAuth2Client
@@ -1 +1 @@
-Subproject commit 70ca403488bad5501f6466b65b76a5f1ec6c459d
+Subproject commit bb5a9fae5f568144277bfda90e108c714dde03fd

0 comments on commit 04a3213

Please sign in to comment.
Something went wrong with that request. Please try again.