Merge lp:~rockstar/ubuntuone-ios-music/simplify-view-controller into lp:ubuntuone-ios-music

Proposed by Paul Hummer
Status: Merged
Approved by: Zachery Bir
Approved revision: 265
Merged at revision: 238
Proposed branch: lp:~rockstar/ubuntuone-ios-music/simplify-view-controller
Merge into: lp:ubuntuone-ios-music
Prerequisite: lp:~rockstar/ubuntuone-ios-music/pass-token
Diff against target: 636 lines (+143/-215)
7 files modified
Other Sources/U1MusicAppDelegate.m (+5/-5)
U1Music.xcodeproj/project.pbxproj (+0/-6)
view_controllers/UOMusicLoginController.h (+0/-31)
view_controllers/UOMusicLoginController.m (+0/-108)
view_controllers/UOSSOCredentialsViewController.h (+6/-1)
view_controllers/UOSSOCredentialsViewController.m (+45/-8)
view_controllers/UOSSOCredentialsViewController.xib (+87/-56)
To merge this branch: bzr merge lp:~rockstar/ubuntuone-ios-music/simplify-view-controller
Reviewer Review Type Date Requested Status
Zachery Bir Approve
Review via email: mp+125407@code.launchpad.net

Commit message

Simplify the view controllers for handling login.

Description of the change

We had two view controllers for handling login. Now we only have one. It's simpler, and everything still works the same way (though in testing, I discovered a bug in UbuntuOneAuthKit).

