Merge lp:~urbanape/ubuntuone-ios-music/fix-album-scroll-lag into lp:ubuntuone-ios-music

Proposed by Zachery Bir
Status: Merged
Approved by: Zachery Bir
Approved revision: no longer in the source branch.
Merged at revision: 220
Proposed branch: lp:~urbanape/ubuntuone-ios-music/fix-album-scroll-lag
Merge into: lp:ubuntuone-ios-music
Diff against target: 1083 lines (+308/-292)
11 files modified
U1Music-Info.plist (+2/-2)
about/about.html (+1/-1)
utilities/Globals.h (+1/-0)
utilities/Globals.m (+6/-0)
utilities/operations/AlbumArtLoader.h (+1/-2)
utilities/operations/AlbumArtLoader.m (+76/-22)
view_controllers/AlbumListViewController.m (+11/-35)
view_controllers/AlbumViewController.m (+11/-10)
view_controllers/ArtistViewController.m (+11/-35)
view_controllers/SongViewController.m (+11/-5)
xibs/SongViewController.xib (+177/-180)
To merge this branch: bzr merge lp:~urbanape/ubuntuone-ios-music/fix-album-scroll-lag
Reviewer Review Type Date Requested Status
Paul Hummer (community) Approve
Review via email: mp+111661@code.launchpad.net

Description of the change

This branch attempts to fix the scroll lag seen on the Albums view by fetching, resizing, and loading the images in the background.

I think there is still some work to be done, since I can still make the view lag a bit on first load (via the network).

To post a comment you must log in.
Revision history for this message
Paul Hummer (rockstar) :
review: Approve
220. By Zachery Bir

