Merge lp:~threeve/ubuntuone-ios-files/polish-and-shine-2 into lp:ubuntuone-ios-files

Proposed by Jason Foreman
Status: Merged
Merged at revision: 45
Proposed branch: lp:~threeve/ubuntuone-ios-files/polish-and-shine-2
Merge into: lp:ubuntuone-ios-files
Diff against target: 1384 lines (+362/-346)
9 files modified
Files.xcodeproj/project.pbxproj (+6/-6)
Files/U1FolderViewController.m (+17/-96)
Files/U1FolderViewController.xib (+122/-8)
Files/U1FuzzyDateTransformer.h (+1/-1)
Files/U1FuzzyDateTransformer.m (+59/-5)
Files/U1SettingsViewController.h (+0/-1)
Files/U1SettingsViewController.m (+72/-37)
Files/U1SettingsViewController.xib (+7/-137)
Files/UOSSOCredentialsViewController.xib (+78/-55)
To merge this branch: bzr merge lp:~threeve/ubuntuone-ios-files/polish-and-shine-2
Reviewer Review Type Date Requested Status
Zachery Bir Approve
Review via email: mp+85550@code.launchpad.net

Description of the change

Just a few more tweaks to make the app a little bit happier.

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

woot!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Files.xcodeproj/project.pbxproj'
2--- Files.xcodeproj/project.pbxproj 2011-12-13 16:43:36 +0000
3+++ Files.xcodeproj/project.pbxproj 2011-12-13 20:52:29 +0000
4@@ -47,7 +47,7 @@
5 960D46211409ECC500B73177 /* ic_folder.png in Resources */ = {isa = PBXBuildFile; fileRef = 960D461F1409ECC500B73177 /* ic_folder.png */; };
6 960D46221409ECC500B73177 /* ic_folder@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 960D46201409ECC500B73177 /* ic_folder@2x.png */; };
7 960D4625140D8AF300B73177 /* U1ByteSizeValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 960D4624140D8AF200B73177 /* U1ByteSizeValueTransformer.m */; };
8- 960D4628140D8B4400B73177 /* U1FriendlyDateValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 960D4627140D8B4400B73177 /* U1FriendlyDateValueTransformer.m */; };
9+ 960D4628140D8B4400B73177 /* U1FuzzyDateTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 960D4627140D8B4400B73177 /* U1FuzzyDateTransformer.m */; };
10 960D462B140D99DD00B73177 /* U1Node.m in Sources */ = {isa = PBXBuildFile; fileRef = 960D462A140D99DC00B73177 /* U1Node.m */; };
11 960D462E140DD22800B73177 /* U1FileNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 960D462D140DD22600B73177 /* U1FileNode.m */; };
12 960D4631140DD23600B73177 /* U1FolderNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 960D4630140DD23400B73177 /* U1FolderNode.m */; };
13@@ -227,8 +227,8 @@
14 960D46201409ECC500B73177 /* ic_folder@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ic_folder@2x.png"; path = "Assets/ic_folder@2x.png"; sourceTree = "<group>"; };
15 960D4623140D8AF200B73177 /* U1ByteSizeValueTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = U1ByteSizeValueTransformer.h; sourceTree = "<group>"; };
16 960D4624140D8AF200B73177 /* U1ByteSizeValueTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = U1ByteSizeValueTransformer.m; sourceTree = "<group>"; };
17- 960D4626140D8B4400B73177 /* U1FriendlyDateValueTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = U1FriendlyDateValueTransformer.h; sourceTree = "<group>"; };
18- 960D4627140D8B4400B73177 /* U1FriendlyDateValueTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = U1FriendlyDateValueTransformer.m; sourceTree = "<group>"; };
19+ 960D4626140D8B4400B73177 /* U1FuzzyDateTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; path = U1FuzzyDateTransformer.h; sourceTree = "<group>"; };
20+ 960D4627140D8B4400B73177 /* U1FuzzyDateTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = U1FuzzyDateTransformer.m; sourceTree = "<group>"; };
21 960D4629140D99DB00B73177 /* U1Node.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = U1Node.h; sourceTree = "<group>"; };
22 960D462A140D99DC00B73177 /* U1Node.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = U1Node.m; sourceTree = "<group>"; };
23 960D462C140DD22400B73177 /* U1FileNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = U1FileNode.h; sourceTree = "<group>"; };
24@@ -666,8 +666,8 @@
25 960D461B1409E78E00B73177 /* U1ViewNibLoader.m */,
26 960D4623140D8AF200B73177 /* U1ByteSizeValueTransformer.h */,
27 960D4624140D8AF200B73177 /* U1ByteSizeValueTransformer.m */,
28- 960D4626140D8B4400B73177 /* U1FriendlyDateValueTransformer.h */,
29- 960D4627140D8B4400B73177 /* U1FriendlyDateValueTransformer.m */,
30+ 960D4626140D8B4400B73177 /* U1FuzzyDateTransformer.h */,
31+ 960D4627140D8B4400B73177 /* U1FuzzyDateTransformer.m */,
32 91A5E2DD142B727500EAAC2B /* U1UploadOperation.h */,
33 91A5E2DE142B727500EAAC2B /* U1UploadOperation.m */,
34 965D7EB71429690C00E4754F /* U1NavigationBar.h */,
35@@ -1028,7 +1028,7 @@
36 960D46191409E41E00B73177 /* U1FolderItemCell.m in Sources */,
37 960D461C1409E78E00B73177 /* U1ViewNibLoader.m in Sources */,
38 960D4625140D8AF300B73177 /* U1ByteSizeValueTransformer.m in Sources */,
39- 960D4628140D8B4400B73177 /* U1FriendlyDateValueTransformer.m in Sources */,
40+ 960D4628140D8B4400B73177 /* U1FuzzyDateTransformer.m in Sources */,
41 960D462B140D99DD00B73177 /* U1Node.m in Sources */,
42 960D462E140DD22800B73177 /* U1FileNode.m in Sources */,
43 960D4631140DD23600B73177 /* U1FolderNode.m in Sources */,
44
45=== modified file 'Files/U1FolderViewController.m'
46--- Files/U1FolderViewController.m 2011-12-12 15:24:46 +0000
47+++ Files/U1FolderViewController.m 2011-12-13 20:52:29 +0000
48@@ -31,11 +31,14 @@
49 #import "U1AutoUploadsManager.h"
50 #import "U1Node.h"
51 #import "UIActionSheet+U1Additions.h"
52+#import "U1FuzzyDateTransformer.h"
53
54
55 @interface U1FolderViewController () <UINavigationControllerDelegate, UIImagePickerControllerDelegate, NSFetchedResultsControllerDelegate>
56+@property (retain) IBOutlet UILabel *footerLabel;
57 @property (copy) NSString *resourcePath;
58 @property (retain) U1ByteSizeValueTransformer *byteSizeTransformer;
59+@property (retain) U1FuzzyDateTransformer *fuzzyDateTransformer;
60 @property (retain) NSIndexPath *pendingIndexPath;
61 @property (retain) U1FolderNode *node;
62 @property (retain) NSMutableArray *nodes;
63@@ -50,7 +53,7 @@
64
65 @synthesize loadingCell;
66 @synthesize delegate, filesClient, node, resourcePath;
67-@synthesize byteSizeTransformer, pendingIndexPath, nodes, resultsController;
68+@synthesize footerLabel, byteSizeTransformer, fuzzyDateTransformer, pendingIndexPath, nodes, resultsController;
69
70 - (id)initWithNodeResourcePath:(NSString*)theResourcePath;
71 {
72@@ -59,7 +62,8 @@
73 return nil;
74 self.title = [theResourcePath lastPathComponent];
75 self.resourcePath = theResourcePath;
76- self.byteSizeTransformer = [[U1ByteSizeValueTransformer new] autorelease];
77+ byteSizeTransformer = [U1ByteSizeValueTransformer new];
78+ fuzzyDateTransformer = [U1FuzzyDateTransformer new];
79 filesClient = [U1FilesClient sharedFilesClient];
80
81 UIBarButtonItem *uploadItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(uploadImage:)];
82@@ -77,9 +81,11 @@
83 [resourcePath release];
84 [node release];
85 [byteSizeTransformer release];
86+ [fuzzyDateTransformer release];
87 [pendingIndexPath release];
88 [nodes release];
89 [resultsController release];
90+ [footerLabel release];
91 [super dealloc];
92 }
93
94@@ -87,11 +93,6 @@
95 {
96 [super viewDidLoad];
97 [self refresh];
98-
99- UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];
100- [longPress setMinimumPressDuration:1.f];
101- [self.tableView addGestureRecognizer:longPress];
102- [longPress release];
103 }
104
105 - (void)viewDidUnload;
106@@ -130,71 +131,6 @@
107 }
108 }
109
110-- (void)longPress:(UILongPressGestureRecognizer*)longPress;
111-{
112- if (longPress.state == UIGestureRecognizerStateBegan)
113- {
114- CGPoint p = [longPress locationInView:self.tableView];
115- NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:p];
116- U1Node *childNode = [self.nodes objectAtIndex:indexPath.row];
117-
118- UIActionSheet *actionSheet = [UIActionSheet new];
119-
120- [actionSheet setTitle:[[childNode path] lastPathComponent]];
121- [actionSheet setDestructiveButtonIndex:[actionSheet addButtonWithTitle:@"Delete"]];
122- NSInteger renameButtonIndex = [actionSheet addButtonWithTitle:@"Rename"];
123- NSInteger publishButtonIndex = -1;
124- NSInteger copyURLButtonIndex = -1;
125- if ([childNode isFile])
126- {
127- U1FileNode *fileNode = (id)childNode;
128- if ([[fileNode isPublic] boolValue])
129- {
130- publishButtonIndex = [actionSheet addButtonWithTitle:@"Unpublish"];
131- copyURLButtonIndex = [actionSheet addButtonWithTitle:@"Copy Public URL"];
132- }
133- else
134- {
135- publishButtonIndex = [actionSheet addButtonWithTitle:@"Publish"];
136- }
137- }
138- [actionSheet setCancelButtonIndex:[actionSheet addButtonWithTitle:@"Cancel"]];
139-
140- self.pendingIndexPath = indexPath;
141- [actionSheet showInView:self.view withCompletionBlock:^(NSInteger buttonIndex) {
142- if (buttonIndex == [actionSheet destructiveButtonIndex])
143- {
144- [self deleteNodeAtIndexPath:self.pendingIndexPath];
145- }
146- else if (buttonIndex == renameButtonIndex)
147- {
148- NSLog(@"rename!"); // TODO:
149- }
150- else if (buttonIndex == publishButtonIndex)
151- {
152- U1FileNode *fileNode = (id)childNode;
153- if ([[fileNode isPublic] boolValue])
154- [self.filesClient unpublishNode:fileNode completionBlock:^(U1FileNode *updatedNode, NSError *error) {
155- }];
156- else
157- [self.filesClient publishNode:fileNode completionBlock:^(U1FileNode *updatedNode, NSError *error) {
158- }];
159- }
160- else if (buttonIndex == copyURLButtonIndex)
161- {
162- U1FileNode *fileNode = (id)childNode;
163- NSArray *types = UIPasteboardTypeListString;
164- [[UIPasteboard generalPasteboard] setValue:[fileNode publicURLString] forPasteboardType:[types lastObject]];
165- }
166- else if (buttonIndex == [actionSheet cancelButtonIndex])
167- {
168-// NSLog(@"cancel");
169- }
170- self.pendingIndexPath = nil;
171- }];
172- }
173-}
174-
175 - (void)uploadImage:(id)sender;
176 {
177 UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
178@@ -303,7 +239,8 @@
179 if ([aNode isFolder])
180 {
181 [cell.imageView setImage:[UIImage imageNamed:@"ic_folder"]];
182- [cell.detailLabel setText:[aNode.modificationDate description]];
183+ NSString *fuzzyDate = [self.fuzzyDateTransformer transformedValue:aNode.modificationDate];
184+ [cell.detailLabel setText:[NSString stringWithFormat:@"modified %@", fuzzyDate]];
185 }
186 else
187 {
188@@ -318,8 +255,9 @@
189 NSNumber *size = [aNode valueForKey:@"size"];
190 NSString *sizeString = [self.byteSizeTransformer transformedValue:size];
191 NSString *detailString = sizeString;
192+ NSString *fuzzyDate = [self.fuzzyDateTransformer transformedValue:aNode.modificationDate];
193 if (aNode.modificationDate)
194- detailString = [sizeString stringByAppendingFormat:@", modified %@", aNode.modificationDate];
195+ detailString = [sizeString stringByAppendingFormat:@", modified %@", fuzzyDate];
196 [cell.detailLabel setText:detailString];
197 }
198 }
199@@ -375,28 +313,6 @@
200 [self loadInfoForNode];
201 }
202
203-- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section;
204-{
205- UILabel *footerLabel = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 22)] autorelease];
206- footerLabel.backgroundColor = [[UIColor lightGrayColor] colorWithAlphaComponent:0.85f];
207- [footerLabel setFont:[UIFont systemFontOfSize:14.f]];
208- [footerLabel setShadowColor:[UIColor whiteColor]];
209- [footerLabel setShadowOffset:CGSizeMake(0, 1)];
210- [footerLabel setTextAlignment:UITextAlignmentCenter];
211-
212- int numItems = [[[self.resultsController sections] objectAtIndex:0] numberOfObjects];
213- NSNumber *folderRawSize = [[self.resultsController fetchedObjects] valueForKeyPath:@"@sum.size"];
214- NSString *folderSize = [self.byteSizeTransformer transformedValue:folderRawSize];
215-
216- [footerLabel setText:[NSString stringWithFormat:@"%d items, %@", numItems, folderSize]];
217-
218- return footerLabel;
219-}
220-
221-- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;
222-{
223- return 22.0f;
224-}
225
226 #pragma mark Private Methods
227
228@@ -502,6 +418,11 @@
229 - (void)controllerDidChangeContent:(NSFetchedResultsController *)controller;
230 {
231 [self.tableView endUpdates];
232+
233+ int numItems = [[[self.resultsController sections] objectAtIndex:0] numberOfObjects];
234+ NSNumber *folderRawSize = [[self.resultsController fetchedObjects] valueForKeyPath:@"@sum.size"];
235+ NSString *folderSize = [self.byteSizeTransformer transformedValue:folderRawSize];
236+ [self.footerLabel setText:[NSString stringWithFormat:@"%d items, %@", numItems, folderSize]];
237 }
238
239 @end
240
241=== modified file 'Files/U1FolderViewController.xib'
242--- Files/U1FolderViewController.xib 2011-12-07 18:23:32 +0000
243+++ Files/U1FolderViewController.xib 2011-12-13 20:52:29 +0000
244@@ -12,6 +12,7 @@
245 </object>
246 <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
247 <bool key="EncodedWithXMLCoder">YES</bool>
248+ <string>IBUIView</string>
249 <string>IBUITableViewCell</string>
250 <string>IBUITableView</string>
251 <string>IBUIActivityIndicatorView</string>
252@@ -39,9 +40,64 @@
253 <object class="IBUITableView" id="174006671">
254 <reference key="NSNextResponder"/>
255 <int key="NSvFlags">274</int>
256+ <object class="NSMutableArray" key="NSSubviews">
257+ <bool key="EncodedWithXMLCoder">YES</bool>
258+ <object class="IBUIView" id="1014635344">
259+ <reference key="NSNextResponder" ref="174006671"/>
260+ <int key="NSvFlags">292</int>
261+ <object class="NSMutableArray" key="NSSubviews">
262+ <bool key="EncodedWithXMLCoder">YES</bool>
263+ <object class="IBUILabel" id="1067115130">
264+ <reference key="NSNextResponder" ref="1014635344"/>
265+ <int key="NSvFlags">292</int>
266+ <string key="NSFrame">{{20, 6}, {280, 18}}</string>
267+ <reference key="NSSuperview" ref="1014635344"/>
268+ <reference key="NSWindow"/>
269+ <reference key="NSNextKeyView"/>
270+ <bool key="IBUIOpaque">NO</bool>
271+ <bool key="IBUIClipsSubviews">YES</bool>
272+ <int key="IBUIContentMode">7</int>
273+ <bool key="IBUIUserInteractionEnabled">NO</bool>
274+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
275+ <string key="IBUIText"/>
276+ <object class="NSColor" key="IBUITextColor">
277+ <int key="NSColorSpace">3</int>
278+ <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
279+ </object>
280+ <nil key="IBUIHighlightedColor"/>
281+ <int key="IBUIBaselineAdjustment">1</int>
282+ <bool key="IBUIAdjustsFontSizeToFit">NO</bool>
283+ <float key="IBUIMinimumFontSize">10</float>
284+ <int key="IBUITextAlignment">1</int>
285+ <object class="IBUIFontDescription" key="IBUIFontDescription">
286+ <int key="type">1</int>
287+ <double key="pointSize">14</double>
288+ </object>
289+ <object class="NSFont" key="IBUIFont">
290+ <string key="NSName">Helvetica</string>
291+ <double key="NSSize">14</double>
292+ <int key="NSfFlags">16</int>
293+ </object>
294+ </object>
295+ </object>
296+ <string key="NSFrame">{{0, 430}, {320, 30}}</string>
297+ <reference key="NSSuperview" ref="174006671"/>
298+ <reference key="NSWindow"/>
299+ <reference key="NSNextKeyView" ref="1067115130"/>
300+ <object class="NSColor" key="IBUIBackgroundColor">
301+ <int key="NSColorSpace">3</int>
302+ <bytes key="NSWhite">MQA</bytes>
303+ <object class="NSColorSpace" key="NSCustomColorSpace">
304+ <int key="NSID">2</int>
305+ </object>
306+ </object>
307+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
308+ </object>
309+ </object>
310 <string key="NSFrameSize">{320, 460}</string>
311 <reference key="NSSuperview"/>
312 <reference key="NSWindow"/>
313+ <reference key="NSNextKeyView" ref="1014635344"/>
314 <object class="NSColor" key="IBUIBackgroundColor">
315 <int key="NSColorSpace">3</int>
316 <bytes key="NSWhite">MQA</bytes>
317@@ -55,9 +111,10 @@
318 <float key="IBUIRowHeight">54</float>
319 <float key="IBUISectionHeaderHeight">22</float>
320 <float key="IBUISectionFooterHeight">22</float>
321+ <reference key="IBUITableFooterView" ref="1014635344"/>
322 </object>
323 <object class="IBUITableViewCell" id="864788526">
324- <nil key="NSNextResponder"/>
325+ <reference key="NSNextResponder"/>
326 <int key="NSvFlags">292</int>
327 <object class="NSMutableArray" key="NSSubviews">
328 <bool key="EncodedWithXMLCoder">YES</bool>
329@@ -71,6 +128,8 @@
330 <int key="NSvFlags">292</int>
331 <string key="NSFrame">{{136, 17}, {75, 21}}</string>
332 <reference key="NSSuperview" ref="834389907"/>
333+ <reference key="NSWindow"/>
334+ <reference key="NSNextKeyView"/>
335 <bool key="IBUIOpaque">NO</bool>
336 <bool key="IBUIClipsSubviews">YES</bool>
337 <int key="IBUIContentMode">7</int>
338@@ -101,6 +160,7 @@
339 <int key="NSvFlags">292</int>
340 <string key="NSFrame">{{108, 18}, {20, 20}}</string>
341 <reference key="NSSuperview" ref="834389907"/>
342+ <reference key="NSWindow"/>
343 <reference key="NSNextKeyView" ref="317026358"/>
344 <bool key="IBUIOpaque">NO</bool>
345 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
346@@ -111,6 +171,7 @@
347 </object>
348 <string key="NSFrameSize">{320, 53}</string>
349 <reference key="NSSuperview" ref="864788526"/>
350+ <reference key="NSWindow"/>
351 <reference key="NSNextKeyView" ref="42067442"/>
352 <object class="NSColor" key="IBUIBackgroundColor">
353 <int key="NSColorSpace">3</int>
354@@ -124,6 +185,8 @@
355 </object>
356 </object>
357 <string key="NSFrameSize">{320, 54}</string>
358+ <reference key="NSSuperview"/>
359+ <reference key="NSWindow"/>
360 <reference key="NSNextKeyView" ref="834389907"/>
361 <object class="NSColor" key="IBUIBackgroundColor">
362 <int key="NSColorSpace">1</int>
363@@ -152,6 +215,14 @@
364 </object>
365 <int key="connectionID">13</int>
366 </object>
367+ <object class="IBConnectionRecord">
368+ <object class="IBCocoaTouchOutletConnection" key="connection">
369+ <string key="label">footerLabel</string>
370+ <reference key="source" ref="372490531"/>
371+ <reference key="destination" ref="1067115130"/>
372+ </object>
373+ <int key="connectionID">20</int>
374+ </object>
375 </object>
376 <object class="IBMutableOrderedSet" key="objectRecords">
377 <object class="NSArray" key="orderedObjects">
378@@ -178,6 +249,10 @@
379 <object class="IBObjectRecord">
380 <int key="objectID">8</int>
381 <reference key="object" ref="174006671"/>
382+ <object class="NSMutableArray" key="children">
383+ <bool key="EncodedWithXMLCoder">YES</bool>
384+ <reference ref="1014635344"/>
385+ </object>
386 <reference key="parent" ref="0"/>
387 <string key="objectName">Table View</string>
388 </object>
389@@ -201,6 +276,20 @@
390 <reference key="object" ref="317026358"/>
391 <reference key="parent" ref="864788526"/>
392 </object>
393+ <object class="IBObjectRecord">
394+ <int key="objectID">18</int>
395+ <reference key="object" ref="1014635344"/>
396+ <object class="NSMutableArray" key="children">
397+ <bool key="EncodedWithXMLCoder">YES</bool>
398+ <reference ref="1067115130"/>
399+ </object>
400+ <reference key="parent" ref="174006671"/>
401+ </object>
402+ <object class="IBObjectRecord">
403+ <int key="objectID">19</int>
404+ <reference key="object" ref="1067115130"/>
405+ <reference key="parent" ref="1014635344"/>
406+ </object>
407 </object>
408 </object>
409 <object class="NSMutableDictionary" key="flattenedProperties">
410@@ -214,6 +303,8 @@
411 <string>10.IBPluginDependency</string>
412 <string>11.IBPluginDependency</string>
413 <string>12.IBPluginDependency</string>
414+ <string>18.IBPluginDependency</string>
415+ <string>19.IBPluginDependency</string>
416 <string>8.IBPluginDependency</string>
417 </object>
418 <object class="NSMutableArray" key="dict.values">
419@@ -226,6 +317,8 @@
420 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
421 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
422 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
423+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
424+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
425 </object>
426 </object>
427 <object class="NSMutableDictionary" key="unlocalizedProperties">
428@@ -240,7 +333,7 @@
429 <reference key="dict.values" ref="0"/>
430 </object>
431 <nil key="sourceID"/>
432- <int key="maxID">17</int>
433+ <int key="maxID">20</int>
434 </object>
435 <object class="IBClassDescriber" key="IBDocument.Classes">
436 <object class="NSMutableArray" key="referencedPartialClassDescriptions">
437@@ -257,14 +350,35 @@
438 <string key="className">U1FolderViewController</string>
439 <string key="superclassName">PullRefreshTableViewController</string>
440 <object class="NSMutableDictionary" key="outlets">
441- <string key="NS.key.0">loadingCell</string>
442- <string key="NS.object.0">UITableViewCell</string>
443+ <bool key="EncodedWithXMLCoder">YES</bool>
444+ <object class="NSArray" key="dict.sortedKeys">
445+ <bool key="EncodedWithXMLCoder">YES</bool>
446+ <string>footerLabel</string>
447+ <string>loadingCell</string>
448+ </object>
449+ <object class="NSMutableArray" key="dict.values">
450+ <bool key="EncodedWithXMLCoder">YES</bool>
451+ <string>UILabel</string>
452+ <string>UITableViewCell</string>
453+ </object>
454 </object>
455 <object class="NSMutableDictionary" key="toOneOutletInfosByName">
456- <string key="NS.key.0">loadingCell</string>
457- <object class="IBToOneOutletInfo" key="NS.object.0">
458- <string key="name">loadingCell</string>
459- <string key="candidateClassName">UITableViewCell</string>
460+ <bool key="EncodedWithXMLCoder">YES</bool>
461+ <object class="NSArray" key="dict.sortedKeys">
462+ <bool key="EncodedWithXMLCoder">YES</bool>
463+ <string>footerLabel</string>
464+ <string>loadingCell</string>
465+ </object>
466+ <object class="NSMutableArray" key="dict.values">
467+ <bool key="EncodedWithXMLCoder">YES</bool>
468+ <object class="IBToOneOutletInfo">
469+ <string key="name">footerLabel</string>
470+ <string key="candidateClassName">UILabel</string>
471+ </object>
472+ <object class="IBToOneOutletInfo">
473+ <string key="name">loadingCell</string>
474+ <string key="candidateClassName">UITableViewCell</string>
475+ </object>
476 </object>
477 </object>
478 <object class="IBClassDescriptionSource" key="sourceIdentifier">
479
480=== renamed file 'Files/U1FriendlyDateValueTransformer.h' => 'Files/U1FuzzyDateTransformer.h'
481--- Files/U1FriendlyDateValueTransformer.h 2011-08-31 14:56:30 +0000
482+++ Files/U1FuzzyDateTransformer.h 2011-12-13 20:52:29 +0000
483@@ -16,6 +16,6 @@
484 #import <Foundation/Foundation.h>
485
486
487-@interface U1FriendlyDateValueTransformer : NSValueTransformer
488+@interface U1FuzzyDateTransformer : NSValueTransformer
489
490 @end
491
492=== renamed file 'Files/U1FriendlyDateValueTransformer.m' => 'Files/U1FuzzyDateTransformer.m'
493--- Files/U1FriendlyDateValueTransformer.m 2011-08-31 14:56:30 +0000
494+++ Files/U1FuzzyDateTransformer.m 2011-12-13 20:52:29 +0000
495@@ -13,18 +13,72 @@
496 // You should have received a copy of the GNU Affero General Public License
497 // along with this program. If not, see <http://www.gnu.org/licenses/>.
498
499-#import "U1FriendlyDateValueTransformer.h"
500-
501-
502-@implementation U1FriendlyDateValueTransformer
503+#import "U1FuzzyDateTransformer.h"
504+
505+
506+static const NSUInteger kSECONDS_PER_MINUTE = 60;
507+static const NSUInteger kSECONDS_PER_HOUR = 60 * kSECONDS_PER_MINUTE;
508+static const NSUInteger kSECONDS_PER_DAY = 24 * kSECONDS_PER_HOUR;
509+static const NSUInteger kSECONDS_PER_WEEK = 7 * kSECONDS_PER_DAY;
510+static const NSUInteger kABOUT_A_WEEK = kSECONDS_PER_WEEK + kSECONDS_PER_DAY;
511+
512+
513+@implementation U1FuzzyDateTransformer
514
515 + (Class)transformedValueClass { return [NSString class]; }
516
517 + (BOOL)allowsReverseTransformation { return NO; }
518
519++ (NSDateFormatter*)dateFormatter;
520+{
521+ static NSDateFormatter *dateFormatter = nil;
522+ static dispatch_once_t onceToken;
523+ dispatch_once(&onceToken, ^{
524+ dateFormatter = [[NSDateFormatter alloc] init];
525+ [dateFormatter setDateStyle:NSDateFormatterShortStyle];
526+ });
527+ return dateFormatter;
528+}
529+
530 - (id)transformedValue:(id)value;
531 {
532- return (value == nil) ? nil : NSStringFromClass([value class]);
533+ NSDate *date = value;
534+ NSTimeInterval interval = -[date timeIntervalSinceNow];
535+
536+
537+ NSString *fuzzyDate = nil;
538+ if (interval < kSECONDS_PER_MINUTE)
539+ {
540+ return NSLocalizedString(@"just now", nil);
541+ }
542+ else if (interval < kSECONDS_PER_HOUR)
543+ {
544+ NSUInteger minutes = interval / kSECONDS_PER_MINUTE;
545+ NSString *format = (minutes > 1) ? NSLocalizedString(@"%u minutes ago", nil) : NSLocalizedString(@"%u minute ago", nil);
546+ fuzzyDate = [NSString stringWithFormat:format, minutes];
547+ }
548+ else if (interval < kSECONDS_PER_DAY)
549+ {
550+ NSUInteger hours = interval / kSECONDS_PER_HOUR;
551+ NSString *format = (hours > 1) ? NSLocalizedString(@"%u hours ago", nil) : NSLocalizedString(@"%u hour ago", nil);
552+ fuzzyDate = [NSString stringWithFormat:format, hours];
553+ }
554+ else if (interval < kSECONDS_PER_WEEK)
555+ {
556+ NSUInteger days = interval / kSECONDS_PER_DAY;
557+ NSString *format = (days > 1) ? NSLocalizedString(@"%u days ago", nil) : NSLocalizedString(@"%u day ago", nil);
558+ fuzzyDate = [NSString stringWithFormat:format, days];
559+ }
560+ else if (interval < kABOUT_A_WEEK)
561+ {
562+ return NSLocalizedString(@"1 week ago", nil);
563+ }
564+ else
565+ {
566+ fuzzyDate = [[U1FuzzyDateTransformer dateFormatter] stringFromDate:date];
567+ }
568+
569+ return fuzzyDate;
570 }
571
572 @end
573
574=== modified file 'Files/U1SettingsViewController.h'
575--- Files/U1SettingsViewController.h 2011-12-06 02:55:27 +0000
576+++ Files/U1SettingsViewController.h 2011-12-13 20:52:29 +0000
577@@ -33,7 +33,6 @@
578 @property (retain) IBOutlet UILabel *disableSleepToggleLabel;
579 @property (retain) IBOutlet UISwitch *disableSleepToggle;
580 @property (retain) IBOutlet UITableView *tableView;
581-@property (retain) IBOutlet UIView *signOutView;
582
583 - (IBAction)toggleAutoUpload:(id)sender;
584 - (IBAction)toggleWifiOnly:(id)sender;
585
586=== modified file 'Files/U1SettingsViewController.m'
587--- Files/U1SettingsViewController.m 2011-12-12 15:24:46 +0000
588+++ Files/U1SettingsViewController.m 2011-12-13 20:52:29 +0000
589@@ -27,7 +27,7 @@
590 static const NSUInteger U1SettingsViewSectionCount = 2;
591
592
593-@interface U1SettingsViewController ()
594+@interface U1SettingsViewController () <UIActionSheetDelegate>
595 @property (readonly, nonatomic, retain) UITableViewCell *accountLoadingCell;
596 @property (retain) U1FilesClient *filesClient;
597 @property (retain) NSDictionary *accountInfo;
598@@ -45,7 +45,7 @@
599 @synthesize wifiOnlyToggleCell, wifiOnlyToggleLabel, wifiOnlyToggle;
600 @synthesize includeVideoToggleCell, includeVideoToggleLabel, includeVideoToggle;
601 @synthesize disableSleepToggleCell, disableSleepToggleLabel, disableSleepToggle;
602-@synthesize accountLoadingCell, filesClient, accountInfo, signOutView;
603+@synthesize accountLoadingCell, filesClient, accountInfo;
604
605 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
606 {
607@@ -74,7 +74,6 @@
608 [disableSleepToggle release];
609 [filesClient release];
610 [accountInfo release];
611- [signOutView release];
612 [super dealloc];
613 }
614
615@@ -94,13 +93,24 @@
616 [self.filesClient accountInfoWithCompletionBlock:^(NSDictionary *fetchedAccountInfo, NSError *error) {
617 self.accountInfo = fetchedAccountInfo;
618 if (self.accountInfo)
619- [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:U1SettingsViewSectionAccount] withRowAnimation:UITableViewRowAnimationFade];
620+ [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:U1SettingsViewSectionAccount] withRowAnimation:UITableViewRowAnimationNone];
621 }];
622 }
623
624 - (IBAction)signOut:(id)sender;
625 {
626- [[U1AccountManager sharedAccountManager] removeCredentials];
627+ // TODO: get actual copy for this from design team
628+ UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Logging out from this device will not affect other devices connected to Ubuntu One." delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Log Out" otherButtonTitles:nil];
629+ [actionSheet showFromTabBar:self.tabBarController.tabBar];
630+ [actionSheet release];
631+}
632+
633+- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex;
634+{
635+ if ([actionSheet destructiveButtonIndex] == buttonIndex)
636+ {
637+ [[U1AccountManager sharedAccountManager] removeCredentials];
638+ }
639 }
640
641 - (void)toggleAutoUpload:(id)sender;
642@@ -167,20 +177,13 @@
643 switch (section)
644 {
645 case U1SettingsViewSectionAccount:
646- return self.accountInfo == nil ? 1 : 2;
647+ return 3;
648 case U1SettingsViewSectionCameraRoll:
649 return 3; // TODO const
650 }
651 return 0;
652 }
653
654-- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;
655-{
656- if (section == U1SettingsViewSectionAccount)
657- return 44.0;
658- return [self.tableView sectionFooterHeight];
659-}
660-
661 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
662 {
663 if (indexPath.section == U1SettingsViewSectionCameraRoll &&
664@@ -193,58 +196,90 @@
665
666 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
667 {
668+ UITableViewCell *cell = nil;
669 switch (indexPath.section)
670 {
671 case U1SettingsViewSectionAccount:
672 {
673- if (self.accountInfo == nil)
674- return [self accountLoadingCell];
675-
676- UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"AccountCell"];
677- if (!cell)
678- {
679- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:@"AccountCell"] autorelease];
680- }
681 switch (indexPath.row)
682 {
683 case 0:
684+ cell = [self.tableView dequeueReusableCellWithIdentifier:@"AccountCell"];
685+ if (!cell)
686+ {
687+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:@"AccountCell"] autorelease];
688+ [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
689+ }
690 [cell.textLabel setText:NSLocalizedString(@"Name", nil)];
691- [cell.detailTextLabel setText:[self.accountInfo objectForKey:@"visible_name"]];
692+ [cell.detailTextLabel setText:@"Loading..."];
693+ if (self.accountInfo)
694+ [cell.detailTextLabel setText:[self.accountInfo objectForKey:@"visible_name"]];
695 break;
696 case 1:
697 {
698+ cell = [self.tableView dequeueReusableCellWithIdentifier:@"AccountCell"];
699+ if (!cell)
700+ {
701+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:@"AccountCell"] autorelease];
702+ [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
703+ }
704 [cell.textLabel setText:NSLocalizedString(@"Storage", nil)];
705 U1ByteSizeValueTransformer *byteSizeTransformer = [[U1ByteSizeValueTransformer alloc] init];
706 NSString *storageFormat = NSLocalizedString(@"%@ of %@ used", nil);
707 NSString *usedString = [byteSizeTransformer transformedValue:[self.accountInfo objectForKey:@"used_bytes"]];
708 NSString *totalString = [byteSizeTransformer transformedValue:[self.accountInfo objectForKey:@"max_bytes"]];
709- [cell.detailTextLabel setText:[NSString stringWithFormat:storageFormat, usedString, totalString]];
710+ [cell.detailTextLabel setText:@"Loading..."];
711+ if (self.accountInfo)
712+ [cell.detailTextLabel setText:[NSString stringWithFormat:storageFormat, usedString, totalString]];
713 [byteSizeTransformer release];
714 break;
715 }
716+ case 2:
717+ {
718+ cell = [self.tableView dequeueReusableCellWithIdentifier:@"LogOutCell"];
719+ if (!cell)
720+ {
721+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"LogOutCell"] autorelease];
722+ [cell.textLabel setTextAlignment:UITextAlignmentCenter];
723+ [cell.textLabel setFont:[UIFont boldSystemFontOfSize:17.f]];
724+ [cell.textLabel setText:@"Log Out of Ubuntu One"];
725+ }
726+ break;
727+ }
728 }
729- return cell;
730+ break;
731+// return cell;
732 }
733 case U1SettingsViewSectionCameraRoll:
734 {
735 switch (indexPath.row)
736 {
737- case 0: return [self preparedAutoUploadCell];
738- case 1: return [self preparedWifiOnlyCell];
739-// case 2: return [self preparedIncludeVideoCell];
740- case 2: return [self preparedDisableSleepCell];
741- default: return nil;
742+ case 0: cell = [self preparedAutoUploadCell]; break;
743+ case 1: cell = [self preparedWifiOnlyCell]; break;
744+// case 2: cell = [self preparedIncludeVideoCell]; break;
745+ case 2: cell = [self preparedDisableSleepCell]; break;
746+ default: break;
747 }
748+ [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
749 }
750 }
751- return nil;
752-}
753-
754-- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section;
755-{
756- if (section == U1SettingsViewSectionAccount)
757- return self.signOutView;
758- return nil;
759+ return cell;
760+}
761+
762+- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath;
763+{
764+ if (indexPath.section == U1SettingsViewSectionAccount && indexPath.row == 2)
765+ return indexPath;
766+ return nil;
767+}
768+
769+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
770+{
771+ if (indexPath.section == U1SettingsViewSectionAccount && indexPath.row == 2)
772+ {
773+ [self signOut:nil];
774+ [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
775+ }
776 }
777
778 - (UITableViewCell *)preparedAutoUploadCell;
779
780=== modified file 'Files/U1SettingsViewController.xib'
781--- Files/U1SettingsViewController.xib 2011-12-09 20:31:25 +0000
782+++ Files/U1SettingsViewController.xib 2011-12-13 20:52:29 +0000
783@@ -11,14 +11,12 @@
784 <string key="NS.object.0">933</string>
785 </object>
786 <array key="IBDocument.IntegratedClassDependencies">
787- <string>IBProxyObject</string>
788- <string>IBUIBarButtonItem</string>
789- <string>IBUILabel</string>
790 <string>IBUISwitch</string>
791- <string>IBUIToolbar</string>
792 <string>IBUITableView</string>
793 <string>IBUITableViewCell</string>
794 <string>IBUIView</string>
795+ <string>IBUILabel</string>
796+ <string>IBProxyObject</string>
797 </array>
798 <array key="IBDocument.PluginDependencies">
799 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
800@@ -112,7 +110,6 @@
801 <int key="IBUIStyle">1</int>
802 <int key="IBUISeparatorStyle">2</int>
803 <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
804- <bool key="IBUIAllowsSelection">NO</bool>
805 <float key="IBUIRowHeight">44</float>
806 <float key="IBUISectionHeaderHeight">10</float>
807 <float key="IBUISectionFooterHeight">10</float>
808@@ -126,7 +123,7 @@
809 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
810 </object>
811 <object class="IBUITableViewCell" id="126074602">
812- <reference key="NSNextResponder"/>
813+ <nil key="NSNextResponder"/>
814 <int key="NSvFlags">292</int>
815 <array class="NSMutableArray" key="NSSubviews">
816 <object class="IBUIView" id="289125020">
817@@ -138,8 +135,6 @@
818 <int key="NSvFlags">289</int>
819 <string key="NSFrame">{{206, 8}, {94, 27}}</string>
820 <reference key="NSSuperview" ref="289125020"/>
821- <reference key="NSWindow"/>
822- <reference key="NSNextKeyView"/>
823 <bool key="IBUIOpaque">NO</bool>
824 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
825 <int key="IBUIContentHorizontalAlignment">0</int>
826@@ -150,7 +145,6 @@
827 <int key="NSvFlags">292</int>
828 <string key="NSFrame">{{20, 11}, {193, 21}}</string>
829 <reference key="NSSuperview" ref="289125020"/>
830- <reference key="NSWindow"/>
831 <reference key="NSNextKeyView" ref="513262918"/>
832 <bool key="IBUIOpaque">NO</bool>
833 <bool key="IBUIClipsSubviews">YES</bool>
834@@ -178,7 +172,6 @@
835 </array>
836 <string key="NSFrameSize">{320, 43}</string>
837 <reference key="NSSuperview" ref="126074602"/>
838- <reference key="NSWindow"/>
839 <reference key="NSNextKeyView" ref="866302443"/>
840 <reference key="IBUIBackgroundColor" ref="509795101"/>
841 <bool key="IBUIOpaque">NO</bool>
842@@ -189,14 +182,12 @@
843 </object>
844 </array>
845 <string key="NSFrameSize">{320, 44}</string>
846- <reference key="NSSuperview"/>
847- <reference key="NSWindow"/>
848 <reference key="NSNextKeyView" ref="289125020"/>
849 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
850 <reference key="IBUIContentView" ref="289125020"/>
851 </object>
852 <object class="IBUITableViewCell" id="2020695">
853- <reference key="NSNextResponder"/>
854+ <nil key="NSNextResponder"/>
855 <int key="NSvFlags">292</int>
856 <array class="NSMutableArray" key="NSSubviews">
857 <object class="IBUIView" id="609546111">
858@@ -227,7 +218,6 @@
859 <int key="NSvFlags">289</int>
860 <string key="NSFrame">{{206, 8}, {94, 27}}</string>
861 <reference key="NSSuperview" ref="609546111"/>
862- <reference key="NSNextKeyView"/>
863 <bool key="IBUIOpaque">NO</bool>
864 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
865 <int key="IBUIContentHorizontalAlignment">0</int>
866@@ -247,13 +237,12 @@
867 </object>
868 </array>
869 <string key="NSFrameSize">{320, 44}</string>
870- <reference key="NSSuperview"/>
871 <reference key="NSNextKeyView" ref="609546111"/>
872 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
873 <reference key="IBUIContentView" ref="609546111"/>
874 </object>
875 <object class="IBUITableViewCell" id="703802727">
876- <reference key="NSNextResponder"/>
877+ <nil key="NSNextResponder"/>
878 <int key="NSvFlags">292</int>
879 <array class="NSMutableArray" key="NSSubviews">
880 <object class="IBUIView" id="849901570">
881@@ -284,7 +273,6 @@
882 <int key="NSvFlags">289</int>
883 <string key="NSFrame">{{206, 8}, {94, 27}}</string>
884 <reference key="NSSuperview" ref="849901570"/>
885- <reference key="NSNextKeyView"/>
886 <bool key="IBUIOpaque">NO</bool>
887 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
888 <int key="IBUIContentHorizontalAlignment">0</int>
889@@ -304,13 +292,12 @@
890 </object>
891 </array>
892 <string key="NSFrameSize">{320, 44}</string>
893- <reference key="NSSuperview"/>
894 <reference key="NSNextKeyView" ref="849901570"/>
895 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
896 <reference key="IBUIContentView" ref="849901570"/>
897 </object>
898 <object class="IBUITableViewCell" id="328240698">
899- <reference key="NSNextResponder"/>
900+ <nil key="NSNextResponder"/>
901 <int key="NSvFlags">292</int>
902 <array class="NSMutableArray" key="NSSubviews">
903 <object class="IBUIView" id="61456725">
904@@ -388,59 +375,11 @@
905 </object>
906 </array>
907 <string key="NSFrameSize">{320, 70}</string>
908- <reference key="NSSuperview"/>
909 <reference key="NSNextKeyView" ref="61456725"/>
910 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
911 <reference key="IBUIContentView" ref="61456725"/>
912 <real value="70" key="IBUIRowHeight"/>
913 </object>
914- <object class="IBUIView" id="393432936">
915- <reference key="NSNextResponder"/>
916- <int key="NSvFlags">292</int>
917- <array class="NSMutableArray" key="NSSubviews">
918- <object class="IBUIToolbar" id="398717734">
919- <reference key="NSNextResponder" ref="393432936"/>
920- <int key="NSvFlags">266</int>
921- <string key="NSFrameSize">{320, 44}</string>
922- <reference key="NSSuperview" ref="393432936"/>
923- <reference key="NSWindow"/>
924- <reference key="NSNextKeyView"/>
925- <bool key="IBUIOpaque">NO</bool>
926- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
927- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
928- <int key="IBUIBarStyle">2</int>
929- <array class="NSMutableArray" key="IBUIItems">
930- <object class="IBUIBarButtonItem" id="390888023">
931- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
932- <reference key="IBUIToolbar" ref="398717734"/>
933- <int key="IBUISystemItemIdentifier">5</int>
934- </object>
935- <object class="IBUIBarButtonItem" id="172971356">
936- <string key="IBUITitle">Sign Out of Ubuntu One</string>
937- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
938- <float key="IBUIWidth">300</float>
939- <int key="IBUIStyle">1</int>
940- <reference key="IBUIToolbar" ref="398717734"/>
941- </object>
942- <object class="IBUIBarButtonItem" id="1054082570">
943- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
944- <reference key="IBUIToolbar" ref="398717734"/>
945- <int key="IBUISystemItemIdentifier">5</int>
946- </object>
947- </array>
948- <object class="NSColor" key="IBUITintColor">
949- <int key="NSColorSpace">1</int>
950- <bytes key="NSRGB">MC44IDAgMAA</bytes>
951- </object>
952- </object>
953- </array>
954- <string key="NSFrameSize">{320, 44}</string>
955- <reference key="NSSuperview"/>
956- <reference key="NSWindow"/>
957- <reference key="NSNextKeyView" ref="398717734"/>
958- <reference key="IBUIBackgroundColor" ref="509795101"/>
959- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
960- </object>
961 </array>
962 <object class="IBObjectContainer" key="IBDocument.Objects">
963 <array class="NSMutableArray" key="connectionRecords">
964@@ -550,14 +489,6 @@
965 </object>
966 <object class="IBConnectionRecord">
967 <object class="IBCocoaTouchOutletConnection" key="connection">
968- <string key="label">signOutView</string>
969- <reference key="source" ref="372490531"/>
970- <reference key="destination" ref="393432936"/>
971- </object>
972- <int key="connectionID">56</int>
973- </object>
974- <object class="IBConnectionRecord">
975- <object class="IBCocoaTouchOutletConnection" key="connection">
976 <string key="label">dataSource</string>
977 <reference key="source" ref="703168831"/>
978 <reference key="destination" ref="372490531"/>
979@@ -608,14 +539,6 @@
980 </object>
981 <int key="connectionID">51</int>
982 </object>
983- <object class="IBConnectionRecord">
984- <object class="IBCocoaTouchEventConnection" key="connection">
985- <string key="label">signOut:</string>
986- <reference key="source" ref="172971356"/>
987- <reference key="destination" ref="372490531"/>
988- </object>
989- <int key="connectionID">59</int>
990- </object>
991 </array>
992 <object class="IBMutableOrderedSet" key="objectRecords">
993 <array key="orderedObjects">
994@@ -731,40 +654,6 @@
995 <reference key="object" ref="792393428"/>
996 <reference key="parent" ref="328240698"/>
997 </object>
998- <object class="IBObjectRecord">
999- <int key="objectID">53</int>
1000- <reference key="object" ref="393432936"/>
1001- <array class="NSMutableArray" key="children">
1002- <reference ref="398717734"/>
1003- </array>
1004- <reference key="parent" ref="0"/>
1005- <string key="objectName">Sign Out View</string>
1006- </object>
1007- <object class="IBObjectRecord">
1008- <int key="objectID">54</int>
1009- <reference key="object" ref="398717734"/>
1010- <array class="NSMutableArray" key="children">
1011- <reference ref="172971356"/>
1012- <reference ref="1054082570"/>
1013- <reference ref="390888023"/>
1014- </array>
1015- <reference key="parent" ref="393432936"/>
1016- </object>
1017- <object class="IBObjectRecord">
1018- <int key="objectID">55</int>
1019- <reference key="object" ref="172971356"/>
1020- <reference key="parent" ref="398717734"/>
1021- </object>
1022- <object class="IBObjectRecord">
1023- <int key="objectID">57</int>
1024- <reference key="object" ref="1054082570"/>
1025- <reference key="parent" ref="398717734"/>
1026- </object>
1027- <object class="IBObjectRecord">
1028- <int key="objectID">58</int>
1029- <reference key="object" ref="390888023"/>
1030- <reference key="parent" ref="398717734"/>
1031- </object>
1032 </array>
1033 </object>
1034 <dictionary class="NSMutableDictionary" key="flattenedProperties">
1035@@ -787,18 +676,12 @@
1036 <string key="45.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1037 <string key="46.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1038 <string key="50.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1039- <string key="53.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1040- <string key="54.CustomClassName">U1TransparentToolbar</string>
1041- <string key="54.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1042- <string key="55.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1043- <string key="57.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1044- <string key="58.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1045 </dictionary>
1046 <dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
1047 <nil key="activeLocalization"/>
1048 <dictionary class="NSMutableDictionary" key="localizations"/>
1049 <nil key="sourceID"/>
1050- <int key="maxID">59</int>
1051+ <int key="maxID">61</int>
1052 </object>
1053 <object class="IBClassDescriber" key="IBDocument.Classes">
1054 <array class="NSMutableArray" key="referencedPartialClassDescriptions">
1055@@ -847,7 +730,6 @@
1056 <string key="includeVideoToggleCell">UITableViewCell</string>
1057 <string key="includeVideoToggleLabel">UILabel</string>
1058 <string key="navBar">U1NavigationBar</string>
1059- <string key="signOutView">UIView</string>
1060 <string key="tableView">UITableView</string>
1061 <string key="wifiOnlyToggle">UISwitch</string>
1062 <string key="wifiOnlyToggleCell">UITableViewCell</string>
1063@@ -890,10 +772,6 @@
1064 <string key="name">navBar</string>
1065 <string key="candidateClassName">U1NavigationBar</string>
1066 </object>
1067- <object class="IBToOneOutletInfo" key="signOutView">
1068- <string key="name">signOutView</string>
1069- <string key="candidateClassName">UIView</string>
1070- </object>
1071 <object class="IBToOneOutletInfo" key="tableView">
1072 <string key="name">tableView</string>
1073 <string key="candidateClassName">UITableView</string>
1074@@ -916,14 +794,6 @@
1075 <string key="minorKey">./Classes/U1SettingsViewController.h</string>
1076 </object>
1077 </object>
1078- <object class="IBPartialClassDescription">
1079- <string key="className">U1TransparentToolbar</string>
1080- <string key="superclassName">UIToolbar</string>
1081- <object class="IBClassDescriptionSource" key="sourceIdentifier">
1082- <string key="majorKey">IBProjectSource</string>
1083- <string key="minorKey">./Classes/U1TransparentToolbar.h</string>
1084- </object>
1085- </object>
1086 </array>
1087 </object>
1088 <int key="IBDocument.localizationMode">0</int>
1089
1090=== modified file 'Files/UOSSOCredentialsViewController.xib'
1091--- Files/UOSSOCredentialsViewController.xib 2011-08-31 14:56:30 +0000
1092+++ Files/UOSSOCredentialsViewController.xib 2011-12-13 20:52:29 +0000
1093@@ -1,14 +1,14 @@
1094 <?xml version="1.0" encoding="UTF-8"?>
1095 <archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
1096 <data>
1097- <int key="IBDocument.SystemTarget">1056</int>
1098+ <int key="IBDocument.SystemTarget">1280</int>
1099 <string key="IBDocument.SystemVersion">10K549</string>
1100- <string key="IBDocument.InterfaceBuilderVersion">1306</string>
1101+ <string key="IBDocument.InterfaceBuilderVersion">1938</string>
1102 <string key="IBDocument.AppKitVersion">1038.36</string>
1103 <string key="IBDocument.HIToolboxVersion">461.00</string>
1104 <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
1105 <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1106- <string key="NS.object.0">301</string>
1107+ <string key="NS.object.0">933</string>
1108 </object>
1109 <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
1110 <bool key="EncodedWithXMLCoder">YES</bool>
1111@@ -24,11 +24,8 @@
1112 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1113 </object>
1114 <object class="NSMutableDictionary" key="IBDocument.Metadata">
1115- <bool key="EncodedWithXMLCoder">YES</bool>
1116- <object class="NSArray" key="dict.sortedKeys" id="0">
1117- <bool key="EncodedWithXMLCoder">YES</bool>
1118- </object>
1119- <reference key="dict.values" ref="0"/>
1120+ <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
1121+ <integer value="1" key="NS.object.0"/>
1122 </object>
1123 <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
1124 <bool key="EncodedWithXMLCoder">YES</bool>
1125@@ -48,7 +45,7 @@
1126 <object class="IBUITextField" id="327454090">
1127 <reference key="NSNextResponder" ref="191373211"/>
1128 <int key="NSvFlags">292</int>
1129- <string key="NSFrame">{{120, 24}, {180, 31}}</string>
1130+ <string key="NSFrame">{{104, 24}, {196, 31}}</string>
1131 <reference key="NSSuperview" ref="191373211"/>
1132 <reference key="NSWindow"/>
1133 <reference key="NSNextKeyView" ref="1028176743"/>
1134@@ -58,7 +55,6 @@
1135 <int key="IBUIContentVerticalAlignment">0</int>
1136 <string key="IBUIText"/>
1137 <int key="IBUIBorderStyle">3</int>
1138- <string key="IBUIPlaceholder">user@domain.com</string>
1139 <object class="NSColor" key="IBUITextColor">
1140 <int key="NSColorSpace">3</int>
1141 <bytes key="NSWhite">MAA</bytes>
1142@@ -66,23 +62,29 @@
1143 <int key="NSID">2</int>
1144 </object>
1145 </object>
1146- <object class="NSFont" key="IBUIFont">
1147+ <bool key="IBUIAdjustsFontSizeToFit">YES</bool>
1148+ <float key="IBUIMinimumFontSize">17</float>
1149+ <object class="IBUITextInputTraits" key="IBUITextInputTraits">
1150+ <int key="IBUIAutocorrectionType">1</int>
1151+ <int key="IBUIKeyboardType">7</int>
1152+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
1153+ </object>
1154+ <object class="IBUIFontDescription" key="IBUIFontDescription">
1155+ <string key="name">Helvetica</string>
1156+ <string key="family">Helvetica</string>
1157+ <int key="traits">0</int>
1158+ <double key="pointSize">12</double>
1159+ </object>
1160+ <object class="NSFont" key="IBUIFont" id="9578050">
1161 <string key="NSName">Helvetica</string>
1162 <double key="NSSize">12</double>
1163 <int key="NSfFlags">16</int>
1164 </object>
1165- <bool key="IBUIAdjustsFontSizeToFit">YES</bool>
1166- <float key="IBUIMinimumFontSize">17</float>
1167- <object class="IBUITextInputTraits" key="IBUITextInputTraits">
1168- <int key="IBUIAutocorrectionType">1</int>
1169- <int key="IBUIKeyboardType">7</int>
1170- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
1171- </object>
1172 </object>
1173 <object class="IBUITextField" id="965235407">
1174 <reference key="NSNextResponder" ref="191373211"/>
1175 <int key="NSvFlags">292</int>
1176- <string key="NSFrame">{{120, 63}, {180, 31}}</string>
1177+ <string key="NSFrame">{{104, 63}, {196, 31}}</string>
1178 <reference key="NSSuperview" ref="191373211"/>
1179 <reference key="NSWindow"/>
1180 <reference key="NSNextKeyView" ref="391813410"/>
1181@@ -92,7 +94,6 @@
1182 <int key="IBUIContentVerticalAlignment">0</int>
1183 <string key="IBUIText"/>
1184 <int key="IBUIBorderStyle">3</int>
1185- <string key="IBUIPlaceholder">secret</string>
1186 <object class="NSColor" key="IBUITextColor">
1187 <int key="NSColorSpace">3</int>
1188 <bytes key="NSWhite">MAA</bytes>
1189@@ -104,11 +105,16 @@
1190 <bool key="IBUISecureTextEntry">YES</bool>
1191 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
1192 </object>
1193+ <object class="IBUIFontDescription" key="IBUIFontDescription">
1194+ <int key="type">1</int>
1195+ <double key="pointSize">12</double>
1196+ </object>
1197+ <reference key="IBUIFont" ref="9578050"/>
1198 </object>
1199 <object class="IBUILabel" id="522019067">
1200 <reference key="NSNextResponder" ref="191373211"/>
1201 <int key="NSvFlags">292</int>
1202- <string key="NSFrame">{{13, 28}, {101, 21}}</string>
1203+ <string key="NSFrame">{{13, 28}, {83, 21}}</string>
1204 <reference key="NSSuperview" ref="191373211"/>
1205 <reference key="NSWindow"/>
1206 <reference key="NSNextKeyView" ref="327454090"/>
1207@@ -117,12 +123,7 @@
1208 <int key="IBUIContentMode">7</int>
1209 <bool key="IBUIUserInteractionEnabled">NO</bool>
1210 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
1211- <string key="IBUIText">Email address:</string>
1212- <object class="NSFont" key="IBUIFont" id="638683467">
1213- <string key="NSName">HelveticaNeue</string>
1214- <double key="NSSize">13</double>
1215- <int key="NSfFlags">16</int>
1216- </object>
1217+ <string key="IBUIText">Username:</string>
1218 <object class="NSColor" key="IBUITextColor" id="377051206">
1219 <int key="NSColorSpace">1</int>
1220 <bytes key="NSRGB">MCAwIDAAA</bytes>
1221@@ -131,11 +132,22 @@
1222 <int key="IBUIBaselineAdjustment">1</int>
1223 <float key="IBUIMinimumFontSize">10</float>
1224 <int key="IBUITextAlignment">2</int>
1225+ <object class="IBUIFontDescription" key="IBUIFontDescription" id="893899974">
1226+ <string key="name">HelveticaNeue</string>
1227+ <string key="family">Helvetica Neue</string>
1228+ <int key="traits">0</int>
1229+ <double key="pointSize">13</double>
1230+ </object>
1231+ <object class="NSFont" key="IBUIFont" id="16180291">
1232+ <string key="NSName">HelveticaNeue-Medium</string>
1233+ <double key="NSSize">13</double>
1234+ <int key="NSfFlags">16</int>
1235+ </object>
1236 </object>
1237 <object class="IBUILabel" id="1028176743">
1238 <reference key="NSNextResponder" ref="191373211"/>
1239 <int key="NSvFlags">292</int>
1240- <string key="NSFrame">{{13, 67}, {101, 21}}</string>
1241+ <string key="NSFrame">{{13, 67}, {83, 21}}</string>
1242 <reference key="NSSuperview" ref="191373211"/>
1243 <reference key="NSWindow"/>
1244 <reference key="NSNextKeyView" ref="965235407"/>
1245@@ -145,12 +157,13 @@
1246 <bool key="IBUIUserInteractionEnabled">NO</bool>
1247 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
1248 <string key="IBUIText">Password:</string>
1249- <reference key="IBUIFont" ref="638683467"/>
1250 <reference key="IBUITextColor" ref="377051206"/>
1251 <nil key="IBUIHighlightedColor"/>
1252 <int key="IBUIBaselineAdjustment">1</int>
1253 <float key="IBUIMinimumFontSize">10</float>
1254 <int key="IBUITextAlignment">2</int>
1255+ <reference key="IBUIFontDescription" ref="893899974"/>
1256+ <reference key="IBUIFont" ref="16180291"/>
1257 </object>
1258 <object class="IBUIButton" id="1065737352">
1259 <reference key="NSNextResponder" ref="191373211"/>
1260@@ -167,11 +180,6 @@
1261 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
1262 <int key="IBUIContentHorizontalAlignment">0</int>
1263 <int key="IBUIContentVerticalAlignment">0</int>
1264- <object class="NSFont" key="IBUIFont">
1265- <string key="NSName">HelveticaNeue-Bold</string>
1266- <double key="NSSize">14</double>
1267- <int key="NSfFlags">16</int>
1268- </object>
1269 <bool key="IBUIReversesTitleShadowWhenHighlighted">YES</bool>
1270 <bool key="IBUIShowsTouchWhenHighlighted">YES</bool>
1271 <string key="IBUINormalTitle">Continue</string>
1272@@ -184,6 +192,17 @@
1273 <int key="NSColorSpace">3</int>
1274 <bytes key="NSWhite">MC41AA</bytes>
1275 </object>
1276+ <object class="IBUIFontDescription" key="IBUIFontDescription">
1277+ <string key="name">HelveticaNeue-Bold</string>
1278+ <string key="family">Helvetica Neue</string>
1279+ <int key="traits">2</int>
1280+ <double key="pointSize">14</double>
1281+ </object>
1282+ <object class="NSFont" key="IBUIFont">
1283+ <string key="NSName">HelveticaNeue-Bold</string>
1284+ <double key="NSSize">14</double>
1285+ <int key="NSfFlags">16</int>
1286+ </object>
1287 </object>
1288 <object class="IBUIActivityIndicatorView" id="391813410">
1289 <reference key="NSNextResponder" ref="191373211"/>
1290@@ -200,7 +219,7 @@
1291 <string key="NSFrame">{{0, 64}, {320, 416}}</string>
1292 <reference key="NSSuperview"/>
1293 <reference key="NSWindow"/>
1294- <reference key="NSNextKeyView"/>
1295+ <reference key="NSNextKeyView" ref="522019067"/>
1296 <object class="NSColor" key="IBUIBackgroundColor">
1297 <int key="NSColorSpace">3</int>
1298 <bytes key="NSWhite">MQA</bytes>
1299@@ -241,6 +260,22 @@
1300 <int key="connectionID">13</int>
1301 </object>
1302 <object class="IBConnectionRecord">
1303+ <object class="IBCocoaTouchOutletConnection" key="connection">
1304+ <string key="label">loginButton</string>
1305+ <reference key="source" ref="372490531"/>
1306+ <reference key="destination" ref="1065737352"/>
1307+ </object>
1308+ <int key="connectionID">20</int>
1309+ </object>
1310+ <object class="IBConnectionRecord">
1311+ <object class="IBCocoaTouchOutletConnection" key="connection">
1312+ <string key="label">spinner</string>
1313+ <reference key="source" ref="372490531"/>
1314+ <reference key="destination" ref="391813410"/>
1315+ </object>
1316+ <int key="connectionID">23</int>
1317+ </object>
1318+ <object class="IBConnectionRecord">
1319 <object class="IBCocoaTouchEventConnection" key="connection">
1320 <string key="label">logIn:</string>
1321 <reference key="source" ref="1065737352"/>
1322@@ -249,29 +284,15 @@
1323 </object>
1324 <int key="connectionID">14</int>
1325 </object>
1326- <object class="IBConnectionRecord">
1327- <object class="IBCocoaTouchOutletConnection" key="connection">
1328- <string key="label">loginButton</string>
1329- <reference key="source" ref="372490531"/>
1330- <reference key="destination" ref="1065737352"/>
1331- </object>
1332- <int key="connectionID">20</int>
1333- </object>
1334- <object class="IBConnectionRecord">
1335- <object class="IBCocoaTouchOutletConnection" key="connection">
1336- <string key="label">spinner</string>
1337- <reference key="source" ref="372490531"/>
1338- <reference key="destination" ref="391813410"/>
1339- </object>
1340- <int key="connectionID">23</int>
1341- </object>
1342 </object>
1343 <object class="IBMutableOrderedSet" key="objectRecords">
1344 <object class="NSArray" key="orderedObjects">
1345 <bool key="EncodedWithXMLCoder">YES</bool>
1346 <object class="IBObjectRecord">
1347 <int key="objectID">0</int>
1348- <reference key="object" ref="0"/>
1349+ <object class="NSArray" key="object" id="0">
1350+ <bool key="EncodedWithXMLCoder">YES</bool>
1351+ </object>
1352 <reference key="children" ref="1000"/>
1353 <nil key="parent"/>
1354 </object>
1355@@ -337,8 +358,9 @@
1356 <object class="NSArray" key="dict.sortedKeys">
1357 <bool key="EncodedWithXMLCoder">YES</bool>
1358 <string>-1.CustomClassName</string>
1359+ <string>-1.IBPluginDependency</string>
1360 <string>-2.CustomClassName</string>
1361- <string>1.IBEditorWindowLastContentRect</string>
1362+ <string>-2.IBPluginDependency</string>
1363 <string>1.IBPluginDependency</string>
1364 <string>11.IBPluginDependency</string>
1365 <string>22.IBPluginDependency</string>
1366@@ -350,8 +372,9 @@
1367 <object class="NSMutableArray" key="dict.values">
1368 <bool key="EncodedWithXMLCoder">YES</bool>
1369 <string>UOSSOCredentialsViewController</string>
1370+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1371 <string>UIResponder</string>
1372- <string>{{556, 412}, {320, 480}}</string>
1373+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1374 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1375 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1376 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1377@@ -460,6 +483,6 @@
1378 </object>
1379 <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
1380 <int key="IBDocument.defaultPropertyAccessControl">3</int>
1381- <string key="IBCocoaTouchPluginVersion">301</string>
1382+ <string key="IBCocoaTouchPluginVersion">933</string>
1383 </data>
1384 </archive>

Subscribers

People subscribed via source and target branches