To post a comment you must log in.
Revision history for this message
Zachery Bir (urbanape) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Other Sources/U1MusicAppDelegate.m'
2--- Other Sources/U1MusicAppDelegate.m 2012-09-20 04:23:25 +0000
3+++ Other Sources/U1MusicAppDelegate.m 2012-09-20 04:23:26 +0000
4@@ -37,14 +37,14 @@
5 #import "StreamingPlayer.h"
6 #import "Subsonic.h"
7 #import "Song.h"
8-#import "UOMusicLoginController.h"
9 #import "URLQueryStringParser.h"
10 #import "U1CacheFileManager.h"
11 #import "U1LocalMusicServer.h"
12 #import "U1MigrationViewController.h"
13+#import "UOSSOCredentialsViewController.h"
14
15-@interface U1MusicAppDelegate () <UOMusicLoginControllerDelegate>
16-@property (retain) UOMusicLoginController *loginController;
17+@interface U1MusicAppDelegate () <UOSSOCredentialsViewControllerDelegate>
18+@property (retain) UOSSOCredentialsViewController *loginController;
19 @property (retain) U1LocalMusicServer *musicServer;
20 - (void)parseQueryCredentials:(NSURL*)anURL;
21 - (BOOL)configureUsernamePassword;
22@@ -176,9 +176,9 @@
23
24 - (void)presentLoginView;
25 {
26- self.loginController = [[UOMusicLoginController alloc] init];
27+ self.loginController = [[UOSSOCredentialsViewController alloc] init];
28 self.loginController.delegate = self;
29- [tabBarController presentModalViewController:self.loginController.loginViewController animated:YES];
30+ [tabBarController presentModalViewController:self.loginController animated:YES];
31 }
32
33 - (void)loginControllerDidLoginWithUsername:(NSString *)username;
34
35=== modified file 'U1Music.xcodeproj/project.pbxproj'
36--- U1Music.xcodeproj/project.pbxproj 2012-09-20 04:23:25 +0000
37+++ U1Music.xcodeproj/project.pbxproj 2012-09-20 04:23:26 +0000
38@@ -216,7 +216,6 @@
39 964FA3EA13CA848D0018A65B /* UOHTTPFetchOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3E913CA848D0018A65B /* UOHTTPFetchOperation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
40 9654C9BC13C7826900D0EEA0 /* UOSSOCredentialsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9654C9BA13C7826900D0EEA0 /* UOSSOCredentialsViewController.m */; };
41 9654C9BD13C7826900D0EEA0 /* UOSSOCredentialsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9654C9BB13C7826900D0EEA0 /* UOSSOCredentialsViewController.xib */; };
42- 9654C9C713C7AF9200D0EEA0 /* UOMusicLoginController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9654C9C613C7AF9200D0EEA0 /* UOMusicLoginController.m */; };
43 9674C2C513A7DC01004509E4 /* UORadialProgressControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 9674C2C413A7DC01004509E4 /* UORadialProgressControl.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
44 96E01B3714E1BDAF00A9F36C /* U1StreamPipe.m in Sources */ = {isa = PBXBuildFile; fileRef = 96E01B3614E1BDAF00A9F36C /* U1StreamPipe.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
45 96FB790A13AA628700D8D4A4 /* UONetworkStatusCoordinator.m in Sources */ = {isa = PBXBuildFile; fileRef = 96FB790913AA628700D8D4A4 /* UONetworkStatusCoordinator.m */; };
46@@ -577,8 +576,6 @@
47 9654C9B913C7826900D0EEA0 /* UOSSOCredentialsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UOSSOCredentialsViewController.h; sourceTree = "<group>"; };
48 9654C9BA13C7826900D0EEA0 /* UOSSOCredentialsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UOSSOCredentialsViewController.m; sourceTree = "<group>"; };
49 9654C9BB13C7826900D0EEA0 /* UOSSOCredentialsViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UOSSOCredentialsViewController.xib; sourceTree = "<group>"; };
50- 9654C9C513C7AF9200D0EEA0 /* UOMusicLoginController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UOMusicLoginController.h; sourceTree = "<group>"; };
51- 9654C9C613C7AF9200D0EEA0 /* UOMusicLoginController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UOMusicLoginController.m; sourceTree = "<group>"; };
52 9674C2C313A7DC01004509E4 /* UORadialProgressControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UORadialProgressControl.h; sourceTree = "<group>"; };
53 9674C2C413A7DC01004509E4 /* UORadialProgressControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UORadialProgressControl.m; sourceTree = "<group>"; };
54 96E01B3514E1BDAF00A9F36C /* U1StreamPipe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = U1StreamPipe.h; sourceTree = "<group>"; };
55@@ -1192,8 +1189,6 @@
56 9654C9B913C7826900D0EEA0 /* UOSSOCredentialsViewController.h */,
57 9654C9BA13C7826900D0EEA0 /* UOSSOCredentialsViewController.m */,
58 9654C9BB13C7826900D0EEA0 /* UOSSOCredentialsViewController.xib */,
59- 9654C9C513C7AF9200D0EEA0 /* UOMusicLoginController.h */,
60- 9654C9C613C7AF9200D0EEA0 /* UOMusicLoginController.m */,
61 );
62 name = SSO;
63 sourceTree = "<group>";
64@@ -1464,7 +1459,6 @@
65 9674C2C513A7DC01004509E4 /* UORadialProgressControl.m in Sources */,
66 96FB790A13AA628700D8D4A4 /* UONetworkStatusCoordinator.m in Sources */,
67 9654C9BC13C7826900D0EEA0 /* UOSSOCredentialsViewController.m in Sources */,
68- 9654C9C713C7AF9200D0EEA0 /* UOMusicLoginController.m in Sources */,
69 964FA3EA13CA848D0018A65B /* UOHTTPFetchOperation.m in Sources */,
70 96377AEE14E0726800517845 /* U1Descriptor.m in Sources */,
71 96377AF314E0730B00517845 /* U1StreamReader.m in Sources */,
72
73=== removed file 'view_controllers/UOMusicLoginController.h'
74--- view_controllers/UOMusicLoginController.h 2011-07-12 21:35:15 +0000
75+++ view_controllers/UOMusicLoginController.h 1970-01-01 00:00:00 +0000
76@@ -1,31 +0,0 @@
77-//
78-// Copyright 2011 Canonical Ltd.
79-//
80-// This program is free software: you can redistribute it and/or modify it
81-// under the terms of the GNU Affero General Public License version 3,
82-// as published by the Free Software Foundation.
83-//
84-// This program is distributed in the hope that it will be useful, but
85-// WITHOUT ANY WARRANTY; without even the implied warranties of
86-// MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
87-// PURPOSE. See the GNU Affero General Public License for more details.
88-//
89-// You should have received a copy of the GNU Affero General Public License
90-// along with this program. If not, see <http://www.gnu.org/licenses/>.
91-
92-#import <UIKit/UIKit.h>
93-
94-
95-@protocol UOMusicLoginControllerDelegate;
96-
97-
98-@interface UOMusicLoginController : NSObject
99-@property (assign) id<UOMusicLoginControllerDelegate> delegate;
100-@property (readonly, retain) UIViewController *loginViewController;
101-@end
102-
103-
104-@protocol UOMusicLoginControllerDelegate <NSObject>
105-@required
106-- (void)loginControllerDidLoginWithUsername:(NSString *)username;
107-@end
108
109=== removed file 'view_controllers/UOMusicLoginController.m'
110--- view_controllers/UOMusicLoginController.m 2012-09-20 04:23:25 +0000
111+++ view_controllers/UOMusicLoginController.m 1970-01-01 00:00:00 +0000
112@@ -1,108 +0,0 @@
113-//
114-// Copyright 2011 Canonical Ltd.
115-//
116-// This program is free software: you can redistribute it and/or modify it
117-// under the terms of the GNU Affero General Public License version 3,
118-// as published by the Free Software Foundation.
119-//
120-// This program is distributed in the hope that it will be useful, but
121-// WITHOUT ANY WARRANTY; without even the implied warranties of
122-// MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
123-// PURPOSE. See the GNU Affero General Public License for more details.
124-//
125-// You should have received a copy of the GNU Affero General Public License
126-// along with this program. If not, see <http://www.gnu.org/licenses/>.
127-
128-#import "UOMusicLoginController.h"
129-#import "UOSSOCredentialsViewController.h"
130-
131-#import "UOAuthManager.h"
132-
133-@implementation UOMusicLoginController
134-
135-@synthesize delegate, loginViewController;
136-
137-- (id)init;
138-{
139- if (!(self = [super init]))
140- return nil;
141-
142- UOSSOCredentialsViewController *rootController = [[UOSSOCredentialsViewController alloc] initWithNibName:@"UOSSOCredentialsViewController" bundle:nil];
143-
144- __block id this = self;
145- rootController.loginAction = ^ (NSString *username, NSString *password)
146- {
147- [this loginWithUsername:username password:password];
148- };
149-
150- UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootController];
151- navController.navigationBar.barStyle = UIBarStyleBlack;
152- navController.navigationBarHidden = YES;
153- loginViewController = navController;
154-
155- return self;
156-}
157-
158-- (void)dealloc
159-{
160- delegate = nil;
161-}
162-
163-- (void)loginWithUsername:(NSString*)username password:(NSString*)password;
164-{
165- [self.loginViewController.view setUserInteractionEnabled:NO];
166-
167- UOAuthManager *authManager = [UOAuthManager sharedAuthManager];
168- id completionBlock = ^(){
169- id subsonicCompletionBlock = ^(NSString *username) {
170- [self.delegate loginControllerDidLoginWithUsername:username];
171- };
172- id subsonicErrorBlock = ^(NSError *error) {
173- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Ubuntu One", nil) message:[error localizedDescription] delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
174- [alert show];
175- [self.loginViewController.view setUserInteractionEnabled:YES];
176- UOSSOCredentialsViewController *loginController = (id)[(UINavigationController*)[self loginViewController] topViewController];
177- [loginController reset];
178- };
179- [authManager fetchSubsonicCredentials:subsonicCompletionBlock errorBlock:subsonicErrorBlock];
180- };
181- id errorBlock = ^(NSError *error) {
182- NSString *errorMessage = nil;[error localizedDescription];
183- switch (error.code) {
184- case 401:
185- errorMessage = NSLocalizedString(@"Incorrect username or password.", nil);
186- break;
187- default:
188- errorMessage = [error localizedDescription];
189- if (errorMessage == nil) {
190- errorMessage = NSLocalizedString(@"An error occured trying to sign in, please try again.", @"Login Error Message");
191- }
192- break;
193- }
194- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Ubuntu One", nil) message:errorMessage delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
195- [alert show];
196- [self.loginViewController.view setUserInteractionEnabled:YES];
197- UOSSOCredentialsViewController *loginController = (id)[(UINavigationController*)[self loginViewController] topViewController];
198- [loginController reset];
199- };
200- NSString *tokenName = @"Ubuntu One @ iOS";
201- [authManager loginWithUsername:username andPassword:password tokenName:tokenName completionBlock:completionBlock errorBlock:errorBlock];
202-}
203-
204-@end
205-
206-
207-static NSString *UOSSOEncodedStringFromParametersDictionary(NSDictionary *arguments)
208-{
209- NSMutableArray *encodedArguments = [NSMutableArray array];
210- [arguments enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL *stop) {
211- if (![key isEqualToString:@"ws.op"]) {
212- value = [NSString stringWithFormat:@"\"%@\"", value];
213- }
214- value = [value urlParameterEncodedString];
215- NSString *argumentPair = [key stringByAppendingFormat:@"=%@", value];
216- [encodedArguments addObject:argumentPair];
217- }];
218-
219- return [encodedArguments componentsJoinedByString:@"&"];
220-}
221
222=== modified file 'view_controllers/UOSSOCredentialsViewController.h'
223--- view_controllers/UOSSOCredentialsViewController.h 2012-09-20 04:23:25 +0000
224+++ view_controllers/UOSSOCredentialsViewController.h 2012-09-20 04:23:26 +0000
225@@ -15,6 +15,10 @@
226
227 #import <UIKit/UIKit.h>
228
229+@protocol UOSSOCredentialsViewControllerDelegate <NSObject>
230+@required
231+- (void)loginControllerDidLoginWithUsername:(NSString *)username;
232+@end
233
234 @interface UOSSOCredentialsViewController : UIViewController <UITextFieldDelegate>
235
236@@ -23,9 +27,10 @@
237 @property (nonatomic, retain) IBOutlet UIView *patternView;
238 @property (nonatomic, retain) IBOutlet UIActivityIndicatorView *spinner;
239 @property (nonatomic, retain) IBOutlet UIButton *loginButton;
240-@property (nonatomic, copy) void (^loginAction)(NSString *username, NSString *password);
241
242 - (IBAction)logIn:(id)sender;
243 - (void)reset;
244
245+@property (assign) id<UOSSOCredentialsViewControllerDelegate> delegate;
246+
247 @end
248
249=== modified file 'view_controllers/UOSSOCredentialsViewController.m'
250--- view_controllers/UOSSOCredentialsViewController.m 2012-09-20 04:23:25 +0000
251+++ view_controllers/UOSSOCredentialsViewController.m 2012-09-20 04:23:26 +0000
252@@ -14,6 +14,7 @@
253 // along with this program. If not, see <http://www.gnu.org/licenses/>.
254
255 #import "UOSSOCredentialsViewController.h"
256+#import "UOAuthManager.h"
257
258
259 @implementation UOSSOCredentialsViewController
260@@ -23,7 +24,6 @@
261 @synthesize patternView;
262 @synthesize spinner;
263 @synthesize loginButton;
264-@synthesize loginAction;
265
266 - (void)viewDidUnload;
267 {
268@@ -49,13 +49,11 @@
269 {
270 [self.emailField resignFirstResponder];
271 [self.passwordField resignFirstResponder];
272- if (self.loginAction)
273- {
274- NSString *username = [self.emailField text];
275- NSString *password = [self.passwordField text];
276- self.loginAction(username, password);
277- [self.spinner startAnimating];
278- }
279+
280+ NSString *username = [self.emailField text];
281+ NSString *password = [self.passwordField text];
282+ [self loginWithUsername:username password:password];
283+ [self.spinner startAnimating];
284 }
285
286 - (void)reset;
287@@ -63,4 +61,43 @@
288 [self.spinner stopAnimating];
289 }
290
291+- (void)loginWithUsername:(NSString*)username password:(NSString*)password;
292+{
293+ [self.view setUserInteractionEnabled:NO];
294+
295+ UOAuthManager *authManager = [UOAuthManager sharedAuthManager];
296+ id completionBlock = ^(){
297+ id subsonicCompletionBlock = ^(NSString *username) {
298+ [self.delegate loginControllerDidLoginWithUsername:username];
299+ };
300+ id subsonicErrorBlock = ^(NSError *error) {
301+ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Ubuntu One", nil) message:[error localizedDescription] delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
302+ [alert show];
303+ [self.view setUserInteractionEnabled:YES];
304+ [self reset];
305+ };
306+ [authManager fetchSubsonicCredentials:subsonicCompletionBlock errorBlock:subsonicErrorBlock];
307+ };
308+ id errorBlock = ^(NSError *error) {
309+ NSString *errorMessage = nil;[error localizedDescription];
310+ switch (error.code) {
311+ case 401:
312+ errorMessage = NSLocalizedString(@"Incorrect username or password.", nil);
313+ break;
314+ default:
315+ errorMessage = [error localizedDescription];
316+ if (errorMessage == nil) {
317+ errorMessage = NSLocalizedString(@"An error occured trying to sign in, please try again.", @"Login Error Message");
318+ }
319+ break;
320+ }
321+ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Ubuntu One", nil) message:errorMessage delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
322+ [alert show];
323+ [self.view setUserInteractionEnabled:YES];
324+ [self reset];
325+ };
326+ NSString *tokenName = @"Ubuntu One @ iOS";
327+ [authManager loginWithUsername:username andPassword:password tokenName:tokenName completionBlock:completionBlock errorBlock:errorBlock];
328+}
329+
330 @end
331
332=== modified file 'view_controllers/UOSSOCredentialsViewController.xib'
333--- view_controllers/UOSSOCredentialsViewController.xib 2011-08-03 18:34:14 +0000
334+++ view_controllers/UOSSOCredentialsViewController.xib 2012-09-20 04:23:26 +0000
335@@ -1,35 +1,32 @@
336 <?xml version="1.0" encoding="UTF-8"?>
337 <archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
338 <data>
339- <int key="IBDocument.SystemTarget">1056</int>
340- <string key="IBDocument.SystemVersion">10K540</string>
341- <string key="IBDocument.InterfaceBuilderVersion">1306</string>
342- <string key="IBDocument.AppKitVersion">1038.36</string>
343- <string key="IBDocument.HIToolboxVersion">461.00</string>
344+ <int key="IBDocument.SystemTarget">1536</int>
345+ <string key="IBDocument.SystemVersion">12C54</string>
346+ <string key="IBDocument.InterfaceBuilderVersion">2840</string>
347+ <string key="IBDocument.AppKitVersion">1187.34</string>
348+ <string key="IBDocument.HIToolboxVersion">625.00</string>
349 <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
350 <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
351- <string key="NS.object.0">301</string>
352+ <string key="NS.object.0">1926</string>
353 </object>
354 <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
355 <bool key="EncodedWithXMLCoder">YES</bool>
356- <string>IBUIView</string>
357 <string>IBProxyObject</string>
358+ <string>IBUIActivityIndicatorView</string>
359+ <string>IBUIButton</string>
360+ <string>IBUIImageView</string>
361 <string>IBUILabel</string>
362- <string>IBUIImageView</string>
363- <string>IBUIActivityIndicatorView</string>
364 <string>IBUITextField</string>
365- <string>IBUIButton</string>
366+ <string>IBUIView</string>
367 </object>
368 <object class="NSArray" key="IBDocument.PluginDependencies">
369 <bool key="EncodedWithXMLCoder">YES</bool>
370 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
371 </object>
372 <object class="NSMutableDictionary" key="IBDocument.Metadata">
373- <bool key="EncodedWithXMLCoder">YES</bool>
374- <object class="NSArray" key="dict.sortedKeys" id="0">
375- <bool key="EncodedWithXMLCoder">YES</bool>
376- </object>
377- <reference key="dict.values" ref="0"/>
378+ <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
379+ <integer value="1" key="NS.object.0"/>
380 </object>
381 <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
382 <bool key="EncodedWithXMLCoder">YES</bool>
383@@ -67,18 +64,24 @@
384 <int key="NSID">2</int>
385 </object>
386 </object>
387- <object class="NSFont" key="IBUIFont">
388+ <bool key="IBUIAdjustsFontSizeToFit">YES</bool>
389+ <float key="IBUIMinimumFontSize">17</float>
390+ <object class="IBUITextInputTraits" key="IBUITextInputTraits">
391+ <int key="IBUIAutocorrectionType">1</int>
392+ <int key="IBUIKeyboardType">7</int>
393+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
394+ </object>
395+ <object class="IBUIFontDescription" key="IBUIFontDescription">
396+ <string key="name">Helvetica</string>
397+ <string key="family">Helvetica</string>
398+ <int key="traits">0</int>
399+ <double key="pointSize">12</double>
400+ </object>
401+ <object class="NSFont" key="IBUIFont" id="884414828">
402 <string key="NSName">Helvetica</string>
403 <double key="NSSize">12</double>
404 <int key="NSfFlags">16</int>
405 </object>
406- <bool key="IBUIAdjustsFontSizeToFit">YES</bool>
407- <float key="IBUIMinimumFontSize">17</float>
408- <object class="IBUITextInputTraits" key="IBUITextInputTraits">
409- <int key="IBUIAutocorrectionType">1</int>
410- <int key="IBUIKeyboardType">7</int>
411- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
412- </object>
413 </object>
414 <object class="IBUITextField" id="965235407">
415 <reference key="NSNextResponder" ref="191373211"/>
416@@ -105,6 +108,11 @@
417 <bool key="IBUISecureTextEntry">YES</bool>
418 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
419 </object>
420+ <object class="IBUIFontDescription" key="IBUIFontDescription">
421+ <int key="type">1</int>
422+ <double key="pointSize">12</double>
423+ </object>
424+ <reference key="IBUIFont" ref="884414828"/>
425 </object>
426 <object class="IBUILabel" id="522019067">
427 <reference key="NSNextResponder" ref="191373211"/>
428@@ -119,19 +127,26 @@
429 <bool key="IBUIUserInteractionEnabled">NO</bool>
430 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
431 <string key="IBUIText">Email address:</string>
432- <object class="NSFont" key="IBUIFont" id="638683467">
433- <string key="NSName">HelveticaNeue</string>
434- <double key="NSSize">13</double>
435- <int key="NSfFlags">16</int>
436- </object>
437 <object class="NSColor" key="IBUITextColor" id="377051206">
438 <int key="NSColorSpace">1</int>
439 <bytes key="NSRGB">MCAwIDAAA</bytes>
440+ <string key="IBUIColorCocoaTouchKeyPath">darkTextColor</string>
441 </object>
442 <nil key="IBUIHighlightedColor"/>
443 <int key="IBUIBaselineAdjustment">1</int>
444 <float key="IBUIMinimumFontSize">10</float>
445 <int key="IBUITextAlignment">2</int>
446+ <object class="IBUIFontDescription" key="IBUIFontDescription" id="723334359">
447+ <string key="name">HelveticaNeue</string>
448+ <string key="family">Helvetica Neue</string>
449+ <int key="traits">0</int>
450+ <double key="pointSize">13</double>
451+ </object>
452+ <object class="NSFont" key="IBUIFont" id="525870143">
453+ <string key="NSName">HelveticaNeue-Medium</string>
454+ <double key="NSSize">13</double>
455+ <int key="NSfFlags">16</int>
456+ </object>
457 </object>
458 <object class="IBUILabel" id="1028176743">
459 <reference key="NSNextResponder" ref="191373211"/>
460@@ -146,12 +161,13 @@
461 <bool key="IBUIUserInteractionEnabled">NO</bool>
462 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
463 <string key="IBUIText">Password:</string>
464- <reference key="IBUIFont" ref="638683467"/>
465 <reference key="IBUITextColor" ref="377051206"/>
466 <nil key="IBUIHighlightedColor"/>
467 <int key="IBUIBaselineAdjustment">1</int>
468 <float key="IBUIMinimumFontSize">10</float>
469 <int key="IBUITextAlignment">2</int>
470+ <reference key="IBUIFontDescription" ref="723334359"/>
471+ <reference key="IBUIFont" ref="525870143"/>
472 </object>
473 <object class="IBUIButton" id="1065737352">
474 <reference key="NSNextResponder" ref="191373211"/>
475@@ -168,11 +184,6 @@
476 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
477 <int key="IBUIContentHorizontalAlignment">0</int>
478 <int key="IBUIContentVerticalAlignment">0</int>
479- <object class="NSFont" key="IBUIFont">
480- <string key="NSName">HelveticaNeue-Bold</string>
481- <double key="NSSize">14</double>
482- <int key="NSfFlags">16</int>
483- </object>
484 <bool key="IBUIReversesTitleShadowWhenHighlighted">YES</bool>
485 <bool key="IBUIShowsTouchWhenHighlighted">YES</bool>
486 <string key="IBUINormalTitle">Continue</string>
487@@ -185,6 +196,17 @@
488 <int key="NSColorSpace">3</int>
489 <bytes key="NSWhite">MC41AA</bytes>
490 </object>
491+ <object class="IBUIFontDescription" key="IBUIFontDescription">
492+ <string key="name">HelveticaNeue-Bold</string>
493+ <string key="family">Helvetica Neue</string>
494+ <int key="traits">2</int>
495+ <double key="pointSize">14</double>
496+ </object>
497+ <object class="NSFont" key="IBUIFont">
498+ <string key="NSName">HelveticaNeue-Bold</string>
499+ <double key="NSSize">14</double>
500+ <int key="NSfFlags">16</int>
501+ </object>
502 </object>
503 <object class="IBUIView" id="79561459">
504 <reference key="NSNextResponder" ref="191373211"/>
505@@ -209,11 +231,6 @@
506 <bool key="IBUIUserInteractionEnabled">NO</bool>
507 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
508 <string key="IBUIText">Log in to Ubuntu One</string>
509- <object class="NSFont" key="IBUIFont">
510- <string key="NSName">HelveticaNeue-Bold</string>
511- <double key="NSSize">17</double>
512- <int key="NSfFlags">16</int>
513- </object>
514 <reference key="IBUITextColor" ref="112434491"/>
515 <nil key="IBUIHighlightedColor"/>
516 <object class="NSColor" key="IBUIShadowColor" id="760542035">
517@@ -223,6 +240,17 @@
518 <string key="IBUIShadowOffset">{0, 0}</string>
519 <int key="IBUIBaselineAdjustment">1</int>
520 <float key="IBUIMinimumFontSize">10</float>
521+ <object class="IBUIFontDescription" key="IBUIFontDescription">
522+ <string key="name">HelveticaNeue-Bold</string>
523+ <string key="family">Helvetica Neue</string>
524+ <int key="traits">2</int>
525+ <double key="pointSize">17</double>
526+ </object>
527+ <object class="NSFont" key="IBUIFont">
528+ <string key="NSName">HelveticaNeue-Bold</string>
529+ <double key="NSSize">17</double>
530+ <int key="NSfFlags">16</int>
531+ </object>
532 </object>
533 </object>
534 <string key="NSFrameSize">{320, 44}</string>
535@@ -260,7 +288,6 @@
536 <string key="NSFrame">{{96, 236}, {128, 128}}</string>
537 <reference key="NSSuperview" ref="191373211"/>
538 <reference key="NSWindow"/>
539- <reference key="NSNextKeyView"/>
540 <bool key="IBUIUserInteractionEnabled">NO</bool>
541 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
542 <object class="NSCustomResource" key="IBUIImage">
543@@ -310,15 +337,6 @@
544 <int key="connectionID">13</int>
545 </object>
546 <object class="IBConnectionRecord">
547- <object class="IBCocoaTouchEventConnection" key="connection">
548- <string key="label">logIn:</string>
549- <reference key="source" ref="1065737352"/>
550- <reference key="destination" ref="372490531"/>
551- <int key="IBEventType">7</int>
552- </object>
553- <int key="connectionID">14</int>
554- </object>
555- <object class="IBConnectionRecord">
556 <object class="IBCocoaTouchOutletConnection" key="connection">
557 <string key="label">loginButton</string>
558 <reference key="source" ref="372490531"/>
559@@ -342,13 +360,24 @@
560 </object>
561 <int key="connectionID">25</int>
562 </object>
563+ <object class="IBConnectionRecord">
564+ <object class="IBCocoaTouchEventConnection" key="connection">
565+ <string key="label">logIn:</string>
566+ <reference key="source" ref="1065737352"/>
567+ <reference key="destination" ref="372490531"/>
568+ <int key="IBEventType">7</int>
569+ </object>
570+ <int key="connectionID">14</int>
571+ </object>
572 </object>
573 <object class="IBMutableOrderedSet" key="objectRecords">
574 <object class="NSArray" key="orderedObjects">
575 <bool key="EncodedWithXMLCoder">YES</bool>
576 <object class="IBObjectRecord">
577 <int key="objectID">0</int>
578- <reference key="object" ref="0"/>
579+ <object class="NSArray" key="object" id="0">
580+ <bool key="EncodedWithXMLCoder">YES</bool>
581+ </object>
582 <reference key="children" ref="1000"/>
583 <nil key="parent"/>
584 </object>
585@@ -444,8 +473,9 @@
586 <object class="NSArray" key="dict.sortedKeys">
587 <bool key="EncodedWithXMLCoder">YES</bool>
588 <string>-1.CustomClassName</string>
589+ <string>-1.IBPluginDependency</string>
590 <string>-2.CustomClassName</string>
591- <string>1.IBEditorWindowLastContentRect</string>
592+ <string>-2.IBPluginDependency</string>
593 <string>1.IBPluginDependency</string>
594 <string>11.IBPluginDependency</string>
595 <string>15.IBPluginDependency</string>
596@@ -458,11 +488,12 @@
597 <string>7.IBPluginDependency</string>
598 <string>8.IBPluginDependency</string>
599 </object>
600- <object class="NSMutableArray" key="dict.values">
601+ <object class="NSArray" key="dict.values">
602 <bool key="EncodedWithXMLCoder">YES</bool>
603 <string>UOSSOCredentialsViewController</string>
604+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
605 <string>UIResponder</string>
606- <string>{{556, 412}, {320, 480}}</string>
607+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
608 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
609 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
610 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
611@@ -517,7 +548,7 @@
612 <string>patternView</string>
613 <string>spinner</string>
614 </object>
615- <object class="NSMutableArray" key="dict.values">
616+ <object class="NSArray" key="dict.values">
617 <bool key="EncodedWithXMLCoder">YES</bool>
618 <string>UITextField</string>
619 <string>UIButton</string>
620@@ -536,7 +567,7 @@
621 <string>patternView</string>
622 <string>spinner</string>
623 </object>
624- <object class="NSMutableArray" key="dict.values">
625+ <object class="NSArray" key="dict.values">
626 <bool key="EncodedWithXMLCoder">YES</bool>
627 <object class="IBToOneOutletInfo">
628 <string key="name">emailField</string>
629@@ -579,6 +610,6 @@
630 <string key="NS.key.0">about_logo.png</string>
631 <string key="NS.object.0">{512, 512}</string>
632 </object>
633- <string key="IBCocoaTouchPluginVersion">301</string>
634+ <string key="IBCocoaTouchPluginVersion">1926</string>
635 </data>
636 </archive>

Subscribers

People subscribed via source and target branches