Merged fix-album-scroll-lag branch

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'U1Music-Info.plist'
2--- U1Music-Info.plist 2012-06-15 22:22:10 +0000
3+++ U1Music-Info.plist 2012-06-22 18:48:18 +0000
4@@ -24,7 +24,7 @@
5 <key>CFBundlePackageType</key>
6 <string>APPL</string>
7 <key>CFBundleShortVersionString</key>
8- <string>2.3</string>
9+ <string>2.4</string>
10 <key>CFBundleSignature</key>
11 <string>UOMS</string>
12 <key>CFBundleURLTypes</key>
13@@ -39,7 +39,7 @@
14 </dict>
15 </array>
16 <key>CFBundleVersion</key>
17- <string>54</string>
18+ <string>55</string>
19 <key>LSRequiresIPhoneOS</key>
20 <false/>
21 <key>NSMainNibFile</key>
22
23=== modified file 'about/about.html'
24--- about/about.html 2012-06-15 22:22:10 +0000
25+++ about/about.html 2012-06-22 18:48:18 +0000
26@@ -15,7 +15,7 @@
27 <h1>Ubuntu One Music</h1>
28
29 <p class="center">
30- Version 2.3 (build 54)
31+ Version 2.4 (build 55)
32 </p>
33 <p class="center">
34 &copy;2010-2011 Canonical Limited. All rights reserved.
35
36=== modified file 'utilities/Globals.h'
37--- utilities/Globals.h 2012-02-29 16:07:56 +0000
38+++ utilities/Globals.h 2012-06-22 18:48:18 +0000
39@@ -31,6 +31,7 @@
40
41 NSURL* CachedAlbumArtDirectory( void );
42 NSString* CachedAlbumArtPathForArtId(NSString *anArtId);
43+NSString* CachedAlbumArtPathForArtIdAtSize(NSString *anArtId, int size);
44
45 extern NSString * const NOTIF_downloadComplete;
46 extern NSString * const NOTIF_removeCachedContent;
47
48=== modified file 'utilities/Globals.m'
49--- utilities/Globals.m 2012-02-29 16:55:48 +0000
50+++ utilities/Globals.m 2012-06-22 18:48:18 +0000
51@@ -79,6 +79,12 @@
52 return [[CachedAlbumArtDirectory() path] stringByAppendingPathComponent:anArtId];
53 }
54
55+NSString* CachedAlbumArtPathForArtIdAtSize(NSString *anArtId, int size)
56+{
57+ NSURL *sizeDirectory = CachedAlbumArtDirectory();
58+ return [[sizeDirectory path] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%d", anArtId, size]];
59+}
60+
61 NSString * const NOTIF_downloadComplete = @"DownloadComplete";
62 NSString * const NOTIF_removeCachedContent = @"RemoveCachedContent";
63 NSString * const NOTIF_reloadAccountCredentials = @"ReloadAccountCredentials";
64
65=== modified file 'utilities/operations/AlbumArtLoader.h'
66--- utilities/operations/AlbumArtLoader.h 2011-06-21 15:29:37 +0000
67+++ utilities/operations/AlbumArtLoader.h 2012-06-22 18:48:18 +0000
68@@ -39,7 +39,6 @@
69 @property(nonatomic) int imageSize;
70 @property(nonatomic,assign) id<AlbumArtLoaderDelegate> delegate;
71 @property(nonatomic,retain) UIImage *defaultAlbumArt;
72-- (UIImage*)imageForArtID:(NSString*)artID error:(NSError**)error;
73-- (void)download:(NSString*)artID;
74+- (void)computeAlbumArtForId:(NSString *)albumArtId completionBlock:(void (^)(UIImage *))completionBlock;
75 + (NSString*)cacheSize;
76 @end
77
78=== modified file 'utilities/operations/AlbumArtLoader.m'
79--- utilities/operations/AlbumArtLoader.m 2011-11-05 00:42:21 +0000
80+++ utilities/operations/AlbumArtLoader.m 2012-06-22 18:48:18 +0000
81@@ -24,9 +24,14 @@
82
83 @interface AlbumArtLoader ()
84 - (void)createAlbumArtDirectory;
85-- (NSString*)URLFromCoverArtID:(NSString*)artID;
86+- (NSString*)URLFromCoverArtId:(NSString*)artId;
87+- (UIImage *)resizeAndSaveImage:(UIImage *)image toPath:(NSString *)path;
88+- (void)cacheImage:(UIImage *)image atPath:(NSString *)path;
89+- (UIImage *)defaultAlbumArtSized:(NSUInteger)size;
90+- (void)download:(NSString *)artId;
91 @end
92
93+const int MAX_ART_SIZE = 640;
94
95 @implementation AlbumArtLoader
96 @synthesize delegate;
97@@ -40,7 +45,7 @@
98 [self createAlbumArtDirectory];
99
100 self.imageSize = 640; // Default to maximum size we need
101- self.defaultAlbumArt = [UIImage imageNamed:@"default-album-art"];
102+ self.defaultAlbumArt = [UIImage imageNamed:@"default-album-art"];
103
104 downloadCache = [[NSMutableDictionary alloc] init];
105 downloadedURLs = [[NSMutableSet alloc] init];
106@@ -55,7 +60,7 @@
107 [downloadCache release];
108 [downloadedURLs release];
109 [queue release];
110- [defaultAlbumArt release];
111+ [defaultAlbumArt release];
112
113 [super dealloc];
114 }
115@@ -63,27 +68,58 @@
116 #pragma mark -
117 #pragma mark Public Methods
118
119-- (UIImage*)imageForArtID:(NSString*)artID error:(NSError**)error
120+- (void)computeAlbumArtForId:(NSString *)artId completionBlock:(void (^)(UIImage *))completionBlock;
121 {
122- NSString *path = CachedAlbumArtPathForArtId(artID);
123+ // Try to fetch the appropriate cached version of the album art
124+
125+ NSString *path = nil;
126+ if (self.imageSize != MAX_ART_SIZE)
127+ {
128+ path = CachedAlbumArtPathForArtIdAtSize(artId, self.imageSize);
129+ }
130+ else
131+ {
132+ // Max size path is unadorned
133+ path = CachedAlbumArtPathForArtId(artId);
134+ }
135 UIImage *image = [UIImage imageWithContentsOfFile:path];
136
137- if (nil == image) {
138- // Cache fault: return the default image, and set the error so the caller can dispatch for an attempt at download
139- image = self.defaultAlbumArt;
140- *error = [NSError errorWithDomain:@"U1Music" code:1 userInfo:nil];
141- }
142- return [image resizedImage:CGSizeMake(self.imageSize, self.imageSize) interpolationQuality:kCGInterpolationHigh];
143-}
144-
145-- (void)download:(NSString*)artID
146+ if (image != nil)
147+ {
148+ return completionBlock(image);
149+ }
150+
151+ // Failing that, resize the highest resolution one we have
152+
153+ __block NSString *_resizedPath = path;
154+
155+ NSString *fullSizePath = CachedAlbumArtPathForArtId(artId);
156+ UIImage *fullSizeImage = [UIImage imageWithContentsOfFile:fullSizePath];
157+ if (fullSizeImage != nil)
158+ {
159+ UIImage *resizedImage = [self resizeAndSaveImage:fullSizeImage toPath:_resizedPath];
160+ completionBlock(resizedImage);
161+ return;
162+ }
163+
164+ // Failing that, return defaultAlbumArt and download and resize what we need
165+ [self download:artId];
166+ completionBlock([self defaultAlbumArtSized:self.imageSize]);
167+}
168+
169+- (UIImage *)defaultAlbumArtSized:(NSUInteger)size;
170+{
171+ return [self.defaultAlbumArt resizedImage:CGSizeMake(self.imageSize, self.imageSize) interpolationQuality:kCGInterpolationHigh];
172+}
173+
174+- (void)download:(NSString*)artId;
175 {
176- if (nil == artID)
177+ if (nil == artId)
178 {
179 return;
180 }
181
182- NSURL *url = [NSURL URLWithString:[self URLFromCoverArtID:artID]];
183+ NSURL *url = [NSURL URLWithString:[self URLFromCoverArtId:artId]];
184
185 @synchronized(self)
186 {
187@@ -91,7 +127,7 @@
188 {
189 [downloadedURLs addObject:url];
190
191- AlbumArtLoadingOperation *operation = [[AlbumArtLoadingOperation alloc] initWithArtId: artID URL:url];
192+ AlbumArtLoadingOperation *operation = [[AlbumArtLoadingOperation alloc] initWithArtId:artId URL:url];
193 operation.delegate = self;
194 [queue addOperation:operation];
195 [operation release];
196@@ -126,13 +162,13 @@
197 #pragma mark -
198 #pragma mark Private Methods
199
200-- (NSString*)URLFromCoverArtID:(NSString*)artID
201+- (NSString*)URLFromCoverArtId:(NSString*)artId
202 {
203 NSMutableArray *parameters = [NSMutableArray array];
204- [parameters addKeyValueObjectFromArray:[NSArray arrayWithObjects:@"id", artID, nil]];
205+ [parameters addKeyValueObjectFromArray:[NSArray arrayWithObjects:@"id", artId, nil]];
206
207 // Always get the largest we can handle
208- [parameters addKeyValueObjectFromArray:[NSArray arrayWithObjects:@"size", [NSString stringWithFormat:@"%d", 640], nil]];
209+ [parameters addKeyValueObjectFromArray:[NSArray arrayWithObjects:@"size", [NSString stringWithFormat:@"%d", MAX_ART_SIZE], nil]];
210
211 NSURL *url = [[Subsonic sharedSubsonic] getMetadataURL:@"getCoverArt.view" parameters:parameters];
212 return [url absoluteString];
213@@ -149,13 +185,31 @@
214 }
215 }
216
217+- (void)cacheImage:(UIImage *)image atPath:(NSString *)path;
218+{
219+ NSData *imageData = UIImagePNGRepresentation(image);
220+ [imageData writeToFile:path atomically:YES];
221+}
222+
223+- (UIImage *)resizeAndSaveImage:(UIImage *)image toPath:(NSString *)path;
224+{
225+ UIImage *resizedImage = [image resizedImage:CGSizeMake(self.imageSize, self.imageSize) interpolationQuality:kCGInterpolationHigh];
226+ [self cacheImage:resizedImage atPath:path];
227+ return resizedImage;
228+}
229+
230 #pragma mark -
231 #pragma mark AlbumArtLoadingOperationDelegate
232
233 - (void)imageLoaded:(UIImage*)image forArtId:(NSString *)artId
234 {
235- NSData *imageData = UIImagePNGRepresentation(image);
236- [imageData writeToFile:CachedAlbumArtPathForArtId(artId) atomically:YES];
237+ NSString *path = CachedAlbumArtPathForArtId(artId);
238+ [self cacheImage:image atPath:path];
239+
240+ if (self.imageSize != MAX_ART_SIZE)
241+ {
242+ [self resizeAndSaveImage:image toPath:CachedAlbumArtPathForArtIdAtSize(artId, self.imageSize)];
243+ }
244
245 if (self.delegate)
246 {
247
248=== modified file 'view_controllers/AlbumListViewController.m'
249--- view_controllers/AlbumListViewController.m 2012-02-17 16:40:18 +0000
250+++ view_controllers/AlbumListViewController.m 2012-06-22 18:48:18 +0000
251@@ -173,17 +173,18 @@
252
253 cell.albumNameLabel.text = album.title;
254 cell.artistNameLabel.text = album.artist;
255-
256- NSError *error = nil;
257- cell.coverArtView.image = [loader imageForArtID:album.coverArtId error:&error];
258+
259+ __block AlbumArtistUITableViewCell *_cell = cell;
260+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
261+ ^{
262+ [loader computeAlbumArtForId:album.coverArtId completionBlock:^(UIImage *image) {
263+ dispatch_async(dispatch_get_main_queue(),
264+ ^{
265+ _cell.coverArtView.image = image;
266+ });
267+ }];
268+ });
269
270- if ([error code]) {
271- // Let's see if we need to wait for non-dragging/decelerating
272-// if (self.tableView.dragging == NO && self.tableView.decelerating == NO)
273-// {
274- [loader download:album.coverArtId];
275-// }
276- }
277 if (canStream || [album hasCachedSongs])
278 {
279 cell.albumNameLabel.textColor = [UIColor blackColor];
280@@ -242,29 +243,4 @@
281 [self.tableView reloadData];
282 }
283
284-- (void)loadImagesForOnscreenRows
285-{
286- for (NSIndexPath *indexPath in [self.tableView indexPathsForVisibleRows])
287- {
288- Album *album = [self.tableData objectAtIndex:indexPath.row];
289- // This will prompt the album art to download, but doesn't try to load the image when it's done?
290- [loader download:album.coverArtId];
291- }
292-}
293-
294-- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
295-{
296- [super scrollViewDidEndDragging:scrollView willDecelerate:decelerate];
297-
298- if (!decelerate)
299- {
300- [self loadImagesForOnscreenRows];
301- }
302-}
303-
304-- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
305-{
306- [self loadImagesForOnscreenRows];
307-}
308-
309 @end
310
311=== modified file 'view_controllers/AlbumViewController.m'
312--- view_controllers/AlbumViewController.m 2012-02-21 16:53:27 +0000
313+++ view_controllers/AlbumViewController.m 2012-06-22 18:48:18 +0000
314@@ -362,17 +362,18 @@
315 headerView.backgroundColor = grayColor;
316
317 coverArt = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];
318- NSError *error = nil;
319- coverArt.image = [loader imageForArtID:self.album.coverArtId error:&error];
320+ __block UIImageView *_coverArtView = coverArt;
321+ __block NSString *_coverArtId = self.album.coverArtId;
322+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
323+ ^{
324+ [loader computeAlbumArtForId:_coverArtId completionBlock:^(UIImage *image) {
325+ dispatch_async(dispatch_get_main_queue(),
326+ ^{
327+ _coverArtView.image = image;
328+ });
329+ }];
330+ });
331
332- if ([error code]) {
333- // Let's see if we need to wait for non-dragging/decelerating
334-// if (self.tableView.dragging == NO && self.tableView.decelerating == NO)
335-// {
336- [loader download:self.album.coverArtId];
337-// }
338- }
339-
340 [headerView addSubview:coverArt];
341
342 artistLabel = [[UILabel alloc] initWithFrame:CGRectMake(120, 10, 200, 20)];
343
344=== modified file 'view_controllers/ArtistViewController.m'
345--- view_controllers/ArtistViewController.m 2012-02-17 16:28:36 +0000
346+++ view_controllers/ArtistViewController.m 2012-06-22 18:48:18 +0000
347@@ -224,16 +224,17 @@
348 cell.album = album;
349 cell.albumNameLabel.text = album.title;
350
351- NSError *error = nil;
352- cell.coverArtView.image = [loader imageForArtID:album.coverArtId error:&error];
353-
354- if ([error code]) {
355- // Let's see if we need to wait for non-dragging/decelerating
356- // if (self.tableView.dragging == NO && self.tableView.decelerating == NO)
357- // {
358- [loader download:album.coverArtId];
359- // }
360- }
361+ __block AlbumUITableViewCell *_cell = cell;
362+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
363+ ^{
364+ [loader computeAlbumArtForId:album.coverArtId completionBlock:^(UIImage *image) {
365+ dispatch_async(dispatch_get_main_queue(),
366+ ^{
367+ _cell.coverArtView.image = image;
368+ });
369+ }];
370+ });
371+
372 if (canStream || [album hasCachedSongs])
373 {
374 cell.albumNameLabel.textColor = [UIColor blackColor];
375@@ -315,29 +316,4 @@
376 [self.tableView reloadData];
377 }
378
379-- (void)loadImagesForOnscreenRows
380-{
381- for (NSIndexPath *indexPath in [self.tableView indexPathsForVisibleRows])
382- {
383- Album *album = [self.tableData objectAtIndex:indexPath.row];
384- // This will prompt the album art to download, but doesn't try to load the image when it's done?
385- [loader download:album.coverArtId];
386- }
387-}
388-
389-- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
390-{
391- [super scrollViewDidEndDragging:scrollView willDecelerate:decelerate];
392-
393- if (!decelerate)
394- {
395- [self loadImagesForOnscreenRows];
396- }
397-}
398-
399-- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
400-{
401- [self loadImagesForOnscreenRows];
402-}
403-
404 @end
405
406=== modified file 'view_controllers/SongViewController.m'
407--- view_controllers/SongViewController.m 2012-02-08 23:57:06 +0000
408+++ view_controllers/SongViewController.m 2012-06-22 18:48:18 +0000
409@@ -390,11 +390,17 @@
410 if (albumCoverArtId)
411 {
412 NSError *error = nil;
413- coverArtImageView.image = [loader imageForArtID:albumCoverArtId error:&error];
414-
415- if ([error code]) {
416- [loader download:albumCoverArtId];
417- }
418+ __block UIImageView *_coverArtImageView = coverArtImageView;
419+ __block NSString *_albumCoverArtId = albumCoverArtId;
420+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
421+ ^{
422+ [loader computeAlbumArtForId:albumCoverArtId completionBlock:^(UIImage *image) {
423+ dispatch_async(dispatch_get_main_queue(),
424+ ^{
425+ _coverArtImageView.image = image;
426+ });
427+ }];
428+ });
429 }
430 else
431 {
432
433=== modified file 'xibs/SongViewController.xib'
434--- xibs/SongViewController.xib 2011-07-15 19:39:43 +0000
435+++ xibs/SongViewController.xib 2012-06-22 18:48:18 +0000
436@@ -1,29 +1,32 @@
437 <?xml version="1.0" encoding="UTF-8"?>
438 <archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
439 <data>
440- <int key="IBDocument.SystemTarget">1056</int>
441- <string key="IBDocument.SystemVersion">10K540</string>
442- <string key="IBDocument.InterfaceBuilderVersion">1306</string>
443- <string key="IBDocument.AppKitVersion">1038.36</string>
444- <string key="IBDocument.HIToolboxVersion">461.00</string>
445+ <int key="IBDocument.SystemTarget">1536</int>
446+ <string key="IBDocument.SystemVersion">11E2620</string>
447+ <string key="IBDocument.InterfaceBuilderVersion">2541</string>
448+ <string key="IBDocument.AppKitVersion">1138.47</string>
449+ <string key="IBDocument.HIToolboxVersion">569.00</string>
450 <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
451 <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
452- <string key="NS.object.0">301</string>
453+ <string key="NS.object.0">1875</string>
454 </object>
455 <array key="IBDocument.IntegratedClassDependencies">
456- <string>IBUIView</string>
457+ <string>IBProxyObject</string>
458 <string>IBUIBarButtonItem</string>
459+ <string>IBUIButton</string>
460 <string>IBUIImageView</string>
461- <string>IBUIToolbar</string>
462- <string>IBProxyObject</string>
463 <string>IBUILabel</string>
464 <string>IBUISlider</string>
465- <string>IBUIButton</string>
466+ <string>IBUIToolbar</string>
467+ <string>IBUIView</string>
468 </array>
469 <array key="IBDocument.PluginDependencies">
470 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
471 </array>
472- <dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
473+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
474+ <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
475+ <integer value="1" key="NS.object.0"/>
476+ </object>
477 <array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
478 <object class="IBProxyObject" id="372490531">
479 <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
480@@ -42,6 +45,7 @@
481 <int key="NSvFlags">264</int>
482 <string key="NSFrame">{{20, 405}, {280, 40}}</string>
483 <reference key="NSSuperview" ref="774585933"/>
484+ <reference key="NSNextKeyView"/>
485 <object class="NSColor" key="IBUIBackgroundColor">
486 <int key="NSColorSpace">3</int>
487 <bytes key="NSWhite">MSAwAA</bytes>
488@@ -76,11 +80,6 @@
489 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
490 <int key="IBUIContentHorizontalAlignment">0</int>
491 <int key="IBUIContentVerticalAlignment">0</int>
492- <object class="NSFont" key="IBUIFont">
493- <string key="NSName">Helvetica-BoldOblique</string>
494- <double key="NSSize">15</double>
495- <int key="NSfFlags">16</int>
496- </object>
497 <object class="NSColor" key="IBUIHighlightedTitleColor" id="193107363">
498 <int key="NSColorSpace">3</int>
499 <bytes key="NSWhite">MQA</bytes>
500@@ -93,6 +92,17 @@
501 <int key="NSColorSpace">3</int>
502 <bytes key="NSWhite">MC41AA</bytes>
503 </object>
504+ <object class="IBUIFontDescription" key="IBUIFontDescription">
505+ <string key="name">Helvetica-BoldOblique</string>
506+ <string key="family">Helvetica</string>
507+ <int key="traits">3</int>
508+ <double key="pointSize">15</double>
509+ </object>
510+ <object class="NSFont" key="IBUIFont">
511+ <string key="NSName">Helvetica-BoldOblique</string>
512+ <double key="NSSize">15</double>
513+ <int key="NSfFlags">16</int>
514+ </object>
515 </object>
516 <object class="IBUIToolbar" id="650707578">
517 <reference key="NSNextResponder" ref="774585933"/>
518@@ -165,7 +175,7 @@
519 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
520 </object>
521 <object class="IBUIView" id="962247428">
522- <reference key="NSNextResponder"/>
523+ <nil key="NSNextResponder"/>
524 <int key="NSvFlags">292</int>
525 <array class="NSMutableArray" key="NSSubviews">
526 <object class="IBUILabel" id="58064152">
527@@ -179,16 +189,6 @@
528 <int key="IBUIContentMode">7</int>
529 <bool key="IBUIUserInteractionEnabled">NO</bool>
530 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
531- <string key="IBUIText">Interpol</string>
532- <object class="NSFont" key="IBUIFont" id="956421100">
533- <string key="NSName">Helvetica-Bold</string>
534- <double key="NSSize">11</double>
535- <int key="NSfFlags">16</int>
536- </object>
537- <object class="NSColor" key="IBUITextColor">
538- <int key="NSColorSpace">1</int>
539- <bytes key="NSRGB">MC42MjM1Mjk0MTE4IDAuNjIzNTI5NDExOCAwLjYyMzUyOTQxMTgAA</bytes>
540- </object>
541 <object class="NSColor" key="IBUIHighlightedColor">
542 <int key="NSColorSpace">3</int>
543 <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
544@@ -198,9 +198,26 @@
545 <bytes key="NSRGB">MCAwIDAAA</bytes>
546 </object>
547 <int key="IBUIBaselineAdjustment">1</int>
548- <bool key="IBUIAdjustsFontSizeToFit">NO</bool>
549 <float key="IBUIMinimumFontSize">10</float>
550+ <string key="IBUIText">Interpol</string>
551+ <object class="NSColor" key="IBUITextColor">
552+ <int key="NSColorSpace">1</int>
553+ <bytes key="NSRGB">MC42MjM1Mjk0MTE4IDAuNjIzNTI5NDExOCAwLjYyMzUyOTQxMTgAA</bytes>
554+ </object>
555 <int key="IBUITextAlignment">1</int>
556+ <object class="IBUIFontDescription" key="IBUIFontDescription" id="295205315">
557+ <string key="name">Helvetica-Bold</string>
558+ <string key="family">Helvetica</string>
559+ <int key="traits">2</int>
560+ <double key="pointSize">11</double>
561+ </object>
562+ <object class="NSFont" key="IBUIFont" id="956421100">
563+ <string key="NSName">Helvetica-Bold</string>
564+ <double key="NSSize">11</double>
565+ <int key="NSfFlags">16</int>
566+ </object>
567+ <bool key="IBUIAdjustsFontSizeToFit">NO</bool>
568+ <int key="IBUIAutoshrinkMode">0</int>
569 </object>
570 <object class="IBUILabel" id="188765676">
571 <reference key="NSNextResponder" ref="962247428"/>
572@@ -213,15 +230,17 @@
573 <int key="IBUIContentMode">7</int>
574 <bool key="IBUIUserInteractionEnabled">NO</bool>
575 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
576+ <reference key="IBUIHighlightedColor" ref="193107363"/>
577+ <reference key="IBUIShadowColor" ref="207782929"/>
578+ <int key="IBUIBaselineAdjustment">1</int>
579+ <float key="IBUIMinimumFontSize">10</float>
580 <string key="IBUIText">Interpol</string>
581- <reference key="IBUIFont" ref="956421100"/>
582 <reference key="IBUITextColor" ref="193107363"/>
583- <reference key="IBUIHighlightedColor" ref="193107363"/>
584- <reference key="IBUIShadowColor" ref="207782929"/>
585- <int key="IBUIBaselineAdjustment">1</int>
586+ <int key="IBUITextAlignment">1</int>
587+ <reference key="IBUIFontDescription" ref="295205315"/>
588+ <reference key="IBUIFont" ref="956421100"/>
589 <bool key="IBUIAdjustsFontSizeToFit">NO</bool>
590- <float key="IBUIMinimumFontSize">10</float>
591- <int key="IBUITextAlignment">1</int>
592+ <int key="IBUIAutoshrinkMode">0</int>
593 </object>
594 <object class="IBUILabel" id="405973632">
595 <reference key="NSNextResponder" ref="962247428"/>
596@@ -233,40 +252,35 @@
597 <int key="IBUIContentMode">7</int>
598 <bool key="IBUIUserInteractionEnabled">NO</bool>
599 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
600+ <reference key="IBUIHighlightedColor" ref="193107363"/>
601+ <reference key="IBUIShadowColor" ref="207782929"/>
602+ <int key="IBUIBaselineAdjustment">1</int>
603+ <float key="IBUIMinimumFontSize">10</float>
604 <string key="IBUIText">Interpol</string>
605- <reference key="IBUIFont" ref="956421100"/>
606 <object class="NSColor" key="IBUITextColor">
607 <int key="NSColorSpace">1</int>
608 <bytes key="NSRGB">MC42MjM1Mjk0MTE4IDAuNjIzNTI5NDExOCAwLjYyMzUyOTQxMTgAA</bytes>
609 </object>
610- <reference key="IBUIHighlightedColor" ref="193107363"/>
611- <reference key="IBUIShadowColor" ref="207782929"/>
612- <int key="IBUIBaselineAdjustment">1</int>
613+ <int key="IBUITextAlignment">1</int>
614+ <reference key="IBUIFontDescription" ref="295205315"/>
615+ <reference key="IBUIFont" ref="956421100"/>
616 <bool key="IBUIAdjustsFontSizeToFit">NO</bool>
617- <float key="IBUIMinimumFontSize">10</float>
618- <int key="IBUITextAlignment">1</int>
619+ <int key="IBUIAutoshrinkMode">0</int>
620 </object>
621 </array>
622 <string key="NSFrameSize">{200, 45}</string>
623- <reference key="NSSuperview"/>
624 <reference key="NSNextKeyView" ref="58064152"/>
625 <reference key="IBUIBackgroundColor" ref="811861181"/>
626 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
627 </object>
628 <object class="IBUIButton" id="959908150">
629- <reference key="NSNextResponder"/>
630+ <nil key="NSNextResponder"/>
631 <int key="NSvFlags">292</int>
632 <string key="NSFrameSize">{44, 29}</string>
633- <reference key="NSSuperview"/>
634 <bool key="IBUIOpaque">NO</bool>
635 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
636 <int key="IBUIContentHorizontalAlignment">0</int>
637 <int key="IBUIContentVerticalAlignment">0</int>
638- <object class="NSFont" key="IBUIFont" id="889214810">
639- <string key="NSName">Helvetica-Bold</string>
640- <double key="NSSize">15</double>
641- <int key="NSfFlags">16</int>
642- </object>
643 <reference key="IBUIHighlightedTitleColor" ref="193107363"/>
644 <object class="NSColor" key="IBUINormalTitleColor">
645 <int key="NSColorSpace">1</int>
646@@ -277,9 +291,20 @@
647 <string key="NSClassName">NSImage</string>
648 <string key="NSResourceName">player_back.png</string>
649 </object>
650+ <object class="IBUIFontDescription" key="IBUIFontDescription" id="411929483">
651+ <string key="name">Helvetica-Bold</string>
652+ <string key="family">Helvetica</string>
653+ <int key="traits">2</int>
654+ <double key="pointSize">15</double>
655+ </object>
656+ <object class="NSFont" key="IBUIFont" id="889214810">
657+ <string key="NSName">Helvetica-Bold</string>
658+ <double key="NSSize">15</double>
659+ <int key="NSfFlags">16</int>
660+ </object>
661 </object>
662 <object class="IBUIView" id="938289822">
663- <reference key="NSNextResponder"/>
664+ <nil key="NSNextResponder"/>
665 <int key="NSvFlags">292</int>
666 <array class="NSMutableArray" key="NSSubviews">
667 <object class="IBUIImageView" id="169132852">
668@@ -287,7 +312,6 @@
669 <int key="NSvFlags">292</int>
670 <string key="NSFrameSize">{320, 100}</string>
671 <reference key="NSSuperview" ref="938289822"/>
672- <reference key="NSWindow"/>
673 <reference key="NSNextKeyView" ref="650617321"/>
674 <reference key="IBUIBackgroundColor" ref="811861181"/>
675 <bool key="IBUIUserInteractionEnabled">NO</bool>
676@@ -302,7 +326,6 @@
677 <int key="NSvFlags">292</int>
678 <string key="NSFrame">{{58, 28}, {204, 23}}</string>
679 <reference key="NSSuperview" ref="938289822"/>
680- <reference key="NSWindow"/>
681 <reference key="NSNextKeyView" ref="451378775"/>
682 <reference key="IBUIBackgroundColor" ref="811861181"/>
683 <bool key="IBUIOpaque">NO</bool>
684@@ -322,13 +345,11 @@
685 <int key="NSvFlags">292</int>
686 <string key="NSFrame">{{14, 47}, {44, 44}}</string>
687 <reference key="NSSuperview" ref="938289822"/>
688- <reference key="NSWindow"/>
689 <reference key="NSNextKeyView" ref="214119939"/>
690 <bool key="IBUIOpaque">NO</bool>
691 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
692 <int key="IBUIContentHorizontalAlignment">0</int>
693 <int key="IBUIContentVerticalAlignment">0</int>
694- <reference key="IBUIFont" ref="889214810"/>
695 <reference key="IBUIHighlightedTitleColor" ref="193107363"/>
696 <object class="NSColor" key="IBUINormalTitleColor">
697 <int key="NSColorSpace">1</int>
698@@ -339,19 +360,18 @@
699 <string key="NSClassName">NSImage</string>
700 <string key="NSResourceName">03-loopback.png</string>
701 </object>
702+ <reference key="IBUIFontDescription" ref="411929483"/>
703+ <reference key="IBUIFont" ref="889214810"/>
704 </object>
705 <object class="IBUIButton" id="214119939">
706 <reference key="NSNextResponder" ref="938289822"/>
707 <int key="NSvFlags">292</int>
708 <string key="NSFrame">{{264, 48}, {44, 44}}</string>
709 <reference key="NSSuperview" ref="938289822"/>
710- <reference key="NSWindow"/>
711- <reference key="NSNextKeyView"/>
712 <bool key="IBUIOpaque">NO</bool>
713 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
714 <int key="IBUIContentHorizontalAlignment">0</int>
715 <int key="IBUIContentVerticalAlignment">0</int>
716- <reference key="IBUIFont" ref="889214810"/>
717 <reference key="IBUIHighlightedTitleColor" ref="193107363"/>
718 <object class="NSColor" key="IBUINormalTitleColor">
719 <int key="NSColorSpace">1</int>
720@@ -362,25 +382,25 @@
721 <string key="NSClassName">NSImage</string>
722 <string key="NSResourceName">05-shuffle.png</string>
723 </object>
724+ <reference key="IBUIFontDescription" ref="411929483"/>
725+ <reference key="IBUIFont" ref="889214810"/>
726 </object>
727 <object class="IBUILabel" id="574685039">
728 <reference key="NSNextResponder" ref="938289822"/>
729 <int key="NSvFlags">292</int>
730 <string key="NSFrame">{{12, 31}, {42, 15}}</string>
731 <reference key="NSSuperview" ref="938289822"/>
732- <reference key="NSWindow"/>
733 <reference key="NSNextKeyView" ref="141728958"/>
734 <bool key="IBUIOpaque">NO</bool>
735 <bool key="IBUIClipsSubviews">YES</bool>
736 <int key="IBUIContentMode">7</int>
737 <bool key="IBUIUserInteractionEnabled">NO</bool>
738 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
739+ <reference key="IBUIHighlightedColor" ref="193107363"/>
740+ <reference key="IBUIShadowColor" ref="207782929"/>
741+ <int key="IBUIBaselineAdjustment">1</int>
742+ <float key="IBUIMinimumFontSize">10</float>
743 <string key="IBUIText">0:00</string>
744- <object class="NSFont" key="IBUIFont" id="733486606">
745- <string key="NSName">Helvetica-Bold</string>
746- <double key="NSSize">14</double>
747- <int key="NSfFlags">16</int>
748- </object>
749 <object class="NSColor" key="IBUITextColor">
750 <int key="NSColorSpace">1</int>
751 <bytes key="NSRGB">MSAxIDEAA</bytes>
752@@ -388,65 +408,73 @@
753 <int key="NSID">1</int>
754 </object>
755 </object>
756- <reference key="IBUIHighlightedColor" ref="193107363"/>
757- <reference key="IBUIShadowColor" ref="207782929"/>
758- <int key="IBUIBaselineAdjustment">1</int>
759- <float key="IBUIMinimumFontSize">10</float>
760 <int key="IBUITextAlignment">2</int>
761+ <object class="IBUIFontDescription" key="IBUIFontDescription" id="911767061">
762+ <string key="name">Helvetica-Bold</string>
763+ <string key="family">Helvetica</string>
764+ <int key="traits">2</int>
765+ <double key="pointSize">14</double>
766+ </object>
767+ <object class="NSFont" key="IBUIFont" id="733486606">
768+ <string key="NSName">Helvetica-Bold</string>
769+ <double key="NSSize">14</double>
770+ <int key="NSfFlags">16</int>
771+ </object>
772+ <int key="IBUIAutoshrinkMode">2</int>
773 </object>
774 <object class="IBUILabel" id="451378775">
775 <reference key="NSNextResponder" ref="938289822"/>
776 <int key="NSvFlags">292</int>
777 <string key="NSFrame">{{266, 31}, {42, 15}}</string>
778 <reference key="NSSuperview" ref="938289822"/>
779- <reference key="NSWindow"/>
780 <reference key="NSNextKeyView" ref="967289608"/>
781 <bool key="IBUIOpaque">NO</bool>
782 <bool key="IBUIClipsSubviews">YES</bool>
783 <int key="IBUIContentMode">7</int>
784 <bool key="IBUIUserInteractionEnabled">NO</bool>
785 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
786+ <reference key="IBUIHighlightedColor" ref="193107363"/>
787+ <reference key="IBUIShadowColor" ref="207782929"/>
788+ <int key="IBUIBaselineAdjustment">1</int>
789+ <float key="IBUIMinimumFontSize">10</float>
790 <string key="IBUIText">-18:88</string>
791- <reference key="IBUIFont" ref="733486606"/>
792 <object class="NSColor" key="IBUITextColor">
793 <int key="NSColorSpace">1</int>
794 <bytes key="NSRGB">MSAxIDEAA</bytes>
795 <reference key="NSCustomColorSpace" ref="400680623"/>
796 </object>
797- <reference key="IBUIHighlightedColor" ref="193107363"/>
798- <reference key="IBUIShadowColor" ref="207782929"/>
799- <int key="IBUIBaselineAdjustment">1</int>
800- <float key="IBUIMinimumFontSize">10</float>
801+ <reference key="IBUIFontDescription" ref="911767061"/>
802+ <reference key="IBUIFont" ref="733486606"/>
803+ <int key="IBUIAutoshrinkMode">2</int>
804 </object>
805 <object class="IBUILabel" id="650617321">
806 <reference key="NSNextResponder" ref="938289822"/>
807 <int key="NSvFlags">292</int>
808 <string key="NSFrame">{{12, 5}, {296, 19}}</string>
809 <reference key="NSSuperview" ref="938289822"/>
810- <reference key="NSWindow"/>
811 <reference key="NSNextKeyView" ref="574685039"/>
812 <bool key="IBUIOpaque">NO</bool>
813 <bool key="IBUIClipsSubviews">YES</bool>
814 <int key="IBUIContentMode">7</int>
815 <bool key="IBUIUserInteractionEnabled">NO</bool>
816 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
817+ <reference key="IBUIHighlightedColor" ref="193107363"/>
818+ <reference key="IBUIShadowColor" ref="207782929"/>
819+ <int key="IBUIBaselineAdjustment">1</int>
820+ <float key="IBUIMinimumFontSize">10</float>
821 <string key="IBUIText">10 of 11</string>
822- <reference key="IBUIFont" ref="733486606"/>
823 <object class="NSColor" key="IBUITextColor">
824 <int key="NSColorSpace">1</int>
825 <bytes key="NSRGB">MSAxIDEAA</bytes>
826 <reference key="NSCustomColorSpace" ref="400680623"/>
827 </object>
828- <reference key="IBUIHighlightedColor" ref="193107363"/>
829- <reference key="IBUIShadowColor" ref="207782929"/>
830- <int key="IBUIBaselineAdjustment">1</int>
831- <float key="IBUIMinimumFontSize">10</float>
832 <int key="IBUITextAlignment">1</int>
833+ <reference key="IBUIFontDescription" ref="911767061"/>
834+ <reference key="IBUIFont" ref="733486606"/>
835+ <int key="IBUIAutoshrinkMode">2</int>
836 </object>
837 </array>
838 <string key="NSFrameSize">{320, 100}</string>
839- <reference key="NSSuperview"/>
840- <reference key="NSWindow"/>
841 <reference key="NSNextKeyView" ref="169132852"/>
842 <reference key="IBUIBackgroundColor" ref="811861181"/>
843 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
844@@ -487,47 +515,6 @@
845 <int key="connectionID">58</int>
846 </object>
847 <object class="IBConnectionRecord">
848- <object class="IBCocoaTouchEventConnection" key="connection">
849- <string key="label">songInfoToggle:</string>
850- <reference key="source" ref="104438855"/>
851- <reference key="destination" ref="372490531"/>
852- <int key="IBEventType">7</int>
853- </object>
854- <int key="connectionID">59</int>
855- </object>
856- <object class="IBConnectionRecord">
857- <object class="IBCocoaTouchEventConnection" key="connection">
858- <string key="label">prevButtonPressed:</string>
859- <reference key="source" ref="213984937"/>
860- <reference key="destination" ref="372490531"/>
861- </object>
862- <int key="connectionID">75</int>
863- </object>
864- <object class="IBConnectionRecord">
865- <object class="IBCocoaTouchEventConnection" key="connection">
866- <string key="label">playButtonPressed:</string>
867- <reference key="source" ref="126126605"/>
868- <reference key="destination" ref="372490531"/>
869- </object>
870- <int key="connectionID">76</int>
871- </object>
872- <object class="IBConnectionRecord">
873- <object class="IBCocoaTouchEventConnection" key="connection">
874- <string key="label">nextButtonPressed:</string>
875- <reference key="source" ref="148357452"/>
876- <reference key="destination" ref="372490531"/>
877- </object>
878- <int key="connectionID">77</int>
879- </object>
880- <object class="IBConnectionRecord">
881- <object class="IBCocoaTouchEventConnection" key="connection">
882- <string key="label">playButtonPressed:</string>
883- <reference key="source" ref="947562927"/>
884- <reference key="destination" ref="372490531"/>
885- </object>
886- <int key="connectionID">84</int>
887- </object>
888- <object class="IBConnectionRecord">
889 <object class="IBCocoaTouchOutletConnection" key="connection">
890 <string key="label">musicToolbar</string>
891 <reference key="source" ref="372490531"/>
892@@ -576,15 +563,6 @@
893 <int key="connectionID">97</int>
894 </object>
895 <object class="IBConnectionRecord">
896- <object class="IBCocoaTouchEventConnection" key="connection">
897- <string key="label">popFromStack:</string>
898- <reference key="source" ref="959908150"/>
899- <reference key="destination" ref="372490531"/>
900- <int key="IBEventType">7</int>
901- </object>
902- <int key="connectionID">98</int>
903- </object>
904- <object class="IBConnectionRecord">
905 <object class="IBCocoaTouchOutletConnection" key="connection">
906 <string key="label">songInfoBox</string>
907 <reference key="source" ref="372490531"/>
908@@ -625,6 +603,72 @@
909 <int key="connectionID">111</int>
910 </object>
911 <object class="IBConnectionRecord">
912+ <object class="IBCocoaTouchOutletConnection" key="connection">
913+ <string key="label">repeatButton</string>
914+ <reference key="source" ref="372490531"/>
915+ <reference key="destination" ref="967289608"/>
916+ </object>
917+ <int key="connectionID">117</int>
918+ </object>
919+ <object class="IBConnectionRecord">
920+ <object class="IBCocoaTouchOutletConnection" key="connection">
921+ <string key="label">shuffleButton</string>
922+ <reference key="source" ref="372490531"/>
923+ <reference key="destination" ref="214119939"/>
924+ </object>
925+ <int key="connectionID">118</int>
926+ </object>
927+ <object class="IBConnectionRecord">
928+ <object class="IBCocoaTouchEventConnection" key="connection">
929+ <string key="label">songInfoToggle:</string>
930+ <reference key="source" ref="104438855"/>
931+ <reference key="destination" ref="372490531"/>
932+ <int key="IBEventType">7</int>
933+ </object>
934+ <int key="connectionID">59</int>
935+ </object>
936+ <object class="IBConnectionRecord">
937+ <object class="IBCocoaTouchEventConnection" key="connection">
938+ <string key="label">prevButtonPressed:</string>
939+ <reference key="source" ref="213984937"/>
940+ <reference key="destination" ref="372490531"/>
941+ </object>
942+ <int key="connectionID">75</int>
943+ </object>
944+ <object class="IBConnectionRecord">
945+ <object class="IBCocoaTouchEventConnection" key="connection">
946+ <string key="label">playButtonPressed:</string>
947+ <reference key="source" ref="126126605"/>
948+ <reference key="destination" ref="372490531"/>
949+ </object>
950+ <int key="connectionID">76</int>
951+ </object>
952+ <object class="IBConnectionRecord">
953+ <object class="IBCocoaTouchEventConnection" key="connection">
954+ <string key="label">nextButtonPressed:</string>
955+ <reference key="source" ref="148357452"/>
956+ <reference key="destination" ref="372490531"/>
957+ </object>
958+ <int key="connectionID">77</int>
959+ </object>
960+ <object class="IBConnectionRecord">
961+ <object class="IBCocoaTouchEventConnection" key="connection">
962+ <string key="label">playButtonPressed:</string>
963+ <reference key="source" ref="947562927"/>
964+ <reference key="destination" ref="372490531"/>
965+ </object>
966+ <int key="connectionID">84</int>
967+ </object>
968+ <object class="IBConnectionRecord">
969+ <object class="IBCocoaTouchEventConnection" key="connection">
970+ <string key="label">popFromStack:</string>
971+ <reference key="source" ref="959908150"/>
972+ <reference key="destination" ref="372490531"/>
973+ <int key="IBEventType">7</int>
974+ </object>
975+ <int key="connectionID">98</int>
976+ </object>
977+ <object class="IBConnectionRecord">
978 <object class="IBCocoaTouchEventConnection" key="connection">
979 <string key="label">touchedSlider</string>
980 <reference key="source" ref="141728958"/>
981@@ -669,22 +713,6 @@
982 </object>
983 <int key="connectionID">116</int>
984 </object>
985- <object class="IBConnectionRecord">
986- <object class="IBCocoaTouchOutletConnection" key="connection">
987- <string key="label">repeatButton</string>
988- <reference key="source" ref="372490531"/>
989- <reference key="destination" ref="967289608"/>
990- </object>
991- <int key="connectionID">117</int>
992- </object>
993- <object class="IBConnectionRecord">
994- <object class="IBCocoaTouchOutletConnection" key="connection">
995- <string key="label">shuffleButton</string>
996- <reference key="source" ref="372490531"/>
997- <reference key="destination" ref="214119939"/>
998- </object>
999- <int key="connectionID">118</int>
1000- </object>
1001 </array>
1002 <object class="IBMutableOrderedSet" key="objectRecords">
1003 <array key="orderedObjects">
1004@@ -873,39 +901,19 @@
1005 </object>
1006 <dictionary class="NSMutableDictionary" key="flattenedProperties">
1007 <string key="-1.CustomClassName">iPhoneStreamingPlayerViewController</string>
1008+ <string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1009 <string key="-2.CustomClassName">UIResponder</string>
1010+ <string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1011 <string key="101.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1012- <object class="NSAffineTransform" key="101.IBViewBoundsToFrameTransform">
1013- <bytes key="NSTransformStruct">P4AAAL+AAABC0AAAwooAAA</bytes>
1014- </object>
1015 <string key="103.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1016- <object class="NSAffineTransform" key="103.IBViewBoundsToFrameTransform">
1017- <bytes key="NSTransformStruct">P4AAAL+AAABBYAAAwo4AAA</bytes>
1018- </object>
1019 <string key="104.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1020- <object class="NSAffineTransform" key="104.IBViewBoundsToFrameTransform">
1021- <bytes key="NSTransformStruct">P4AAAL+AAABDHwAAwqwAAA</bytes>
1022- </object>
1023 <string key="105.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1024- <object class="NSAffineTransform" key="105.IBViewBoundsToFrameTransform">
1025- <bytes key="NSTransformStruct">AUFAAABBYAAAA</bytes>
1026- </object>
1027 <string key="106.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1028- <object class="NSAffineTransform" key="106.IBViewBoundsToFrameTransform">
1029- <bytes key="NSTransformStruct">AUOFAABB+AAAA</bytes>
1030- </object>
1031 <string key="107.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1032- <object class="NSAffineTransform" key="107.IBViewBoundsToFrameTransform">
1033- <bytes key="NSTransformStruct">P4AAAL+AAABDh4AAwkQAAA</bytes>
1034- </object>
1035 <string key="108.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1036 <string key="35.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1037 <string key="45.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1038 <string key="57.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1039- <object class="NSAffineTransform" key="57.IBViewBoundsToFrameTransform">
1040- <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw58AAA</bytes>
1041- </object>
1042- <string key="6.IBEditorWindowLastContentRect">{{820, 220}, {320, 480}}</string>
1043 <string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1044 <string key="60.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1045 <string key="67.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1046@@ -916,18 +924,11 @@
1047 <string key="73.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1048 <string key="74.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1049 <string key="81.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1050- <string key="86.IBEditorWindowLastContentRect">{{707, 975}, {200, 45}}</string>
1051 <string key="86.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1052 <string key="87.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1053- <object class="NSAffineTransform" key="87.IBViewBoundsToFrameTransform"/>
1054 <string key="88.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1055- <object class="NSAffineTransform" key="88.IBViewBoundsToFrameTransform">
1056- <bytes key="NSTransformStruct">AQAAAABBYAAAA</bytes>
1057- </object>
1058 <string key="89.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1059- <string key="94.IBEditorWindowLastContentRect">{{608, 1079}, {44, 29}}</string>
1060 <string key="94.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1061- <string key="99.IBEditorWindowLastContentRect">{{27, 1409}, {320, 100}}</string>
1062 <string key="99.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1063 <object class="NSMutableAttributedString" key="99.notes">
1064 <object class="NSMutableString" key="NSString">
1065@@ -955,10 +956,6 @@
1066 <object class="IBClassDescriber" key="IBDocument.Classes"/>
1067 <int key="IBDocument.localizationMode">0</int>
1068 <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
1069- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
1070- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
1071- <integer value="1056" key="NS.object.0"/>
1072- </object>
1073 <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
1074 <int key="IBDocument.defaultPropertyAccessControl">3</int>
1075 <dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
1076@@ -967,6 +964,6 @@
1077 <string key="player_back.png">{44, 29}</string>
1078 <string key="player_overlay_bg.png">{320, 100}</string>
1079 </dictionary>
1080- <string key="IBCocoaTouchPluginVersion">301</string>
1081+ <string key="IBCocoaTouchPluginVersion">1875</string>
1082 </data>
1083 </archive>

Subscribers

People subscribed via source and target branches