Merge lp:~rockstar/ubuntuone-ios-music/error-handling into lp:ubuntuone-ios-music

Proposed by Paul Hummer
Status: Superseded
Proposed branch: lp:~rockstar/ubuntuone-ios-music/error-handling
Merge into: lp:ubuntuone-ios-music
Diff against target: 2427 lines (+585/-898)
30 files modified
Other Sources/U1MusicAppDelegate.h (+0/-4)
Other Sources/U1MusicAppDelegate.m (+3/-20)
Other Sources/main.m (+5/-5)
U1Music.xcodeproj/project.pbxproj (+451/-369)
categories/UIDevice+Hardware.m (+2/-1)
categories/UIImage+Alpha.h (+1/-0)
categories/UIImage+Alpha.m (+0/-5)
categories/UIImage+Resize.h (+5/-1)
categories/UIImage+Resize.m (+40/-58)
utilities/AudioStreamer.m (+2/-0)
utilities/Models/Generated/_U1CachedFile.h (+3/-3)
utilities/U1LocalMusicServer.m (+1/-8)
utilities/UOSSOMusicCredsFetchOperation.h (+0/-24)
utilities/UOSSOMusicCredsFetchOperation.m (+0/-57)
utilities/operations/AlbumArtLoader.h (+0/-2)
utilities/operations/AlbumArtLoader.m (+0/-10)
utilities/operations/UOJSONFetchOperation.h (+0/-25)
utilities/operations/UOJSONFetchOperation.m (+0/-80)
view_controllers/PullRefreshTableViewController.h (+0/-7)
view_controllers/PullRefreshTableViewController.m (+0/-11)
view_controllers/SettingsViewController.m (+2/-1)
view_controllers/SubsonicIndexedTableViewController.m (+0/-2)
view_controllers/SubsonicTableViewController.h (+1/-1)
view_controllers/SubsonicTableViewController.m (+5/-20)
view_controllers/SubsonicViewController.m (+0/-6)
view_controllers/U1MigrationViewController.m (+0/-9)
view_controllers/U1MigrationViewController.xib (+23/-16)
view_controllers/UOMusicLoginController.m (+40/-131)
view_controllers/UOSSOCredentialsViewController.h (+0/-7)
view_controllers/UOSSOCredentialsViewController.m (+1/-15)
To merge this branch: bzr merge lp:~rockstar/ubuntuone-ios-music/error-handling
Reviewer Review Type Date Requested Status
Ubuntu One iOS Client Team Pending
Review via email: mp+125089@code.launchpad.net

This proposal has been superseded by a proposal from 2012-09-19.

Description of the change

Use the error handling in the new branch for UbuntuOneAuthKit

To post a comment you must log in.

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'Other Sources/U1MusicAppDelegate.h'
--- Other Sources/U1MusicAppDelegate.h 2011-11-01 15:14:34 +0000
+++ Other Sources/U1MusicAppDelegate.h 2012-09-19 03:34:23 +0000
@@ -28,14 +28,10 @@
28// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 28// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
29// DAMAGE.29// DAMAGE.
3030
31@class Reachability;
32
33@interface U1MusicAppDelegate : NSObject <UIApplicationDelegate> {31@interface U1MusicAppDelegate : NSObject <UIApplicationDelegate> {
34 UIWindow *window;32 UIWindow *window;
35 UITabBarController *tabBarController;33 UITabBarController *tabBarController;
36}34}
37@property (nonatomic, retain) IBOutlet UIWindow *window;
38@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
3935
40extern NSString * const NOTIF_reloadAccountCredentials;36extern NSString * const NOTIF_reloadAccountCredentials;
41@end37@end
4238
=== modified file 'Other Sources/U1MusicAppDelegate.m'
--- Other Sources/U1MusicAppDelegate.m 2012-09-13 17:35:26 +0000
+++ Other Sources/U1MusicAppDelegate.m 2012-09-19 03:34:23 +0000
@@ -55,8 +55,6 @@
5555
56@implementation U1MusicAppDelegate56@implementation U1MusicAppDelegate
5757
58@synthesize window;
59@synthesize tabBarController;
60@synthesize loginController, musicServer;58@synthesize loginController, musicServer;
6159
62#pragma mark -60#pragma mark -
@@ -84,7 +82,6 @@
84 }];82 }];
85 83
86 [window.rootViewController presentModalViewController:migrationView animated:YES];84 [window.rootViewController presentModalViewController:migrationView animated:YES];
87 [migrationView release];
88 });85 });
89 }86 }
90 else if ([standardUserDefaults integerForKey:@"last_build_version"] < 54) // Version where we fixed the Songs view crasher. TODO: Find a better long-term migration strategy87 else if ([standardUserDefaults integerForKey:@"last_build_version"] < 54) // Version where we fixed the Songs view crasher. TODO: Find a better long-term migration strategy
@@ -101,7 +98,6 @@
101 {98 {
102 [self startup];99 [self startup];
103 }100 }
104 [fileManager release];
105 101
106 return YES;102 return YES;
107}103}
@@ -159,8 +155,6 @@
159 {155 {
160 [[Subsonic sharedSubsonic] storeUsername:user password:pass];156 [[Subsonic sharedSubsonic] storeUsername:user password:pass];
161 }157 }
162
163 [queryStringParser release];
164}158}
165159
166- (BOOL)configureUsernamePassword160- (BOOL)configureUsernamePassword
@@ -182,15 +176,15 @@
182176
183- (void)presentLoginView;177- (void)presentLoginView;
184{178{
185 self.loginController = [[[UOMusicLoginController alloc] init] autorelease];179 self.loginController = [[UOMusicLoginController alloc] init];
186 self.loginController.delegate = self;180 self.loginController.delegate = self;
187 [self.tabBarController presentModalViewController:self.loginController.loginViewController animated:YES];181 [tabBarController presentModalViewController:self.loginController.loginViewController animated:YES];
188}182}
189183
190- (void)loginControllerDidLoginWithUsername:(NSString *)username;184- (void)loginControllerDidLoginWithUsername:(NSString *)username;
191{185{
192 [self configureUsernamePassword];186 [self configureUsernamePassword];
193 [self.tabBarController dismissModalViewControllerAnimated:YES];187 [tabBarController dismissModalViewControllerAnimated:YES];
194 self.loginController = nil;188 self.loginController = nil;
195 [[NSNotificationCenter defaultCenter] postNotificationName:NOTIF_reloadAccountCredentials object:nil];189 [[NSNotificationCenter defaultCenter] postNotificationName:NOTIF_reloadAccountCredentials object:nil];
196}190}
@@ -215,15 +209,4 @@
215 }209 }
216}210}
217211
218#pragma mark -
219#pragma mark Memory management
220
221- (void)dealloc
222{
223 [tabBarController release];
224 [window release];
225 [musicServer release];
226 [super dealloc];
227}
228
229@end212@end
230\ No newline at end of file213\ No newline at end of file
231214
=== modified file 'Other Sources/main.m'
--- Other Sources/main.m 2010-09-22 08:15:31 +0000
+++ Other Sources/main.m 2012-09-19 03:34:23 +0000
@@ -30,10 +30,10 @@
3030
31#import <UIKit/UIKit.h>31#import <UIKit/UIKit.h>
3232
33#import "U1MusicAppDelegate.h"
34
33int main(int argc, char *argv[]) {35int main(int argc, char *argv[]) {
34 36 @autoreleasepool {
35 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];37 return UIApplicationMain(argc, argv, nil, NSStringFromClass([U1MusicAppDelegate class]));
36 int retVal = UIApplicationMain(argc, argv, nil, nil);38 }
37 [pool release];
38 return retVal;
39}39}
4040
=== modified file 'U1Music.xcodeproj/project.pbxproj'
--- U1Music.xcodeproj/project.pbxproj 2012-08-30 20:58:16 +0000
+++ U1Music.xcodeproj/project.pbxproj 2012-09-19 03:34:23 +0000
@@ -18,7 +18,7 @@
18 52169CA215D95E2C00ED366D /* cancel@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52169C9E15D95E2C00ED366D /* cancel@2x.png */; };18 52169CA215D95E2C00ED366D /* cancel@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52169C9E15D95E2C00ED366D /* cancel@2x.png */; };
19 52169CA315D95E2C00ED366D /* trash-grey.png in Resources */ = {isa = PBXBuildFile; fileRef = 52169C9F15D95E2C00ED366D /* trash-grey.png */; };19 52169CA315D95E2C00ED366D /* trash-grey.png in Resources */ = {isa = PBXBuildFile; fileRef = 52169C9F15D95E2C00ED366D /* trash-grey.png */; };
20 52169CA415D95E2C00ED366D /* trash-grey@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52169CA015D95E2C00ED366D /* trash-grey@2x.png */; };20 52169CA415D95E2C00ED366D /* trash-grey@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52169CA015D95E2C00ED366D /* trash-grey@2x.png */; };
21 523B3CDE15B4C42F004394F4 /* SongUITableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 523B3CDD15B4C42F004394F4 /* SongUITableView.m */; };21 523B3CDE15B4C42F004394F4 /* SongUITableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 523B3CDD15B4C42F004394F4 /* SongUITableView.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
22 523B3CE215B5D64F004394F4 /* grabber.png in Resources */ = {isa = PBXBuildFile; fileRef = 523B3CE015B5D64F004394F4 /* grabber.png */; };22 523B3CE215B5D64F004394F4 /* grabber.png in Resources */ = {isa = PBXBuildFile; fileRef = 523B3CE015B5D64F004394F4 /* grabber.png */; };
23 523B3CE315B5D64F004394F4 /* grabber@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 523B3CE115B5D64F004394F4 /* grabber@2x.png */; };23 523B3CE315B5D64F004394F4 /* grabber@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 523B3CE115B5D64F004394F4 /* grabber@2x.png */; };
24 523B3CE615B5D814004394F4 /* UOPullGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 523B3CE515B5D814004394F4 /* UOPullGestureRecognizer.m */; };24 523B3CE615B5D814004394F4 /* UOPullGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 523B3CE515B5D814004394F4 /* UOPullGestureRecognizer.m */; };
@@ -27,10 +27,58 @@
27 523B3CFB15B73BA0004394F4 /* download.png in Resources */ = {isa = PBXBuildFile; fileRef = 523B3CF715B73BA0004394F4 /* download.png */; };27 523B3CFB15B73BA0004394F4 /* download.png in Resources */ = {isa = PBXBuildFile; fileRef = 523B3CF715B73BA0004394F4 /* download.png */; };
28 523B3CFC15B73BA0004394F4 /* download@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 523B3CF815B73BA0004394F4 /* download@2x.png */; };28 523B3CFC15B73BA0004394F4 /* download@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 523B3CF815B73BA0004394F4 /* download@2x.png */; };
29 5279764915F00B2600F8435F /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 5279764815F00B2600F8435F /* libz.dylib */; };29 5279764915F00B2600F8435F /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 5279764815F00B2600F8435F /* libz.dylib */; };
30 5305C2061157F4F800BC78F0 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 5305C2051157F4F800BC78F0 /* Default.png */; };30 528515991604F410004A1F7C /* UbuntuOneAuthKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 528515941604F16D004A1F7C /* UbuntuOneAuthKit.a */; };
31 52A042FF1606D6C40000B4BC /* NSMutableURLRequest+Parameters.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042D71606D6C40000B4BC /* NSMutableURLRequest+Parameters.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
32 52A043001606D6C40000B4BC /* NSString+URLEncoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042D91606D6C40000B4BC /* NSString+URLEncoding.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
33 52A043011606D6C40000B4BC /* NSURL+Base.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042DB1606D6C40000B4BC /* NSURL+Base.m */; };
34 52A043021606D6C40000B4BC /* Base64Transcoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 52A042DD1606D6C40000B4BC /* Base64Transcoder.c */; };
35 52A043031606D6C40000B4BC /* hmac.c in Sources */ = {isa = PBXBuildFile; fileRef = 52A042DF1606D6C40000B4BC /* hmac.c */; };
36 52A043041606D6C40000B4BC /* sha1.c in Sources */ = {isa = PBXBuildFile; fileRef = 52A042E11606D6C40000B4BC /* sha1.c */; };
37 52A043051606D6C40000B4BC /* OAAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042E41606D6C40000B4BC /* OAAttachment.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
38 52A043061606D6C40000B4BC /* OACall.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042E61606D6C40000B4BC /* OACall.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
39 52A043071606D6C40000B4BC /* OAConsumer.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042E81606D6C40000B4BC /* OAConsumer.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
40 52A043081606D6C40000B4BC /* OADataFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042EA1606D6C40000B4BC /* OADataFetcher.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
41 52A043091606D6C40000B4BC /* OAHMAC_SHA1SignatureProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042EC1606D6C40000B4BC /* OAHMAC_SHA1SignatureProvider.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
42 52A0430A1606D6C40000B4BC /* OAMutableURLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042EE1606D6C40000B4BC /* OAMutableURLRequest.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
43 52A0430B1606D6C40000B4BC /* OAPlaintextSignatureProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042F01606D6C40000B4BC /* OAPlaintextSignatureProvider.m */; };
44 52A0430C1606D6C40000B4BC /* OAProblem.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042F21606D6C40000B4BC /* OAProblem.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
45 52A0430D1606D6C40000B4BC /* OARequestParameter.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042F41606D6C40000B4BC /* OARequestParameter.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
46 52A0430E1606D6C40000B4BC /* OAServiceTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042F61606D6C40000B4BC /* OAServiceTicket.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
47 52A0430F1606D6C40000B4BC /* OATestServer.rb in Resources */ = {isa = PBXBuildFile; fileRef = 52A042F81606D6C40000B4BC /* OATestServer.rb */; };
48 52A043101606D6C40000B4BC /* OAToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042FA1606D6C40000B4BC /* OAToken.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
49 52A043111606D6C40000B4BC /* OATokenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A042FC1606D6C40000B4BC /* OATokenManager.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
50 52A043121606D6C40000B4BC /* README in Resources */ = {isa = PBXBuildFile; fileRef = 52A042FE1606D6C40000B4BC /* README */; };
51 52AC3D671604513E00B4785D /* about_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D4B1604513E00B4785D /* about_logo.png */; };
52 52AC3D681604513E00B4785D /* albums.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D4C1604513E00B4785D /* albums.png */; };
53 52AC3D691604513E00B4785D /* albums@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D4D1604513E00B4785D /* albums@2x.png */; };
54 52AC3D6A1604513E00B4785D /* artists.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D4E1604513E00B4785D /* artists.png */; };
55 52AC3D6B1604513E00B4785D /* artists@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D4F1604513E00B4785D /* artists@2x.png */; };
56 52AC3D6C1604513E00B4785D /* cached.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D501604513E00B4785D /* cached.png */; };
57 52AC3D6D1604513E00B4785D /* cached@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D511604513E00B4785D /* cached@2x.png */; };
58 52AC3D6E1604513E00B4785D /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D521604513E00B4785D /* Default.png */; };
59 52AC3D6F1604513E00B4785D /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D531604513E00B4785D /* Default@2x.png */; };
60 52AC3D701604513E00B4785D /* header_bg.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D541604513E00B4785D /* header_bg.png */; };
61 52AC3D711604513E00B4785D /* header_logo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D551604513E00B4785D /* header_logo@2x.png */; };
62 52AC3D721604513E00B4785D /* music_29.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D561604513E00B4785D /* music_29.png */; };
63 52AC3D731604513E00B4785D /* music_57.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D571604513E00B4785D /* music_57.png */; };
64 52AC3D741604513E00B4785D /* music_57@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D581604513E00B4785D /* music_57@2x.png */; };
65 52AC3D751604513E00B4785D /* music_512.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D591604513E00B4785D /* music_512.png */; };
66 52AC3D761604513E00B4785D /* partiallycached.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D5A1604513E00B4785D /* partiallycached.png */; };
67 52AC3D771604513E00B4785D /* partiallycached@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D5B1604513E00B4785D /* partiallycached@2x.png */; };
68 52AC3D781604513E00B4785D /* playlists.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D5C1604513E00B4785D /* playlists.png */; };
69 52AC3D791604513E00B4785D /* playlists@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D5D1604513E00B4785D /* playlists@2x.png */; };
70 52AC3D7A1604513E00B4785D /* progress-label-background.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D5E1604513E00B4785D /* progress-label-background.png */; };
71 52AC3D7B1604513E00B4785D /* settings.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D5F1604513E00B4785D /* settings.png */; };
72 52AC3D7C1604513E00B4785D /* settings@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D601604513E00B4785D /* settings@2x.png */; };
73 52AC3D7D1604513E00B4785D /* songs.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D611604513E00B4785D /* songs.png */; };
74 52AC3D7E1604513E00B4785D /* songs@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D621604513E00B4785D /* songs@2x.png */; };
75 52AC3D7F1604513E00B4785D /* uncached-disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D631604513E00B4785D /* uncached-disabled.png */; };
76 52AC3D801604513E00B4785D /* uncached-disabled@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D641604513E00B4785D /* uncached-disabled@2x.png */; };
77 52AC3D811604513E00B4785D /* uncached.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D651604513E00B4785D /* uncached.png */; };
78 52AC3D821604513E00B4785D /* uncached@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D661604513E00B4785D /* uncached@2x.png */; };
79 52AC3D841604539000B4785D /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52AC3D831604539000B4785D /* Default-568h@2x.png */; };
31 536D620B1144495400DFCE56 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 536D620A1144495400DFCE56 /* SystemConfiguration.framework */; };80 536D620B1144495400DFCE56 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 536D620A1144495400DFCE56 /* SystemConfiguration.framework */; };
32 537DE2D9113F008C00875852 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 537DE2D8113F008C00875852 /* CoreFoundation.framework */; };81 537DE2D9113F008C00875852 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 537DE2D8113F008C00875852 /* CoreFoundation.framework */; };
33 53F0CD8211589F0A00A665CD /* progress-label-background.png in Resources */ = {isa = PBXBuildFile; fileRef = 53F0CD8111589F0A00A665CD /* progress-label-background.png */; };
34 53F675D8113B092C00822059 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F675D7113B092C00822059 /* MediaPlayer.framework */; };82 53F675D8113B092C00822059 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F675D7113B092C00822059 /* MediaPlayer.framework */; };
35 53F675DC113B093900822059 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F675DB113B093900822059 /* CFNetwork.framework */; };83 53F675DC113B093900822059 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F675DB113B093900822059 /* CFNetwork.framework */; };
36 53F675E2113B095900822059 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F675E1113B095900822059 /* QuartzCore.framework */; };84 53F675E2113B095900822059 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F675E1113B095900822059 /* QuartzCore.framework */; };
@@ -38,93 +86,73 @@
38 91018B0B13573BBB0051EFDC /* UIImage+Resize.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B0A13573BBB0051EFDC /* UIImage+Resize.m */; };86 91018B0B13573BBB0051EFDC /* UIImage+Resize.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B0A13573BBB0051EFDC /* UIImage+Resize.m */; };
39 91018B0E13573D150051EFDC /* UIImage+Alpha.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B0D13573D150051EFDC /* UIImage+Alpha.m */; };87 91018B0E13573D150051EFDC /* UIImage+Alpha.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B0D13573D150051EFDC /* UIImage+Alpha.m */; };
40 91018B1113573D350051EFDC /* UIImage+RoundedCorner.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B1013573D350051EFDC /* UIImage+RoundedCorner.m */; };88 91018B1113573D350051EFDC /* UIImage+RoundedCorner.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B1013573D350051EFDC /* UIImage+RoundedCorner.m */; };
41 91018B4B135A724B0051EFDC /* PlaylistEditAlbumListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B42135A724B0051EFDC /* PlaylistEditAlbumListViewController.m */; };89 91018B4B135A724B0051EFDC /* PlaylistEditAlbumListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B42135A724B0051EFDC /* PlaylistEditAlbumListViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
42 91018B4C135A724B0051EFDC /* PlaylistEditAlbumViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B44135A724B0051EFDC /* PlaylistEditAlbumViewController.m */; };90 91018B4C135A724B0051EFDC /* PlaylistEditAlbumViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B44135A724B0051EFDC /* PlaylistEditAlbumViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
43 91018B4D135A724B0051EFDC /* PlaylistEditArtistListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B46135A724B0051EFDC /* PlaylistEditArtistListViewController.m */; };91 91018B4D135A724B0051EFDC /* PlaylistEditArtistListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B46135A724B0051EFDC /* PlaylistEditArtistListViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
44 91018B4E135A724B0051EFDC /* PlaylistEditArtistViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B48135A724B0051EFDC /* PlaylistEditArtistViewController.m */; };92 91018B4E135A724B0051EFDC /* PlaylistEditArtistViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B48135A724B0051EFDC /* PlaylistEditArtistViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
45 91018B4F135A724B0051EFDC /* PlaylistEditSongListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B4A135A724B0051EFDC /* PlaylistEditSongListViewController.m */; };93 91018B4F135A724B0051EFDC /* PlaylistEditSongListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91018B4A135A724B0051EFDC /* PlaylistEditSongListViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
46 9110DC38134C045A0046B8E4 /* AlbumParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 9110DC37134C04590046B8E4 /* AlbumParser.m */; };94 9110DC38134C045A0046B8E4 /* AlbumParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 9110DC37134C04590046B8E4 /* AlbumParser.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
47 9110DC44134EAC740046B8E4 /* AlbumListParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 9110DC43134EAC730046B8E4 /* AlbumListParser.m */; };95 9110DC44134EAC740046B8E4 /* AlbumListParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 9110DC43134EAC730046B8E4 /* AlbumListParser.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
48 9110DC571354A7490046B8E4 /* AlbumArtistUITableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9110DC561354A7470046B8E4 /* AlbumArtistUITableViewCell.m */; };96 9110DC571354A7490046B8E4 /* AlbumArtistUITableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9110DC561354A7470046B8E4 /* AlbumArtistUITableViewCell.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
49 9112B0241383FF27003C1D93 /* albums.png in Resources */ = {isa = PBXBuildFile; fileRef = 9112B01E1383FF27003C1D93 /* albums.png */; };97 9123D1A113257ADF00B40210 /* PlaylistListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9123D1A013257ADF00B40210 /* PlaylistListViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
50 9112B0251383FF27003C1D93 /* artists.png in Resources */ = {isa = PBXBuildFile; fileRef = 9112B01F1383FF27003C1D93 /* artists.png */; };98 9123D1BB13280B3400B40210 /* PlaylistViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9123D1BA13280B3400B40210 /* PlaylistViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
51 9112B0261383FF27003C1D93 /* playlists.png in Resources */ = {isa = PBXBuildFile; fileRef = 9112B0201383FF27003C1D93 /* playlists.png */; };99 9123D1C3132816D200B40210 /* PlaylistListParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 9123D1C2132816D200B40210 /* PlaylistListParser.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
52 9112B0281383FF27003C1D93 /* settings.png in Resources */ = {isa = PBXBuildFile; fileRef = 9112B0221383FF27003C1D93 /* settings.png */; };100 912D1259134617F600721EE4 /* SongListParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 912D1258134617F600721EE4 /* SongListParser.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
53 9112B0291383FF27003C1D93 /* songs.png in Resources */ = {isa = PBXBuildFile; fileRef = 9112B0231383FF27003C1D93 /* songs.png */; };101 912D1264134A162000721EE4 /* AlertPrompt.m in Sources */ = {isa = PBXBuildFile; fileRef = 912D1263134A162000721EE4 /* AlertPrompt.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
54 9112B02F1383FF37003C1D93 /* albums@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9112B02A1383FF37003C1D93 /* albums@2x.png */; };102 912D1267134B609700721EE4 /* PlaylistEditViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 912D1266134B609600721EE4 /* PlaylistEditViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
55 9112B0301383FF37003C1D93 /* artists@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9112B02B1383FF37003C1D93 /* artists@2x.png */; };103 912D392213311F2700A443B2 /* AlbumListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 912D392113311F2500A443B2 /* AlbumListViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
56 9112B0311383FF37003C1D93 /* playlists@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9112B02C1383FF37003C1D93 /* playlists@2x.png */; };104 912D392613311FC600A443B2 /* SongListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 912D392513311FC400A443B2 /* SongListViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
57 9112B0321383FF37003C1D93 /* settings@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9112B02D1383FF37003C1D93 /* settings@2x.png */; };
58 9112B0331383FF37003C1D93 /* songs@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9112B02E1383FF37003C1D93 /* songs@2x.png */; };
59 9123D1A113257ADF00B40210 /* PlaylistListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9123D1A013257ADF00B40210 /* PlaylistListViewController.m */; };
60 9123D1BB13280B3400B40210 /* PlaylistViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9123D1BA13280B3400B40210 /* PlaylistViewController.m */; };
61 9123D1C3132816D200B40210 /* PlaylistListParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 9123D1C2132816D200B40210 /* PlaylistListParser.m */; };
62 912D1259134617F600721EE4 /* SongListParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 912D1258134617F600721EE4 /* SongListParser.m */; };
63 912D1264134A162000721EE4 /* AlertPrompt.m in Sources */ = {isa = PBXBuildFile; fileRef = 912D1263134A162000721EE4 /* AlertPrompt.m */; };
64 912D1267134B609700721EE4 /* PlaylistEditViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 912D1266134B609600721EE4 /* PlaylistEditViewController.m */; };
65 912D392213311F2700A443B2 /* AlbumListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 912D392113311F2500A443B2 /* AlbumListViewController.m */; };
66 912D392613311FC600A443B2 /* SongListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 912D392513311FC400A443B2 /* SongListViewController.m */; };
67 9132827D144E07EA00395F40 /* libTestFlight.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 91328279144E07EA00395F40 /* libTestFlight.a */; };105 9132827D144E07EA00395F40 /* libTestFlight.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 91328279144E07EA00395F40 /* libTestFlight.a */; };
68 9132827E144E07EA00395F40 /* README.txt in Resources */ = {isa = PBXBuildFile; fileRef = 9132827A144E07EA00395F40 /* README.txt */; };106 9132827E144E07EA00395F40 /* README.txt in Resources */ = {isa = PBXBuildFile; fileRef = 9132827A144E07EA00395F40 /* README.txt */; };
69 9132827F144E07EA00395F40 /* release_notes.txt in Resources */ = {isa = PBXBuildFile; fileRef = 9132827B144E07EA00395F40 /* release_notes.txt */; };107 9132827F144E07EA00395F40 /* release_notes.txt in Resources */ = {isa = PBXBuildFile; fileRef = 9132827B144E07EA00395F40 /* release_notes.txt */; };
70 91406E9413849F2400A7DA67 /* cached.png in Resources */ = {isa = PBXBuildFile; fileRef = 91406E8E13849F2400A7DA67 /* cached.png */; };108 91406EEA138AEEE000A7DA67 /* NSString+Extras.m in Sources */ = {isa = PBXBuildFile; fileRef = 91406EE9138AEEE000A7DA67 /* NSString+Extras.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
71 91406E9513849F2400A7DA67 /* cached@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 91406E8F13849F2400A7DA67 /* cached@2x.png */; };
72 91406E9613849F2400A7DA67 /* partiallycached.png in Resources */ = {isa = PBXBuildFile; fileRef = 91406E9013849F2400A7DA67 /* partiallycached.png */; };
73 91406E9713849F2400A7DA67 /* partiallycached@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 91406E9113849F2400A7DA67 /* partiallycached@2x.png */; };
74 91406E9813849F2400A7DA67 /* uncached.png in Resources */ = {isa = PBXBuildFile; fileRef = 91406E9213849F2400A7DA67 /* uncached.png */; };
75 91406E9913849F2400A7DA67 /* uncached@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 91406E9313849F2400A7DA67 /* uncached@2x.png */; };
76 91406EEA138AEEE000A7DA67 /* NSString+Extras.m in Sources */ = {isa = PBXBuildFile; fileRef = 91406EE9138AEEE000A7DA67 /* NSString+Extras.m */; };
77 9149D9CF159BEC3D009AE771 /* default-album-art-120.png in Resources */ = {isa = PBXBuildFile; fileRef = 9149D9C9159BEC3D009AE771 /* default-album-art-120.png */; };109 9149D9CF159BEC3D009AE771 /* default-album-art-120.png in Resources */ = {isa = PBXBuildFile; fileRef = 9149D9C9159BEC3D009AE771 /* default-album-art-120.png */; };
78 9149D9D0159BEC3D009AE771 /* default-album-art-200.png in Resources */ = {isa = PBXBuildFile; fileRef = 9149D9CA159BEC3D009AE771 /* default-album-art-200.png */; };110 9149D9D0159BEC3D009AE771 /* default-album-art-200.png in Resources */ = {isa = PBXBuildFile; fileRef = 9149D9CA159BEC3D009AE771 /* default-album-art-200.png */; };
79 9149D9D1159BEC3D009AE771 /* default-album-art-120@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9149D9CB159BEC3D009AE771 /* default-album-art-120@2x.png */; };111 9149D9D1159BEC3D009AE771 /* default-album-art-120@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9149D9CB159BEC3D009AE771 /* default-album-art-120@2x.png */; };
80 9149D9D2159BEC3D009AE771 /* default-album-art-200@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9149D9CC159BEC3D009AE771 /* default-album-art-200@2x.png */; };112 9149D9D2159BEC3D009AE771 /* default-album-art-200@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9149D9CC159BEC3D009AE771 /* default-album-art-200@2x.png */; };
81 9149D9D3159BEC3D009AE771 /* default-album-art-640.png in Resources */ = {isa = PBXBuildFile; fileRef = 9149D9CD159BEC3D009AE771 /* default-album-art-640.png */; };113 9149D9D3159BEC3D009AE771 /* default-album-art-640.png in Resources */ = {isa = PBXBuildFile; fileRef = 9149D9CD159BEC3D009AE771 /* default-album-art-640.png */; };
82 9149D9D4159BEC3D009AE771 /* default-album-art-640@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9149D9CE159BEC3D009AE771 /* default-album-art-640@2x.png */; };114 9149D9D4159BEC3D009AE771 /* default-album-art-640@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9149D9CE159BEC3D009AE771 /* default-album-art-640@2x.png */; };
83 914AC3FF14B61D8A00C7D5A3 /* CachedSongsPlaylist.m in Sources */ = {isa = PBXBuildFile; fileRef = 914AC3F114B61D8A00C7D5A3 /* CachedSongsPlaylist.m */; };115 914AC3FF14B61D8A00C7D5A3 /* CachedSongsPlaylist.m in Sources */ = {isa = PBXBuildFile; fileRef = 914AC3F114B61D8A00C7D5A3 /* CachedSongsPlaylist.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
84 914AC40014B61D8A00C7D5A3 /* _Album.m in Sources */ = {isa = PBXBuildFile; fileRef = 914AC3F414B61D8A00C7D5A3 /* _Album.m */; };116 914AC40014B61D8A00C7D5A3 /* _Album.m in Sources */ = {isa = PBXBuildFile; fileRef = 914AC3F414B61D8A00C7D5A3 /* _Album.m */; };
85 914AC40114B61D8A00C7D5A3 /* _Artist.m in Sources */ = {isa = PBXBuildFile; fileRef = 914AC3F614B61D8A00C7D5A3 /* _Artist.m */; };117 914AC40114B61D8A00C7D5A3 /* _Artist.m in Sources */ = {isa = PBXBuildFile; fileRef = 914AC3F614B61D8A00C7D5A3 /* _Artist.m */; };
86 914AC40214B61D8A00C7D5A3 /* _Playlist.m in Sources */ = {isa = PBXBuildFile; fileRef = 914AC3F814B61D8A00C7D5A3 /* _Playlist.m */; };118 914AC40214B61D8A00C7D5A3 /* _Playlist.m in Sources */ = {isa = PBXBuildFile; fileRef = 914AC3F814B61D8A00C7D5A3 /* _Playlist.m */; };
87 914AC40314B61D8A00C7D5A3 /* _PlaylistSongIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 914AC3FA14B61D8A00C7D5A3 /* _PlaylistSongIndex.m */; };119 914AC40314B61D8A00C7D5A3 /* _PlaylistSongIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 914AC3FA14B61D8A00C7D5A3 /* _PlaylistSongIndex.m */; };
88 914AC40414B61D8A00C7D5A3 /* _Song.m in Sources */ = {isa = PBXBuildFile; fileRef = 914AC3FC14B61D8A00C7D5A3 /* _Song.m */; };120 914AC40414B61D8A00C7D5A3 /* _Song.m in Sources */ = {isa = PBXBuildFile; fileRef = 914AC3FC14B61D8A00C7D5A3 /* _Song.m */; };
89 914AC40514B61D8A00C7D5A3 /* PlaylistSongIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 914AC3FE14B61D8A00C7D5A3 /* PlaylistSongIndex.m */; };121 914AC40514B61D8A00C7D5A3 /* PlaylistSongIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 914AC3FE14B61D8A00C7D5A3 /* PlaylistSongIndex.m */; };
90 917B47EF14E306C800062874 /* U1AutoDownloadsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 917B47EE14E306C800062874 /* U1AutoDownloadsManager.m */; };122 917B47EF14E306C800062874 /* U1AutoDownloadsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 917B47EE14E306C800062874 /* U1AutoDownloadsManager.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
91 917B47FB14E42C7900062874 /* U1CacheFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 917B47FA14E42C7900062874 /* U1CacheFileManager.m */; };123 917B47FB14E42C7900062874 /* U1CacheFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 917B47FA14E42C7900062874 /* U1CacheFileManager.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
92 919376F3135CC1CF0030B7BD /* PlaylistEditSongUITableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 919376F2135CC1CF0030B7BD /* PlaylistEditSongUITableViewCell.m */; };124 919376F3135CC1CF0030B7BD /* PlaylistEditSongUITableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 919376F2135CC1CF0030B7BD /* PlaylistEditSongUITableViewCell.m */; };
93 91B3A4441344CF92006C8193 /* SubsonicIndexedTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91B3A4431344CF91006C8193 /* SubsonicIndexedTableViewController.m */; };125 91B3A4441344CF92006C8193 /* SubsonicIndexedTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91B3A4431344CF91006C8193 /* SubsonicIndexedTableViewController.m */; };
94 91BE4018138E8D2300D44D68 /* UIActionSheet+Blocks.m in Sources */ = {isa = PBXBuildFile; fileRef = 91BE4015138E8D2300D44D68 /* UIActionSheet+Blocks.m */; };126 91BE4018138E8D2300D44D68 /* UIActionSheet+Blocks.m in Sources */ = {isa = PBXBuildFile; fileRef = 91BE4015138E8D2300D44D68 /* UIActionSheet+Blocks.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
95 91BE4019138E8D2300D44D68 /* UIAlertView+Blocks.m in Sources */ = {isa = PBXBuildFile; fileRef = 91BE4017138E8D2300D44D68 /* UIAlertView+Blocks.m */; };127 91BE4019138E8D2300D44D68 /* UIAlertView+Blocks.m in Sources */ = {isa = PBXBuildFile; fileRef = 91BE4017138E8D2300D44D68 /* UIAlertView+Blocks.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
96 91BE401C138E8D3A00D44D68 /* RIButtonItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 91BE401B138E8D3A00D44D68 /* RIButtonItem.m */; };128 91BE401C138E8D3A00D44D68 /* RIButtonItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 91BE401B138E8D3A00D44D68 /* RIButtonItem.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
97 91C493D014E4593C00BC1815 /* U1ByteSizeValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 91C493CF14E4593C00BC1815 /* U1ByteSizeValueTransformer.m */; };129 91C493D014E4593C00BC1815 /* U1ByteSizeValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 91C493CF14E4593C00BC1815 /* U1ByteSizeValueTransformer.m */; };
98 91C8CCAF14B7883600A0E311 /* ArtistUITableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 91C8CCAE14B7883600A0E311 /* ArtistUITableViewCell.m */; };130 91C8CCAF14B7883600A0E311 /* ArtistUITableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 91C8CCAE14B7883600A0E311 /* ArtistUITableViewCell.m */; };
99 91D18DAB13B228D3001BEB42 /* uncached-disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = 91D18DA913B228D3001BEB42 /* uncached-disabled.png */; };131 91D3A16F14B93B2A003D4FC0 /* MOC.m in Sources */ = {isa = PBXBuildFile; fileRef = 91D3A16E14B93B2A003D4FC0 /* MOC.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
100 91D18DAC13B228D3001BEB42 /* uncached-disabled@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 91D18DAA13B228D3001BEB42 /* uncached-disabled@2x.png */; };
101 91D3A16F14B93B2A003D4FC0 /* MOC.m in Sources */ = {isa = PBXBuildFile; fileRef = 91D3A16E14B93B2A003D4FC0 /* MOC.m */; };
102 91D3A17214BE12FE003D4FC0 /* PlaylistUITableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 91D3A17114BE12FE003D4FC0 /* PlaylistUITableViewCell.m */; };132 91D3A17214BE12FE003D4FC0 /* PlaylistUITableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 91D3A17114BE12FE003D4FC0 /* PlaylistUITableViewCell.m */; };
103 91DB6B9F13E9C7190029BC77 /* about_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 91DB6B9E13E9C7190029BC77 /* about_logo.png */; };133 91E3E46414D33A2D006ED32F /* U1SerializedDownloadOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 91E3E46314D33A2D006ED32F /* U1SerializedDownloadOperation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
104 91E3E46414D33A2D006ED32F /* U1SerializedDownloadOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 91E3E46314D33A2D006ED32F /* U1SerializedDownloadOperation.m */; };134 91E3E46814D33A6F006ED32F /* U1ChunkDownloadOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 91E3E46714D33A6F006ED32F /* U1ChunkDownloadOperation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
105 91E3E46814D33A6F006ED32F /* U1ChunkDownloadOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 91E3E46714D33A6F006ED32F /* U1ChunkDownloadOperation.m */; };135 91E88609132DA82000618994 /* PlaylistParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 91E88608132DA82000618994 /* PlaylistParser.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
106 91E88609132DA82000618994 /* PlaylistParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 91E88608132DA82000618994 /* PlaylistParser.m */; };
107 91F2653014EACFCC0027232B /* U1MigrationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91F2652E14EACFCC0027232B /* U1MigrationViewController.m */; };136 91F2653014EACFCC0027232B /* U1MigrationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91F2652E14EACFCC0027232B /* U1MigrationViewController.m */; };
108 91F2653114EACFCC0027232B /* U1MigrationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 91F2652F14EACFCC0027232B /* U1MigrationViewController.xib */; };137 91F2653114EACFCC0027232B /* U1MigrationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 91F2652F14EACFCC0027232B /* U1MigrationViewController.xib */; };
109 9316628812264A74003B0EB7 /* NSDate+Extras.m in Sources */ = {isa = PBXBuildFile; fileRef = 9316628712264A74003B0EB7 /* NSDate+Extras.m */; };138 9316628812264A74003B0EB7 /* NSDate+Extras.m in Sources */ = {isa = PBXBuildFile; fileRef = 9316628712264A74003B0EB7 /* NSDate+Extras.m */; };
110 932E7A6E1254747E00E7C8FF /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 932E7A6D1254747E00E7C8FF /* Default@2x.png */; };
111 932E7AA01255265A00E7C8FF /* about.css in Resources */ = {isa = PBXBuildFile; fileRef = 932E7A9E1255265A00E7C8FF /* about.css */; };139 932E7AA01255265A00E7C8FF /* about.css in Resources */ = {isa = PBXBuildFile; fileRef = 932E7A9E1255265A00E7C8FF /* about.css */; };
112 932E7AA11255265A00E7C8FF /* about.html in Resources */ = {isa = PBXBuildFile; fileRef = 932E7A9F1255265A00E7C8FF /* about.html */; };140 932E7AA11255265A00E7C8FF /* about.html in Resources */ = {isa = PBXBuildFile; fileRef = 932E7A9F1255265A00E7C8FF /* about.html */; };
113 932E7B0912552CB400E7C8FF /* PullRefreshTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 932E7B0812552CB400E7C8FF /* PullRefreshTableViewController.m */; };141 932E7B0912552CB400E7C8FF /* PullRefreshTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 932E7B0812552CB400E7C8FF /* PullRefreshTableViewController.m */; };
114 932E7B0B12552CD500E7C8FF /* arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = 932E7B0A12552CD500E7C8FF /* arrow.png */; };142 932E7B0B12552CD500E7C8FF /* arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = 932E7B0A12552CD500E7C8FF /* arrow.png */; };
115 9354D0AB1248267B00733067 /* NSDictionary+Extras.m in Sources */ = {isa = PBXBuildFile; fileRef = 9354D0AA1248267B00733067 /* NSDictionary+Extras.m */; };143 9354D0AB1248267B00733067 /* NSDictionary+Extras.m in Sources */ = {isa = PBXBuildFile; fileRef = 9354D0AA1248267B00733067 /* NSDictionary+Extras.m */; };
116 936F20681227364200070F43 /* Playlist.m in Sources */ = {isa = PBXBuildFile; fileRef = 936F20671227364200070F43 /* Playlist.m */; };144 936F20681227364200070F43 /* Playlist.m in Sources */ = {isa = PBXBuildFile; fileRef = 936F20671227364200070F43 /* Playlist.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
117 936F209012273D9000070F43 /* Song.m in Sources */ = {isa = PBXBuildFile; fileRef = 936F208F12273D9000070F43 /* Song.m */; };145 936F209012273D9000070F43 /* Song.m in Sources */ = {isa = PBXBuildFile; fileRef = 936F208F12273D9000070F43 /* Song.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
118 936F230A12284D1900070F43 /* NamedTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 936F230912284D1900070F43 /* NamedTextFieldCell.m */; };146 936F230A12284D1900070F43 /* NamedTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 936F230912284D1900070F43 /* NamedTextFieldCell.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
119 937FAA11137CFC1B00507E51 /* AlbumArtLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 937FAA0E137CFC1B00507E51 /* AlbumArtLoader.m */; };147 937FAA11137CFC1B00507E51 /* AlbumArtLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 937FAA0E137CFC1B00507E51 /* AlbumArtLoader.m */; };
120 937FAA12137CFC1B00507E51 /* AlbumArtDownloadOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 937FAA10137CFC1B00507E51 /* AlbumArtDownloadOperation.m */; };148 937FAA12137CFC1B00507E51 /* AlbumArtDownloadOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 937FAA10137CFC1B00507E51 /* AlbumArtDownloadOperation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
121 937FAA15137CFC5000507E51 /* Downloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 937FAA14137CFC5000507E51 /* Downloader.m */; };149 937FAA15137CFC5000507E51 /* Downloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 937FAA14137CFC5000507E51 /* Downloader.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
122 937FAA18137CFC7200507E51 /* DownloadOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 937FAA17137CFC7200507E51 /* DownloadOperation.m */; };150 937FAA18137CFC7200507E51 /* DownloadOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 937FAA17137CFC7200507E51 /* DownloadOperation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
123 937FAA1B137CFCA600507E51 /* AbstractNetworkOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 937FAA1A137CFCA600507E51 /* AbstractNetworkOperation.m */; };151 937FAA1B137CFCA600507E51 /* AbstractNetworkOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 937FAA1A137CFCA600507E51 /* AbstractNetworkOperation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
124 937FAAEF137D15E800507E51 /* Globals.m in Sources */ = {isa = PBXBuildFile; fileRef = 937FAAEE137D15E800507E51 /* Globals.m */; };152 937FAAEF137D15E800507E51 /* Globals.m in Sources */ = {isa = PBXBuildFile; fileRef = 937FAAEE137D15E800507E51 /* Globals.m */; };
125 93A54024123188880048BC3D /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93A54023123188880048BC3D /* Security.framework */; };153 93A54024123188880048BC3D /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93A54023123188880048BC3D /* Security.framework */; };
126 93BC5209124C181600B7587C /* Subsonic.m in Sources */ = {isa = PBXBuildFile; fileRef = 93BC5208124C181600B7587C /* Subsonic.m */; };154 93BC5209124C181600B7587C /* Subsonic.m in Sources */ = {isa = PBXBuildFile; fileRef = 93BC5208124C181600B7587C /* Subsonic.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
127 93BC52A7124C1E6900B7587C /* StreamingPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 93BC52A6124C1E6900B7587C /* StreamingPlayer.m */; };155 93BC52A7124C1E6900B7587C /* StreamingPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 93BC52A6124C1E6900B7587C /* StreamingPlayer.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
128 93CCBD4F1254039900AFFC22 /* speaker.png in Resources */ = {isa = PBXBuildFile; fileRef = 93CCBD4D1254039900AFFC22 /* speaker.png */; };156 93CCBD4F1254039900AFFC22 /* speaker.png in Resources */ = {isa = PBXBuildFile; fileRef = 93CCBD4D1254039900AFFC22 /* speaker.png */; };
129 93CCBD501254039900AFFC22 /* speaker@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 93CCBD4E1254039900AFFC22 /* speaker@2x.png */; };157 93CCBD501254039900AFFC22 /* speaker@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 93CCBD4E1254039900AFFC22 /* speaker@2x.png */; };
130 93CCBD7D12540CB700AFFC22 /* AboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93CCBD7B12540CB700AFFC22 /* AboutViewController.m */; };158 93CCBD7D12540CB700AFFC22 /* AboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93CCBD7B12540CB700AFFC22 /* AboutViewController.m */; };
@@ -139,33 +167,29 @@
139 93D6B2BD124FD72D007880B0 /* loopback-one-highlight.png in Resources */ = {isa = PBXBuildFile; fileRef = 93D6B2BB124FD72D007880B0 /* loopback-one-highlight.png */; };167 93D6B2BD124FD72D007880B0 /* loopback-one-highlight.png in Resources */ = {isa = PBXBuildFile; fileRef = 93D6B2BB124FD72D007880B0 /* loopback-one-highlight.png */; };
140 93D6B2BE124FD72D007880B0 /* loopback-one-highlight@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 93D6B2BC124FD72D007880B0 /* loopback-one-highlight@2x.png */; };168 93D6B2BE124FD72D007880B0 /* loopback-one-highlight@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 93D6B2BC124FD72D007880B0 /* loopback-one-highlight@2x.png */; };
141 93D6B2D3124FDA56007880B0 /* NSMutableArray+Extras.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D6B2D2124FDA56007880B0 /* NSMutableArray+Extras.m */; };169 93D6B2D3124FDA56007880B0 /* NSMutableArray+Extras.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D6B2D2124FDA56007880B0 /* NSMutableArray+Extras.m */; };
142 93D6B50E1252CA71007880B0 /* music_29.png in Resources */ = {isa = PBXBuildFile; fileRef = 93D6B50A1252CA71007880B0 /* music_29.png */; };170 93D6B54B1252CE57007880B0 /* URLQueryStringParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D6B54A1252CE57007880B0 /* URLQueryStringParser.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
143 93D6B50F1252CA71007880B0 /* music_57.png in Resources */ = {isa = PBXBuildFile; fileRef = 93D6B50B1252CA71007880B0 /* music_57.png */; };
144 93D6B5111252CA71007880B0 /* music_512.png in Resources */ = {isa = PBXBuildFile; fileRef = 93D6B50D1252CA71007880B0 /* music_512.png */; };
145 93D6B5151252CB34007880B0 /* music_57@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 93D6B5141252CB34007880B0 /* music_57@2x.png */; };
146 93D6B54B1252CE57007880B0 /* URLQueryStringParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D6B54A1252CE57007880B0 /* URLQueryStringParser.m */; };
147 93DFFE3F135D70B60061F29F /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93DFFE3E135D70B60061F29F /* CoreData.framework */; };171 93DFFE3F135D70B60061F29F /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93DFFE3E135D70B60061F29F /* CoreData.framework */; };
148 93DFFE4D135D71760061F29F /* music.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 93DFFE4C135D71760061F29F /* music.xcdatamodeld */; };172 93DFFE4D135D71760061F29F /* music.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 93DFFE4C135D71760061F29F /* music.xcdatamodeld */; };
149 93DFFE54135D72420061F29F /* NSManagedObjectContext+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DFFE53135D72420061F29F /* NSManagedObjectContext+Additions.m */; };173 93DFFE54135D72420061F29F /* NSManagedObjectContext+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DFFE53135D72420061F29F /* NSManagedObjectContext+Additions.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
150 93EE2AF0124993F100E7E060 /* ArtistListParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 93EE2AEF124993F100E7E060 /* ArtistListParser.m */; };174 93EE2AF0124993F100E7E060 /* ArtistListParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 93EE2AEF124993F100E7E060 /* ArtistListParser.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
151 93EE2BA31249F33D00E7E060 /* ArtistParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 93EE2BA21249F33D00E7E060 /* ArtistParser.m */; };175 93EE2BA31249F33D00E7E060 /* ArtistParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 93EE2BA21249F33D00E7E060 /* ArtistParser.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
152 93F334471247F9DE006C6707 /* SFHFKeychainUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F334461247F9DE006C6707 /* SFHFKeychainUtils.m */; };176 93F334471247F9DE006C6707 /* SFHFKeychainUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F334461247F9DE006C6707 /* SFHFKeychainUtils.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
153 93F3344D1247FA0B006C6707 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3344C1247FA0B006C6707 /* Reachability.m */; };177 93F3344D1247FA0B006C6707 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3344C1247FA0B006C6707 /* Reachability.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
154 93F334521247FA2C006C6707 /* Album.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3344F1247FA2C006C6707 /* Album.m */; };178 93F334521247FA2C006C6707 /* Album.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3344F1247FA2C006C6707 /* Album.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
155 93F334531247FA2C006C6707 /* Artist.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F334511247FA2C006C6707 /* Artist.m */; };179 93F334531247FA2C006C6707 /* Artist.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F334511247FA2C006C6707 /* Artist.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
156 93F3345C1247FA85006C6707 /* AlbumUITableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3345B1247FA85006C6707 /* AlbumUITableViewCell.m */; };180 93F3345C1247FA85006C6707 /* AlbumUITableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3345B1247FA85006C6707 /* AlbumUITableViewCell.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
157 93F3345F1247FA97006C6707 /* SongUITableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3345E1247FA97006C6707 /* SongUITableViewCell.m */; };181 93F3345F1247FA97006C6707 /* SongUITableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3345E1247FA97006C6707 /* SongUITableViewCell.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
158 93F334681247FB02006C6707 /* SongViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 93F334641247FB02006C6707 /* SongViewController.xib */; };182 93F334681247FB02006C6707 /* SongViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 93F334641247FB02006C6707 /* SongViewController.xib */; };
159 93F334691247FB02006C6707 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 93F334651247FB02006C6707 /* MainWindow.xib */; };183 93F334691247FB02006C6707 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 93F334651247FB02006C6707 /* MainWindow.xib */; };
160 93F3346A1247FB02006C6707 /* SearchableTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 93F334661247FB02006C6707 /* SearchableTableViewController.xib */; };184 93F3346A1247FB02006C6707 /* SearchableTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 93F334661247FB02006C6707 /* SearchableTableViewController.xib */; };
161 93F334711247FB78006C6707 /* U1MusicAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3346F1247FB78006C6707 /* U1MusicAppDelegate.m */; };185 93F334711247FB78006C6707 /* U1MusicAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3346F1247FB78006C6707 /* U1MusicAppDelegate.m */; };
162 93F334721247FB78006C6707 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F334701247FB78006C6707 /* main.m */; };186 93F334721247FB78006C6707 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F334701247FB78006C6707 /* main.m */; };
163 93F334751247FB9F006C6707 /* AudioStreamer.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F334741247FB9F006C6707 /* AudioStreamer.m */; };187 93F334751247FB9F006C6707 /* AudioStreamer.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F334741247FB9F006C6707 /* AudioStreamer.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
164 93F3349F1247FCDC006C6707 /* ArtistViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3348E1247FCDC006C6707 /* ArtistViewController.m */; };188 93F3349F1247FCDC006C6707 /* ArtistViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3348E1247FCDC006C6707 /* ArtistViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
165 93F334A01247FCDC006C6707 /* SongViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F334901247FCDC006C6707 /* SongViewController.m */; };189 93F334A01247FCDC006C6707 /* SongViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F334901247FCDC006C6707 /* SongViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
166 93F334A31247FCDC006C6707 /* ArtistListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F334961247FCDC006C6707 /* ArtistListViewController.m */; };190 93F334A31247FCDC006C6707 /* ArtistListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F334961247FCDC006C6707 /* ArtistListViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
167 93F334A41247FCDC006C6707 /* SettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F334981247FCDC006C6707 /* SettingsViewController.m */; };191 93F334A41247FCDC006C6707 /* SettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F334981247FCDC006C6707 /* SettingsViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
168 93F334A61247FCDC006C6707 /* AlbumViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3349C1247FCDC006C6707 /* AlbumViewController.m */; };192 93F334A61247FCDC006C6707 /* AlbumViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3349C1247FCDC006C6707 /* AlbumViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
169 93F334A71247FCDC006C6707 /* SubsonicTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3349E1247FCDC006C6707 /* SubsonicTableViewController.m */; };193 93F334A71247FCDC006C6707 /* SubsonicTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93F3349E1247FCDC006C6707 /* SubsonicTableViewController.m */; };
170 93FA42AE124DC1350080DF62 /* 03-loopback.png in Resources */ = {isa = PBXBuildFile; fileRef = 93FA42A7124DC1350080DF62 /* 03-loopback.png */; };194 93FA42AE124DC1350080DF62 /* 03-loopback.png in Resources */ = {isa = PBXBuildFile; fileRef = 93FA42A7124DC1350080DF62 /* 03-loopback.png */; };
171 93FA42AF124DC1350080DF62 /* 03-loopback@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 93FA42A8124DC1350080DF62 /* 03-loopback@2x.png */; };195 93FA42AF124DC1350080DF62 /* 03-loopback@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 93FA42A8124DC1350080DF62 /* 03-loopback@2x.png */; };
@@ -181,47 +205,49 @@
181 93FA43B6124DF07C0080DF62 /* player_overlay_bg@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 93FA43B4124DF07C0080DF62 /* player_overlay_bg@2x.png */; };205 93FA43B6124DF07C0080DF62 /* player_overlay_bg@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 93FA43B4124DF07C0080DF62 /* player_overlay_bg@2x.png */; };
182 960E4B2E14E586AE002AAB79 /* CacheFileAccess.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 960E4B2C14E586AE002AAB79 /* CacheFileAccess.xcdatamodeld */; };206 960E4B2E14E586AE002AAB79 /* CacheFileAccess.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 960E4B2C14E586AE002AAB79 /* CacheFileAccess.xcdatamodeld */; };
183 960E4B3514E58844002AAB79 /* U1CachedFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 960E4B3414E58844002AAB79 /* U1CachedFile.m */; };207 960E4B3514E58844002AAB79 /* U1CachedFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 960E4B3414E58844002AAB79 /* U1CachedFile.m */; };
184 960E4B3814E5884B002AAB79 /* _U1CachedFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 960E4B3714E5884B002AAB79 /* _U1CachedFile.m */; };208 960E4B3814E5884B002AAB79 /* _U1CachedFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 960E4B3714E5884B002AAB79 /* _U1CachedFile.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
185 9619626614E088F50038DACA /* U1SocketListener.m in Sources */ = {isa = PBXBuildFile; fileRef = 9619626514E088F50038DACA /* U1SocketListener.m */; };209 9619626614E088F50038DACA /* U1SocketListener.m in Sources */ = {isa = PBXBuildFile; fileRef = 9619626514E088F50038DACA /* U1SocketListener.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
186 9619626A14E08F4B0038DACA /* U1HTTPMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9619626914E08F4B0038DACA /* U1HTTPMessage.m */; };210 9619626A14E08F4B0038DACA /* U1HTTPMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9619626914E08F4B0038DACA /* U1HTTPMessage.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
187 9619626F14E08F630038DACA /* U1HTTPRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9619626C14E08F630038DACA /* U1HTTPRequest.m */; };211 9619626F14E08F630038DACA /* U1HTTPRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9619626C14E08F630038DACA /* U1HTTPRequest.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
188 9619627014E08F630038DACA /* U1HTTPResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 9619626E14E08F630038DACA /* U1HTTPResponse.m */; };212 9619627014E08F630038DACA /* U1HTTPResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 9619626E14E08F630038DACA /* U1HTTPResponse.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
189 9619627314E0A4930038DACA /* U1HTTPServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9619627214E0A4930038DACA /* U1HTTPServer.m */; };213 9619627314E0A4930038DACA /* U1HTTPServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9619627214E0A4930038DACA /* U1HTTPServer.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
190 96377AEE14E0726800517845 /* U1Descriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 96377AED14E0726800517845 /* U1Descriptor.m */; };214 96377AEE14E0726800517845 /* U1Descriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 96377AED14E0726800517845 /* U1Descriptor.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
191 96377AF314E0730B00517845 /* U1StreamReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 96377AF014E0730B00517845 /* U1StreamReader.m */; };215 96377AF314E0730B00517845 /* U1StreamReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 96377AF014E0730B00517845 /* U1StreamReader.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
192 96377AF414E0730B00517845 /* U1StreamWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 96377AF214E0730B00517845 /* U1StreamWriter.m */; };216 96377AF414E0730B00517845 /* U1StreamWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 96377AF214E0730B00517845 /* U1StreamWriter.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
193 963C884E14E1AB0C00EB13A2 /* U1LocalMusicServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 963C884D14E1AB0C00EB13A2 /* U1LocalMusicServer.m */; };217 963C884E14E1AB0C00EB13A2 /* U1LocalMusicServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 963C884D14E1AB0C00EB13A2 /* U1LocalMusicServer.m */; };
194 964FA3C313CA5C4F0018A65B /* NSMutableURLRequest+Parameters.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA39A13CA5C040018A65B /* NSMutableURLRequest+Parameters.m */; };218 964FA3EA13CA848D0018A65B /* UOHTTPFetchOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3E913CA848D0018A65B /* UOHTTPFetchOperation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
195 964FA3C413CA5C4F0018A65B /* NSString+URLEncoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA39C13CA5C040018A65B /* NSString+URLEncoding.m */; };
196 964FA3C513CA5C4F0018A65B /* NSURL+Base.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA39E13CA5C040018A65B /* NSURL+Base.m */; };
197 964FA3C613CA5C4F0018A65B /* Base64Transcoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3A013CA5C040018A65B /* Base64Transcoder.c */; };
198 964FA3C713CA5C4F0018A65B /* hmac.c in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3A213CA5C040018A65B /* hmac.c */; };
199 964FA3C813CA5C4F0018A65B /* sha1.c in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3A413CA5C040018A65B /* sha1.c */; };
200 964FA3C913CA5C4F0018A65B /* OAAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3A713CA5C040018A65B /* OAAttachment.m */; };
201 964FA3CA13CA5C4F0018A65B /* OACall.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3A913CA5C040018A65B /* OACall.m */; };
202 964FA3CB13CA5C4F0018A65B /* OAConsumer.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3AB13CA5C040018A65B /* OAConsumer.m */; };
203 964FA3CC13CA5C4F0018A65B /* OADataFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3AD13CA5C040018A65B /* OADataFetcher.m */; };
204 964FA3CD13CA5C500018A65B /* OAHMAC_SHA1SignatureProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3AF13CA5C040018A65B /* OAHMAC_SHA1SignatureProvider.m */; };
205 964FA3CE13CA5C500018A65B /* OAMutableURLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3B113CA5C040018A65B /* OAMutableURLRequest.m */; };
206 964FA3CF13CA5C500018A65B /* OAPlaintextSignatureProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3B313CA5C040018A65B /* OAPlaintextSignatureProvider.m */; };
207 964FA3D013CA5C500018A65B /* OAProblem.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3B513CA5C040018A65B /* OAProblem.m */; };
208 964FA3D113CA5C500018A65B /* OARequestParameter.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3B713CA5C040018A65B /* OARequestParameter.m */; };
209 964FA3D213CA5C500018A65B /* OAServiceTicket.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3B913CA5C040018A65B /* OAServiceTicket.m */; };
210 964FA3D313CA5C500018A65B /* OAToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3BD13CA5C040018A65B /* OAToken.m */; };
211 964FA3D413CA5C500018A65B /* OATokenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3BF13CA5C040018A65B /* OATokenManager.m */; };
212 964FA3DF13CA5D1D0018A65B /* UOJSONFetchOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3DE13CA5D1D0018A65B /* UOJSONFetchOperation.m */; };
213 964FA3EA13CA848D0018A65B /* UOHTTPFetchOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3E913CA848D0018A65B /* UOHTTPFetchOperation.m */; };
214 964FA3ED13CA8C490018A65B /* UOSSOMusicCredsFetchOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 964FA3EC13CA8C490018A65B /* UOSSOMusicCredsFetchOperation.m */; };
215 964FB0C213CB8B0C00D13DC3 /* header_bg.png in Resources */ = {isa = PBXBuildFile; fileRef = 964FB0C013CB8B0C00D13DC3 /* header_bg.png */; };
216 964FB0C613CB8B6A00D13DC3 /* header_logo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 964FB0C513CB8B6A00D13DC3 /* header_logo@2x.png */; };
217 9654C9BC13C7826900D0EEA0 /* UOSSOCredentialsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9654C9BA13C7826900D0EEA0 /* UOSSOCredentialsViewController.m */; };219 9654C9BC13C7826900D0EEA0 /* UOSSOCredentialsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9654C9BA13C7826900D0EEA0 /* UOSSOCredentialsViewController.m */; };
218 9654C9BD13C7826900D0EEA0 /* UOSSOCredentialsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9654C9BB13C7826900D0EEA0 /* UOSSOCredentialsViewController.xib */; };220 9654C9BD13C7826900D0EEA0 /* UOSSOCredentialsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9654C9BB13C7826900D0EEA0 /* UOSSOCredentialsViewController.xib */; };
219 9654C9C713C7AF9200D0EEA0 /* UOMusicLoginController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9654C9C613C7AF9200D0EEA0 /* UOMusicLoginController.m */; };221 9654C9C713C7AF9200D0EEA0 /* UOMusicLoginController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9654C9C613C7AF9200D0EEA0 /* UOMusicLoginController.m */; };
220 9674C2C513A7DC01004509E4 /* UORadialProgressControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 9674C2C413A7DC01004509E4 /* UORadialProgressControl.m */; };222 9674C2C513A7DC01004509E4 /* UORadialProgressControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 9674C2C413A7DC01004509E4 /* UORadialProgressControl.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
221 96E01B3714E1BDAF00A9F36C /* U1StreamPipe.m in Sources */ = {isa = PBXBuildFile; fileRef = 96E01B3614E1BDAF00A9F36C /* U1StreamPipe.m */; };223 96E01B3714E1BDAF00A9F36C /* U1StreamPipe.m in Sources */ = {isa = PBXBuildFile; fileRef = 96E01B3614E1BDAF00A9F36C /* U1StreamPipe.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
222 96FB790A13AA628700D8D4A4 /* UONetworkStatusCoordinator.m in Sources */ = {isa = PBXBuildFile; fileRef = 96FB790913AA628700D8D4A4 /* UONetworkStatusCoordinator.m */; };224 96FB790A13AA628700D8D4A4 /* UONetworkStatusCoordinator.m in Sources */ = {isa = PBXBuildFile; fileRef = 96FB790913AA628700D8D4A4 /* UONetworkStatusCoordinator.m */; };
223/* End PBXBuildFile section */225/* End PBXBuildFile section */
224226
227/* Begin PBXContainerItemProxy section */
228 528515931604F16D004A1F7C /* PBXContainerItemProxy */ = {
229 isa = PBXContainerItemProxy;
230 containerPortal = 5285158E1604F16B004A1F7C /* UbuntuOneAuthKit.xcodeproj */;
231 proxyType = 2;
232 remoteGlobalIDString = 528515631604F16B004A1F7C;
233 remoteInfo = UbuntuOneAuthKit;
234 };
235 528515951604F16D004A1F7C /* PBXContainerItemProxy */ = {
236 isa = PBXContainerItemProxy;
237 containerPortal = 5285158E1604F16B004A1F7C /* UbuntuOneAuthKit.xcodeproj */;
238 proxyType = 2;
239 remoteGlobalIDString = 528515741604F16B004A1F7C;
240 remoteInfo = UbuntuOneAuthKitTests;
241 };
242 528515971604F409004A1F7C /* PBXContainerItemProxy */ = {
243 isa = PBXContainerItemProxy;
244 containerPortal = 5285158E1604F16B004A1F7C /* UbuntuOneAuthKit.xcodeproj */;
245 proxyType = 1;
246 remoteGlobalIDString = 528515621604F16B004A1F7C;
247 remoteInfo = UbuntuOneAuthKit;
248 };
249/* End PBXContainerItemProxy section */
250
225/* Begin PBXFileReference section */251/* Begin PBXFileReference section */
226 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };252 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
227 1D6058910D05DD3D006BFB54 /* U1 Music.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "U1 Music.app"; sourceTree = BUILT_PRODUCTS_DIR; };253 1D6058910D05DD3D006BFB54 /* U1 Music.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "U1 Music.app"; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -246,15 +272,83 @@
246 523B3CF715B73BA0004394F4 /* download.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = download.png; sourceTree = "<group>"; };272 523B3CF715B73BA0004394F4 /* download.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = download.png; sourceTree = "<group>"; };
247 523B3CF815B73BA0004394F4 /* download@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "download@2x.png"; sourceTree = "<group>"; };273 523B3CF815B73BA0004394F4 /* download@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "download@2x.png"; sourceTree = "<group>"; };
248 5279764815F00B2600F8435F /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };274 5279764815F00B2600F8435F /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
249 5305C2051157F4F800BC78F0 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };275 5285158E1604F16B004A1F7C /* UbuntuOneAuthKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UbuntuOneAuthKit.xcodeproj; path = ../UbuntuOneAuthKit/UbuntuOneAuthKit.xcodeproj; sourceTree = "<group>"; };
276 52A042D61606D6C40000B4BC /* NSMutableURLRequest+Parameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMutableURLRequest+Parameters.h"; sourceTree = "<group>"; };
277 52A042D71606D6C40000B4BC /* NSMutableURLRequest+Parameters.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableURLRequest+Parameters.m"; sourceTree = "<group>"; };
278 52A042D81606D6C40000B4BC /* NSString+URLEncoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+URLEncoding.h"; sourceTree = "<group>"; };
279 52A042D91606D6C40000B4BC /* NSString+URLEncoding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+URLEncoding.m"; sourceTree = "<group>"; };
280 52A042DA1606D6C40000B4BC /* NSURL+Base.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSURL+Base.h"; sourceTree = "<group>"; };
281 52A042DB1606D6C40000B4BC /* NSURL+Base.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSURL+Base.m"; sourceTree = "<group>"; };
282 52A042DD1606D6C40000B4BC /* Base64Transcoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Base64Transcoder.c; sourceTree = "<group>"; };
283 52A042DE1606D6C40000B4BC /* Base64Transcoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Base64Transcoder.h; sourceTree = "<group>"; };
284 52A042DF1606D6C40000B4BC /* hmac.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = hmac.c; sourceTree = "<group>"; };
285 52A042E01606D6C40000B4BC /* hmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hmac.h; sourceTree = "<group>"; };
286 52A042E11606D6C40000B4BC /* sha1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sha1.c; sourceTree = "<group>"; };
287 52A042E21606D6C40000B4BC /* sha1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha1.h; sourceTree = "<group>"; };
288 52A042E31606D6C40000B4BC /* OAAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OAAttachment.h; sourceTree = "<group>"; };
289 52A042E41606D6C40000B4BC /* OAAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OAAttachment.m; sourceTree = "<group>"; };
290 52A042E51606D6C40000B4BC /* OACall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OACall.h; sourceTree = "<group>"; };
291 52A042E61606D6C40000B4BC /* OACall.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OACall.m; sourceTree = "<group>"; };
292 52A042E71606D6C40000B4BC /* OAConsumer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OAConsumer.h; sourceTree = "<group>"; };
293 52A042E81606D6C40000B4BC /* OAConsumer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OAConsumer.m; sourceTree = "<group>"; };
294 52A042E91606D6C40000B4BC /* OADataFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OADataFetcher.h; sourceTree = "<group>"; };
295 52A042EA1606D6C40000B4BC /* OADataFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OADataFetcher.m; sourceTree = "<group>"; };
296 52A042EB1606D6C40000B4BC /* OAHMAC_SHA1SignatureProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OAHMAC_SHA1SignatureProvider.h; sourceTree = "<group>"; };
297 52A042EC1606D6C40000B4BC /* OAHMAC_SHA1SignatureProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OAHMAC_SHA1SignatureProvider.m; sourceTree = "<group>"; };
298 52A042ED1606D6C40000B4BC /* OAMutableURLRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OAMutableURLRequest.h; sourceTree = "<group>"; };
299 52A042EE1606D6C40000B4BC /* OAMutableURLRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OAMutableURLRequest.m; sourceTree = "<group>"; };
300 52A042EF1606D6C40000B4BC /* OAPlaintextSignatureProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OAPlaintextSignatureProvider.h; sourceTree = "<group>"; };
301 52A042F01606D6C40000B4BC /* OAPlaintextSignatureProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OAPlaintextSignatureProvider.m; sourceTree = "<group>"; };
302 52A042F11606D6C40000B4BC /* OAProblem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OAProblem.h; sourceTree = "<group>"; };
303 52A042F21606D6C40000B4BC /* OAProblem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OAProblem.m; sourceTree = "<group>"; };
304 52A042F31606D6C40000B4BC /* OARequestParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OARequestParameter.h; sourceTree = "<group>"; };
305 52A042F41606D6C40000B4BC /* OARequestParameter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OARequestParameter.m; sourceTree = "<group>"; };
306 52A042F51606D6C40000B4BC /* OAServiceTicket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OAServiceTicket.h; sourceTree = "<group>"; };
307 52A042F61606D6C40000B4BC /* OAServiceTicket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OAServiceTicket.m; sourceTree = "<group>"; };
308 52A042F71606D6C40000B4BC /* OASignatureProviding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OASignatureProviding.h; sourceTree = "<group>"; };
309 52A042F81606D6C40000B4BC /* OATestServer.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; path = OATestServer.rb; sourceTree = "<group>"; };
310 52A042F91606D6C40000B4BC /* OAToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OAToken.h; sourceTree = "<group>"; };
311 52A042FA1606D6C40000B4BC /* OAToken.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OAToken.m; sourceTree = "<group>"; };
312 52A042FB1606D6C40000B4BC /* OATokenManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OATokenManager.h; sourceTree = "<group>"; };
313 52A042FC1606D6C40000B4BC /* OATokenManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OATokenManager.m; sourceTree = "<group>"; };
314 52A042FD1606D6C40000B4BC /* OAuthConsumer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OAuthConsumer.h; sourceTree = "<group>"; };
315 52A042FE1606D6C40000B4BC /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; };
316 52AC3D4B1604513E00B4785D /* about_logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = about_logo.png; sourceTree = "<group>"; };
317 52AC3D4C1604513E00B4785D /* albums.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = albums.png; sourceTree = "<group>"; };
318 52AC3D4D1604513E00B4785D /* albums@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "albums@2x.png"; sourceTree = "<group>"; };
319 52AC3D4E1604513E00B4785D /* artists.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = artists.png; sourceTree = "<group>"; };
320 52AC3D4F1604513E00B4785D /* artists@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "artists@2x.png"; sourceTree = "<group>"; };
321 52AC3D501604513E00B4785D /* cached.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cached.png; sourceTree = "<group>"; };
322 52AC3D511604513E00B4785D /* cached@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cached@2x.png"; sourceTree = "<group>"; };
323 52AC3D521604513E00B4785D /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
324 52AC3D531604513E00B4785D /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = "<group>"; };
325 52AC3D541604513E00B4785D /* header_bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = header_bg.png; sourceTree = "<group>"; };
326 52AC3D551604513E00B4785D /* header_logo@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "header_logo@2x.png"; sourceTree = "<group>"; };
327 52AC3D561604513E00B4785D /* music_29.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = music_29.png; sourceTree = "<group>"; };
328 52AC3D571604513E00B4785D /* music_57.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = music_57.png; sourceTree = "<group>"; };
329 52AC3D581604513E00B4785D /* music_57@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "music_57@2x.png"; sourceTree = "<group>"; };
330 52AC3D591604513E00B4785D /* music_512.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = music_512.png; sourceTree = "<group>"; };
331 52AC3D5A1604513E00B4785D /* partiallycached.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = partiallycached.png; sourceTree = "<group>"; };
332 52AC3D5B1604513E00B4785D /* partiallycached@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "partiallycached@2x.png"; sourceTree = "<group>"; };
333 52AC3D5C1604513E00B4785D /* playlists.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = playlists.png; sourceTree = "<group>"; };
334 52AC3D5D1604513E00B4785D /* playlists@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "playlists@2x.png"; sourceTree = "<group>"; };
335 52AC3D5E1604513E00B4785D /* progress-label-background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "progress-label-background.png"; sourceTree = "<group>"; };
336 52AC3D5F1604513E00B4785D /* settings.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = settings.png; sourceTree = "<group>"; };
337 52AC3D601604513E00B4785D /* settings@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "settings@2x.png"; sourceTree = "<group>"; };
338 52AC3D611604513E00B4785D /* songs.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = songs.png; sourceTree = "<group>"; };
339 52AC3D621604513E00B4785D /* songs@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "songs@2x.png"; sourceTree = "<group>"; };
340 52AC3D631604513E00B4785D /* uncached-disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "uncached-disabled.png"; sourceTree = "<group>"; };
341 52AC3D641604513E00B4785D /* uncached-disabled@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "uncached-disabled@2x.png"; sourceTree = "<group>"; };
342 52AC3D651604513E00B4785D /* uncached.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = uncached.png; sourceTree = "<group>"; };
343 52AC3D661604513E00B4785D /* uncached@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "uncached@2x.png"; sourceTree = "<group>"; };
344 52AC3D831604539000B4785D /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
250 536D620A1144495400DFCE56 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };345 536D620A1144495400DFCE56 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
251 537DE2D8113F008C00875852 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };346 537DE2D8113F008C00875852 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
252 53F0CD8111589F0A00A665CD /* progress-label-background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "progress-label-background.png"; sourceTree = "<group>"; };
253 53F675D7113B092C00822059 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; };347 53F675D7113B092C00822059 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; };
254 53F675DB113B093900822059 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };348 53F675DB113B093900822059 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
255 53F675E1113B095900822059 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };349 53F675E1113B095900822059 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
256 53F675E7113B096400822059 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };350 53F675E7113B096400822059 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
257 8D1107310486CEB800E47090 /* U1Music-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "U1Music-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };351 8D1107310486CEB800E47090 /* U1Music-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "U1Music-Info.plist"; path = "../U1Music-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
258 91018B0913573BBB0051EFDC /* UIImage+Resize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Resize.h"; sourceTree = "<group>"; };352 91018B0913573BBB0051EFDC /* UIImage+Resize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Resize.h"; sourceTree = "<group>"; };
259 91018B0A13573BBB0051EFDC /* UIImage+Resize.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Resize.m"; sourceTree = "<group>"; };353 91018B0A13573BBB0051EFDC /* UIImage+Resize.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Resize.m"; sourceTree = "<group>"; };
260 91018B0C13573D150051EFDC /* UIImage+Alpha.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Alpha.h"; sourceTree = "<group>"; };354 91018B0C13573D150051EFDC /* UIImage+Alpha.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Alpha.h"; sourceTree = "<group>"; };
@@ -277,16 +371,6 @@
277 9110DC43134EAC730046B8E4 /* AlbumListParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AlbumListParser.m; sourceTree = "<group>"; };371 9110DC43134EAC730046B8E4 /* AlbumListParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AlbumListParser.m; sourceTree = "<group>"; };
278 9110DC551354A7460046B8E4 /* AlbumArtistUITableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = AlbumArtistUITableViewCell.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };372 9110DC551354A7460046B8E4 /* AlbumArtistUITableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = AlbumArtistUITableViewCell.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
279 9110DC561354A7470046B8E4 /* AlbumArtistUITableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = AlbumArtistUITableViewCell.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };373 9110DC561354A7470046B8E4 /* AlbumArtistUITableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = AlbumArtistUITableViewCell.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
280 9112B01E1383FF27003C1D93 /* albums.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = albums.png; sourceTree = "<group>"; };
281 9112B01F1383FF27003C1D93 /* artists.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = artists.png; sourceTree = "<group>"; };
282 9112B0201383FF27003C1D93 /* playlists.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = playlists.png; sourceTree = "<group>"; };
283 9112B0221383FF27003C1D93 /* settings.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = settings.png; sourceTree = "<group>"; };
284 9112B0231383FF27003C1D93 /* songs.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = songs.png; sourceTree = "<group>"; };
285 9112B02A1383FF37003C1D93 /* albums@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "albums@2x.png"; sourceTree = "<group>"; };
286 9112B02B1383FF37003C1D93 /* artists@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "artists@2x.png"; sourceTree = "<group>"; };
287 9112B02C1383FF37003C1D93 /* playlists@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "playlists@2x.png"; sourceTree = "<group>"; };
288 9112B02D1383FF37003C1D93 /* settings@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "settings@2x.png"; sourceTree = "<group>"; };
289 9112B02E1383FF37003C1D93 /* songs@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "songs@2x.png"; sourceTree = "<group>"; };
290 9123D19F13257ADF00B40210 /* PlaylistListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlaylistListViewController.h; sourceTree = "<group>"; };374 9123D19F13257ADF00B40210 /* PlaylistListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlaylistListViewController.h; sourceTree = "<group>"; };
291 9123D1A013257ADF00B40210 /* PlaylistListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = PlaylistListViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };375 9123D1A013257ADF00B40210 /* PlaylistListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = PlaylistListViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
292 9123D1B913280B3400B40210 /* PlaylistViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlaylistViewController.h; path = view_controllers/PlaylistViewController.h; sourceTree = "<group>"; };376 9123D1B913280B3400B40210 /* PlaylistViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlaylistViewController.h; path = view_controllers/PlaylistViewController.h; sourceTree = "<group>"; };
@@ -307,12 +391,6 @@
307 9132827A144E07EA00395F40 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };391 9132827A144E07EA00395F40 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
308 9132827B144E07EA00395F40 /* release_notes.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = release_notes.txt; sourceTree = "<group>"; };392 9132827B144E07EA00395F40 /* release_notes.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = release_notes.txt; sourceTree = "<group>"; };
309 9132827C144E07EA00395F40 /* TestFlight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestFlight.h; sourceTree = "<group>"; };393 9132827C144E07EA00395F40 /* TestFlight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestFlight.h; sourceTree = "<group>"; };
310 91406E8E13849F2400A7DA67 /* cached.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cached.png; sourceTree = "<group>"; };
311 91406E8F13849F2400A7DA67 /* cached@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cached@2x.png"; sourceTree = "<group>"; };
312 91406E9013849F2400A7DA67 /* partiallycached.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = partiallycached.png; sourceTree = "<group>"; };
313 91406E9113849F2400A7DA67 /* partiallycached@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "partiallycached@2x.png"; sourceTree = "<group>"; };
314 91406E9213849F2400A7DA67 /* uncached.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = uncached.png; sourceTree = "<group>"; };
315 91406E9313849F2400A7DA67 /* uncached@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "uncached@2x.png"; sourceTree = "<group>"; };
316 91406EE8138AEEE000A7DA67 /* NSString+Extras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Extras.h"; sourceTree = "<group>"; };394 91406EE8138AEEE000A7DA67 /* NSString+Extras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Extras.h"; sourceTree = "<group>"; };
317 91406EE9138AEEE000A7DA67 /* NSString+Extras.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Extras.m"; sourceTree = "<group>"; };395 91406EE9138AEEE000A7DA67 /* NSString+Extras.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Extras.m"; sourceTree = "<group>"; };
318 9149D9C9159BEC3D009AE771 /* default-album-art-120.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "default-album-art-120.png"; sourceTree = "<group>"; };396 9149D9C9159BEC3D009AE771 /* default-album-art-120.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "default-album-art-120.png"; sourceTree = "<group>"; };
@@ -354,13 +432,10 @@
354 91C493CF14E4593C00BC1815 /* U1ByteSizeValueTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = U1ByteSizeValueTransformer.m; sourceTree = "<group>"; };432 91C493CF14E4593C00BC1815 /* U1ByteSizeValueTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = U1ByteSizeValueTransformer.m; sourceTree = "<group>"; };
355 91C8CCAD14B7883600A0E311 /* ArtistUITableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArtistUITableViewCell.h; sourceTree = "<group>"; };433 91C8CCAD14B7883600A0E311 /* ArtistUITableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArtistUITableViewCell.h; sourceTree = "<group>"; };
356 91C8CCAE14B7883600A0E311 /* ArtistUITableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ArtistUITableViewCell.m; sourceTree = "<group>"; };434 91C8CCAE14B7883600A0E311 /* ArtistUITableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ArtistUITableViewCell.m; sourceTree = "<group>"; };
357 91D18DA913B228D3001BEB42 /* uncached-disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "uncached-disabled.png"; sourceTree = "<group>"; };
358 91D18DAA13B228D3001BEB42 /* uncached-disabled@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "uncached-disabled@2x.png"; sourceTree = "<group>"; };
359 91D3A16D14B93B2A003D4FC0 /* MOC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MOC.h; path = Models/MOC.h; sourceTree = SOURCE_ROOT; };435 91D3A16D14B93B2A003D4FC0 /* MOC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MOC.h; path = Models/MOC.h; sourceTree = SOURCE_ROOT; };
360 91D3A16E14B93B2A003D4FC0 /* MOC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MOC.m; path = Models/MOC.m; sourceTree = SOURCE_ROOT; };436 91D3A16E14B93B2A003D4FC0 /* MOC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MOC.m; path = Models/MOC.m; sourceTree = SOURCE_ROOT; };
361 91D3A17014BE12FE003D4FC0 /* PlaylistUITableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlaylistUITableViewCell.h; sourceTree = "<group>"; };437 91D3A17014BE12FE003D4FC0 /* PlaylistUITableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlaylistUITableViewCell.h; sourceTree = "<group>"; };
362 91D3A17114BE12FE003D4FC0 /* PlaylistUITableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PlaylistUITableViewCell.m; sourceTree = "<group>"; };438 91D3A17114BE12FE003D4FC0 /* PlaylistUITableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PlaylistUITableViewCell.m; sourceTree = "<group>"; };
363 91DB6B9E13E9C7190029BC77 /* about_logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = about_logo.png; sourceTree = "<group>"; };
364 91E3E46214D33A2D006ED32F /* U1SerializedDownloadOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = U1SerializedDownloadOperation.h; sourceTree = "<group>"; };439 91E3E46214D33A2D006ED32F /* U1SerializedDownloadOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = U1SerializedDownloadOperation.h; sourceTree = "<group>"; };
365 91E3E46314D33A2D006ED32F /* U1SerializedDownloadOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = U1SerializedDownloadOperation.m; sourceTree = "<group>"; };440 91E3E46314D33A2D006ED32F /* U1SerializedDownloadOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = U1SerializedDownloadOperation.m; sourceTree = "<group>"; };
366 91E3E46614D33A6F006ED32F /* U1ChunkDownloadOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = U1ChunkDownloadOperation.h; sourceTree = "<group>"; };441 91E3E46614D33A6F006ED32F /* U1ChunkDownloadOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = U1ChunkDownloadOperation.h; sourceTree = "<group>"; };
@@ -372,7 +447,6 @@
372 91F2652F14EACFCC0027232B /* U1MigrationViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = U1MigrationViewController.xib; sourceTree = "<group>"; };447 91F2652F14EACFCC0027232B /* U1MigrationViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = U1MigrationViewController.xib; sourceTree = "<group>"; };
373 9316628612264A74003B0EB7 /* NSDate+Extras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+Extras.h"; sourceTree = "<group>"; };448 9316628612264A74003B0EB7 /* NSDate+Extras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+Extras.h"; sourceTree = "<group>"; };
374 9316628712264A74003B0EB7 /* NSDate+Extras.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+Extras.m"; sourceTree = "<group>"; };449 9316628712264A74003B0EB7 /* NSDate+Extras.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+Extras.m"; sourceTree = "<group>"; };
375 932E7A6D1254747E00E7C8FF /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = "<group>"; };
376 932E7A9E1255265A00E7C8FF /* about.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = about.css; sourceTree = "<group>"; };450 932E7A9E1255265A00E7C8FF /* about.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = about.css; sourceTree = "<group>"; };
377 932E7A9F1255265A00E7C8FF /* about.html */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = text.html; path = about.html; sourceTree = "<group>"; tabWidth = 4; usesTabs = 0; };451 932E7A9F1255265A00E7C8FF /* about.html */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = text.html; path = about.html; sourceTree = "<group>"; tabWidth = 4; usesTabs = 0; };
378 932E7B0712552CB400E7C8FF /* PullRefreshTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PullRefreshTableViewController.h; sourceTree = "<group>"; };452 932E7B0712552CB400E7C8FF /* PullRefreshTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PullRefreshTableViewController.h; sourceTree = "<group>"; };
@@ -380,7 +454,7 @@
380 932E7B0A12552CD500E7C8FF /* arrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = arrow.png; sourceTree = "<group>"; };454 932E7B0A12552CD500E7C8FF /* arrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = arrow.png; sourceTree = "<group>"; };
381 9354D0A91248267B00733067 /* NSDictionary+Extras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+Extras.h"; sourceTree = "<group>"; };455 9354D0A91248267B00733067 /* NSDictionary+Extras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+Extras.h"; sourceTree = "<group>"; };
382 9354D0AA1248267B00733067 /* NSDictionary+Extras.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+Extras.m"; sourceTree = "<group>"; };456 9354D0AA1248267B00733067 /* NSDictionary+Extras.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+Extras.m"; sourceTree = "<group>"; };
383 935FCC42123766E600B5DF9B /* Entitlements.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Entitlements.plist; sourceTree = "<group>"; };457 935FCC42123766E600B5DF9B /* Entitlements.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Entitlements.plist; path = ../Entitlements.plist; sourceTree = "<group>"; };
384 936F20661227364200070F43 /* Playlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Playlist.h; sourceTree = "<group>"; };458 936F20661227364200070F43 /* Playlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Playlist.h; sourceTree = "<group>"; };
385 936F20671227364200070F43 /* Playlist.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Playlist.m; sourceTree = "<group>"; };459 936F20671227364200070F43 /* Playlist.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Playlist.m; sourceTree = "<group>"; };
386 936F208E12273D9000070F43 /* Song.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Song.h; sourceTree = "<group>"; };460 936F208E12273D9000070F43 /* Song.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Song.h; sourceTree = "<group>"; };
@@ -424,10 +498,6 @@
424 93D6B2BC124FD72D007880B0 /* loopback-one-highlight@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "loopback-one-highlight@2x.png"; sourceTree = "<group>"; };498 93D6B2BC124FD72D007880B0 /* loopback-one-highlight@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "loopback-one-highlight@2x.png"; sourceTree = "<group>"; };
425 93D6B2D1124FDA56007880B0 /* NSMutableArray+Extras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMutableArray+Extras.h"; sourceTree = "<group>"; };499 93D6B2D1124FDA56007880B0 /* NSMutableArray+Extras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMutableArray+Extras.h"; sourceTree = "<group>"; };
426 93D6B2D2124FDA56007880B0 /* NSMutableArray+Extras.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableArray+Extras.m"; sourceTree = "<group>"; };500 93D6B2D2124FDA56007880B0 /* NSMutableArray+Extras.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableArray+Extras.m"; sourceTree = "<group>"; };
427 93D6B50A1252CA71007880B0 /* music_29.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = music_29.png; sourceTree = "<group>"; };
428 93D6B50B1252CA71007880B0 /* music_57.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = music_57.png; sourceTree = "<group>"; };
429 93D6B50D1252CA71007880B0 /* music_512.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = music_512.png; sourceTree = "<group>"; };
430 93D6B5141252CB34007880B0 /* music_57@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "music_57@2x.png"; sourceTree = "<group>"; };
431 93D6B5491252CE57007880B0 /* URLQueryStringParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URLQueryStringParser.h; sourceTree = "<group>"; };501 93D6B5491252CE57007880B0 /* URLQueryStringParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URLQueryStringParser.h; sourceTree = "<group>"; };
432 93D6B54A1252CE57007880B0 /* URLQueryStringParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = URLQueryStringParser.m; sourceTree = "<group>"; };502 93D6B54A1252CE57007880B0 /* URLQueryStringParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = URLQueryStringParser.m; sourceTree = "<group>"; };
433 93DFFE3E135D70B60061F29F /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };503 93DFFE3E135D70B60061F29F /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
@@ -506,54 +576,8 @@
506 96377AF214E0730B00517845 /* U1StreamWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = U1StreamWriter.m; sourceTree = "<group>"; };576 96377AF214E0730B00517845 /* U1StreamWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = U1StreamWriter.m; sourceTree = "<group>"; };
507 963C884C14E1AB0C00EB13A2 /* U1LocalMusicServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = U1LocalMusicServer.h; sourceTree = "<group>"; };577 963C884C14E1AB0C00EB13A2 /* U1LocalMusicServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = U1LocalMusicServer.h; sourceTree = "<group>"; };
508 963C884D14E1AB0C00EB13A2 /* U1LocalMusicServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = U1LocalMusicServer.m; sourceTree = "<group>"; };578 963C884D14E1AB0C00EB13A2 /* U1LocalMusicServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = U1LocalMusicServer.m; sourceTree = "<group>"; };
509 964FA39913CA5C040018A65B /* NSMutableURLRequest+Parameters.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSMutableURLRequest+Parameters.h"; sourceTree = "<group>"; };
510 964FA39A13CA5C040018A65B /* NSMutableURLRequest+Parameters.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSMutableURLRequest+Parameters.m"; sourceTree = "<group>"; };
511 964FA39B13CA5C040018A65B /* NSString+URLEncoding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSString+URLEncoding.h"; sourceTree = "<group>"; };
512 964FA39C13CA5C040018A65B /* NSString+URLEncoding.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSString+URLEncoding.m"; sourceTree = "<group>"; };
513 964FA39D13CA5C040018A65B /* NSURL+Base.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSURL+Base.h"; sourceTree = "<group>"; };
514 964FA39E13CA5C040018A65B /* NSURL+Base.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSURL+Base.m"; sourceTree = "<group>"; };
515 964FA3A013CA5C040018A65B /* Base64Transcoder.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Base64Transcoder.c; sourceTree = "<group>"; };
516 964FA3A113CA5C040018A65B /* Base64Transcoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64Transcoder.h; sourceTree = "<group>"; };
517 964FA3A213CA5C040018A65B /* hmac.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = hmac.c; sourceTree = "<group>"; };
518 964FA3A313CA5C040018A65B /* hmac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hmac.h; sourceTree = "<group>"; };
519 964FA3A413CA5C040018A65B /* sha1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = sha1.c; sourceTree = "<group>"; };
520 964FA3A513CA5C040018A65B /* sha1.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sha1.h; sourceTree = "<group>"; };
521 964FA3A613CA5C040018A65B /* OAAttachment.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OAAttachment.h; sourceTree = "<group>"; };
522 964FA3A713CA5C040018A65B /* OAAttachment.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OAAttachment.m; sourceTree = "<group>"; };
523 964FA3A813CA5C040018A65B /* OACall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OACall.h; sourceTree = "<group>"; };
524 964FA3A913CA5C040018A65B /* OACall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OACall.m; sourceTree = "<group>"; };
525 964FA3AA13CA5C040018A65B /* OAConsumer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OAConsumer.h; sourceTree = "<group>"; };
526 964FA3AB13CA5C040018A65B /* OAConsumer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OAConsumer.m; sourceTree = "<group>"; };
527 964FA3AC13CA5C040018A65B /* OADataFetcher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OADataFetcher.h; sourceTree = "<group>"; };
528 964FA3AD13CA5C040018A65B /* OADataFetcher.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OADataFetcher.m; sourceTree = "<group>"; };
529 964FA3AE13CA5C040018A65B /* OAHMAC_SHA1SignatureProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OAHMAC_SHA1SignatureProvider.h; sourceTree = "<group>"; };
530 964FA3AF13CA5C040018A65B /* OAHMAC_SHA1SignatureProvider.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OAHMAC_SHA1SignatureProvider.m; sourceTree = "<group>"; };
531 964FA3B013CA5C040018A65B /* OAMutableURLRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OAMutableURLRequest.h; sourceTree = "<group>"; };
532 964FA3B113CA5C040018A65B /* OAMutableURLRequest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OAMutableURLRequest.m; sourceTree = "<group>"; };
533 964FA3B213CA5C040018A65B /* OAPlaintextSignatureProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OAPlaintextSignatureProvider.h; sourceTree = "<group>"; };
534 964FA3B313CA5C040018A65B /* OAPlaintextSignatureProvider.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OAPlaintextSignatureProvider.m; sourceTree = "<group>"; };
535 964FA3B413CA5C040018A65B /* OAProblem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OAProblem.h; sourceTree = "<group>"; };
536 964FA3B513CA5C040018A65B /* OAProblem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OAProblem.m; sourceTree = "<group>"; };
537 964FA3B613CA5C040018A65B /* OARequestParameter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OARequestParameter.h; sourceTree = "<group>"; };
538 964FA3B713CA5C040018A65B /* OARequestParameter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OARequestParameter.m; sourceTree = "<group>"; };
539 964FA3B813CA5C040018A65B /* OAServiceTicket.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OAServiceTicket.h; sourceTree = "<group>"; };
540 964FA3B913CA5C040018A65B /* OAServiceTicket.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OAServiceTicket.m; sourceTree = "<group>"; };
541 964FA3BA13CA5C040018A65B /* OASignatureProviding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OASignatureProviding.h; sourceTree = "<group>"; };
542 964FA3BB13CA5C040018A65B /* OATestServer.rb */ = {isa = PBXFileReference; lastKnownFileType = text.script.ruby; path = OATestServer.rb; sourceTree = "<group>"; };
543 964FA3BC13CA5C040018A65B /* OAToken.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OAToken.h; sourceTree = "<group>"; };
544 964FA3BD13CA5C040018A65B /* OAToken.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OAToken.m; sourceTree = "<group>"; };
545 964FA3BE13CA5C040018A65B /* OATokenManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OATokenManager.h; sourceTree = "<group>"; };
546 964FA3BF13CA5C040018A65B /* OATokenManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OATokenManager.m; sourceTree = "<group>"; };
547 964FA3C013CA5C040018A65B /* OAuthConsumer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OAuthConsumer.h; sourceTree = "<group>"; };
548 964FA3C113CA5C040018A65B /* README */ = {isa = PBXFileReference; lastKnownFileType = text; path = README; sourceTree = "<group>"; };
549 964FA3DD13CA5D1D0018A65B /* UOJSONFetchOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UOJSONFetchOperation.h; sourceTree = "<group>"; };
550 964FA3DE13CA5D1D0018A65B /* UOJSONFetchOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UOJSONFetchOperation.m; sourceTree = "<group>"; };
551 964FA3E813CA848D0018A65B /* UOHTTPFetchOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UOHTTPFetchOperation.h; sourceTree = "<group>"; };579 964FA3E813CA848D0018A65B /* UOHTTPFetchOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UOHTTPFetchOperation.h; sourceTree = "<group>"; };
552 964FA3E913CA848D0018A65B /* UOHTTPFetchOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UOHTTPFetchOperation.m; sourceTree = "<group>"; };580 964FA3E913CA848D0018A65B /* UOHTTPFetchOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UOHTTPFetchOperation.m; sourceTree = "<group>"; };
553 964FA3EB13CA8C490018A65B /* UOSSOMusicCredsFetchOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UOSSOMusicCredsFetchOperation.h; path = utilities/UOSSOMusicCredsFetchOperation.h; sourceTree = SOURCE_ROOT; };
554 964FA3EC13CA8C490018A65B /* UOSSOMusicCredsFetchOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UOSSOMusicCredsFetchOperation.m; path = utilities/UOSSOMusicCredsFetchOperation.m; sourceTree = SOURCE_ROOT; };
555 964FB0C013CB8B0C00D13DC3 /* header_bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = header_bg.png; sourceTree = "<group>"; };
556 964FB0C513CB8B6A00D13DC3 /* header_logo@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "header_logo@2x.png"; sourceTree = "<group>"; };
557 9654C9B913C7826900D0EEA0 /* UOSSOCredentialsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UOSSOCredentialsViewController.h; sourceTree = "<group>"; };581 9654C9B913C7826900D0EEA0 /* UOSSOCredentialsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UOSSOCredentialsViewController.h; sourceTree = "<group>"; };
558 9654C9BA13C7826900D0EEA0 /* UOSSOCredentialsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UOSSOCredentialsViewController.m; sourceTree = "<group>"; };582 9654C9BA13C7826900D0EEA0 /* UOSSOCredentialsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UOSSOCredentialsViewController.m; sourceTree = "<group>"; };
559 9654C9BB13C7826900D0EEA0 /* UOSSOCredentialsViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UOSSOCredentialsViewController.xib; sourceTree = "<group>"; };583 9654C9BB13C7826900D0EEA0 /* UOSSOCredentialsViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UOSSOCredentialsViewController.xib; sourceTree = "<group>"; };
@@ -572,6 +596,7 @@
572 isa = PBXFrameworksBuildPhase;596 isa = PBXFrameworksBuildPhase;
573 buildActionMask = 2147483647;597 buildActionMask = 2147483647;
574 files = (598 files = (
599 528515991604F410004A1F7C /* UbuntuOneAuthKit.a in Frameworks */,
575 5279764915F00B2600F8435F /* libz.dylib in Frameworks */,600 5279764915F00B2600F8435F /* libz.dylib in Frameworks */,
576 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,601 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
577 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,602 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
@@ -602,8 +627,8 @@
602 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {627 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
603 isa = PBXGroup;628 isa = PBXGroup;
604 children = (629 children = (
605 5279764815F00B2600F8435F /* libz.dylib */,630 5285158E1604F16B004A1F7C /* UbuntuOneAuthKit.xcodeproj */,
606 93F3346C1247FB78006C6707 /* Main */,631 93F3346C1247FB78006C6707 /* Music */,
607 91018B261359233E0051EFDC /* Base View Controllers */,632 91018B261359233E0051EFDC /* Base View Controllers */,
608 93F3348C1247FCDC006C6707 /* Root View Controllers */,633 93F3348C1247FCDC006C6707 /* Root View Controllers */,
609 91018B27135923960051EFDC /* Sub View Controllers */,634 91018B27135923960051EFDC /* Sub View Controllers */,
@@ -614,8 +639,6 @@
614 936F1F2E12271B6500070F43 /* Controls */,639 936F1F2E12271B6500070F43 /* Controls */,
615 9316628512264A74003B0EB7 /* Categories */,640 9316628512264A74003B0EB7 /* Categories */,
616 29B97317FDCFA39411CA2CEA /* Resources */,641 29B97317FDCFA39411CA2CEA /* Resources */,
617 932E7A9D1255265A00E7C8FF /* About Content */,
618 93FA42A6124DC1350080DF62 /* Images */,
619 964FA39013CA5BE60018A65B /* Dependencies */,642 964FA39013CA5BE60018A65B /* Dependencies */,
620 29B97323FDCFA39411CA2CEA /* Frameworks */,643 29B97323FDCFA39411CA2CEA /* Frameworks */,
621 19C28FACFE9D520D11CA2CBB /* Products */,644 19C28FACFE9D520D11CA2CBB /* Products */,
@@ -626,37 +649,8 @@
626 29B97317FDCFA39411CA2CEA /* Resources */ = {649 29B97317FDCFA39411CA2CEA /* Resources */ = {
627 isa = PBXGroup;650 isa = PBXGroup;
628 children = (651 children = (
629 91DB6B9E13E9C7190029BC77 /* about_logo.png */,652 932E7A9D1255265A00E7C8FF /* About Content */,
630 964FB0C513CB8B6A00D13DC3 /* header_logo@2x.png */,653 93FA42A6124DC1350080DF62 /* Images */,
631 964FB0C013CB8B0C00D13DC3 /* header_bg.png */,
632 9112B01F1383FF27003C1D93 /* artists.png */,
633 9112B02B1383FF37003C1D93 /* artists@2x.png */,
634 9112B01E1383FF27003C1D93 /* albums.png */,
635 9112B02A1383FF37003C1D93 /* albums@2x.png */,
636 9112B0231383FF27003C1D93 /* songs.png */,
637 9112B02E1383FF37003C1D93 /* songs@2x.png */,
638 9112B0201383FF27003C1D93 /* playlists.png */,
639 9112B02C1383FF37003C1D93 /* playlists@2x.png */,
640 9112B0221383FF27003C1D93 /* settings.png */,
641 9112B02D1383FF37003C1D93 /* settings@2x.png */,
642 91406E8E13849F2400A7DA67 /* cached.png */,
643 91406E8F13849F2400A7DA67 /* cached@2x.png */,
644 91406E9013849F2400A7DA67 /* partiallycached.png */,
645 91406E9113849F2400A7DA67 /* partiallycached@2x.png */,
646 91406E9213849F2400A7DA67 /* uncached.png */,
647 91406E9313849F2400A7DA67 /* uncached@2x.png */,
648 91D18DA913B228D3001BEB42 /* uncached-disabled.png */,
649 91D18DAA13B228D3001BEB42 /* uncached-disabled@2x.png */,
650 5305C2051157F4F800BC78F0 /* Default.png */,
651 932E7A6D1254747E00E7C8FF /* Default@2x.png */,
652 93D6B50B1252CA71007880B0 /* music_57.png */,
653 93D6B5141252CB34007880B0 /* music_57@2x.png */,
654 93D6B50A1252CA71007880B0 /* music_29.png */,
655 93D6B50D1252CA71007880B0 /* music_512.png */,
656 53F0CD8111589F0A00A665CD /* progress-label-background.png */,
657 8D1107310486CEB800E47090 /* U1Music-Info.plist */,
658 935FCC42123766E600B5DF9B /* Entitlements.plist */,
659 93DFFE4C135D71760061F29F /* music.xcdatamodeld */,
660 );654 );
661 name = Resources;655 name = Resources;
662 sourceTree = "<group>";656 sourceTree = "<group>";
@@ -679,6 +673,89 @@
679 name = Frameworks;673 name = Frameworks;
680 sourceTree = "<group>";674 sourceTree = "<group>";
681 };675 };
676 528515571604EED8004A1F7C /* Supporting Files */ = {
677 isa = PBXGroup;
678 children = (
679 8D1107310486CEB800E47090 /* U1Music-Info.plist */,
680 935FCC42123766E600B5DF9B /* Entitlements.plist */,
681 93F334701247FB78006C6707 /* main.m */,
682 );
683 name = "Supporting Files";
684 sourceTree = "<group>";
685 };
686 5285158F1604F16B004A1F7C /* Products */ = {
687 isa = PBXGroup;
688 children = (
689 528515941604F16D004A1F7C /* UbuntuOneAuthKit.a */,
690 528515961604F16D004A1F7C /* UbuntuOneAuthKitTests.octest */,
691 );
692 name = Products;
693 sourceTree = "<group>";
694 };
695 52A042D41606D6C40000B4BC /* oauthconsumer */ = {
696 isa = PBXGroup;
697 children = (
698 52A042D51606D6C40000B4BC /* Categories */,
699 52A042DC1606D6C40000B4BC /* Crypto */,
700 52A042E31606D6C40000B4BC /* OAAttachment.h */,
701 52A042E41606D6C40000B4BC /* OAAttachment.m */,
702 52A042E51606D6C40000B4BC /* OACall.h */,
703 52A042E61606D6C40000B4BC /* OACall.m */,
704 52A042E71606D6C40000B4BC /* OAConsumer.h */,
705 52A042E81606D6C40000B4BC /* OAConsumer.m */,
706 52A042E91606D6C40000B4BC /* OADataFetcher.h */,
707 52A042EA1606D6C40000B4BC /* OADataFetcher.m */,
708 52A042EB1606D6C40000B4BC /* OAHMAC_SHA1SignatureProvider.h */,
709 52A042EC1606D6C40000B4BC /* OAHMAC_SHA1SignatureProvider.m */,
710 52A042ED1606D6C40000B4BC /* OAMutableURLRequest.h */,
711 52A042EE1606D6C40000B4BC /* OAMutableURLRequest.m */,
712 52A042EF1606D6C40000B4BC /* OAPlaintextSignatureProvider.h */,
713 52A042F01606D6C40000B4BC /* OAPlaintextSignatureProvider.m */,
714 52A042F11606D6C40000B4BC /* OAProblem.h */,
715 52A042F21606D6C40000B4BC /* OAProblem.m */,
716 52A042F31606D6C40000B4BC /* OARequestParameter.h */,
717 52A042F41606D6C40000B4BC /* OARequestParameter.m */,
718 52A042F51606D6C40000B4BC /* OAServiceTicket.h */,
719 52A042F61606D6C40000B4BC /* OAServiceTicket.m */,
720 52A042F71606D6C40000B4BC /* OASignatureProviding.h */,
721 52A042F81606D6C40000B4BC /* OATestServer.rb */,
722 52A042F91606D6C40000B4BC /* OAToken.h */,
723 52A042FA1606D6C40000B4BC /* OAToken.m */,
724 52A042FB1606D6C40000B4BC /* OATokenManager.h */,
725 52A042FC1606D6C40000B4BC /* OATokenManager.m */,
726 52A042FD1606D6C40000B4BC /* OAuthConsumer.h */,
727 52A042FE1606D6C40000B4BC /* README */,
728 );
729 name = oauthconsumer;
730 path = Dependencies/oauthconsumer;
731 sourceTree = "<group>";
732 };
733 52A042D51606D6C40000B4BC /* Categories */ = {
734 isa = PBXGroup;
735 children = (
736 52A042D61606D6C40000B4BC /* NSMutableURLRequest+Parameters.h */,
737 52A042D71606D6C40000B4BC /* NSMutableURLRequest+Parameters.m */,
738 52A042D81606D6C40000B4BC /* NSString+URLEncoding.h */,
739 52A042D91606D6C40000B4BC /* NSString+URLEncoding.m */,
740 52A042DA1606D6C40000B4BC /* NSURL+Base.h */,
741 52A042DB1606D6C40000B4BC /* NSURL+Base.m */,
742 );
743 path = Categories;
744 sourceTree = "<group>";
745 };
746 52A042DC1606D6C40000B4BC /* Crypto */ = {
747 isa = PBXGroup;
748 children = (
749 52A042DD1606D6C40000B4BC /* Base64Transcoder.c */,
750 52A042DE1606D6C40000B4BC /* Base64Transcoder.h */,
751 52A042DF1606D6C40000B4BC /* hmac.c */,
752 52A042E01606D6C40000B4BC /* hmac.h */,
753 52A042E11606D6C40000B4BC /* sha1.c */,
754 52A042E21606D6C40000B4BC /* sha1.h */,
755 );
756 path = Crypto;
757 sourceTree = "<group>";
758 };
682 91018B261359233E0051EFDC /* Base View Controllers */ = {759 91018B261359233E0051EFDC /* Base View Controllers */ = {
683 isa = PBXGroup;760 isa = PBXGroup;
684 children = (761 children = (
@@ -896,8 +973,6 @@
896 937FAA10137CFC1B00507E51 /* AlbumArtDownloadOperation.m */,973 937FAA10137CFC1B00507E51 /* AlbumArtDownloadOperation.m */,
897 937FAA19137CFCA600507E51 /* AbstractNetworkOperation.h */,974 937FAA19137CFCA600507E51 /* AbstractNetworkOperation.h */,
898 937FAA1A137CFCA600507E51 /* AbstractNetworkOperation.m */,975 937FAA1A137CFCA600507E51 /* AbstractNetworkOperation.m */,
899 964FA3DD13CA5D1D0018A65B /* UOJSONFetchOperation.h */,
900 964FA3DE13CA5D1D0018A65B /* UOJSONFetchOperation.m */,
901 964FA3E813CA848D0018A65B /* UOHTTPFetchOperation.h */,976 964FA3E813CA848D0018A65B /* UOHTTPFetchOperation.h */,
902 964FA3E913CA848D0018A65B /* UOHTTPFetchOperation.m */,977 964FA3E913CA848D0018A65B /* UOHTTPFetchOperation.m */,
903 );978 );
@@ -951,16 +1026,16 @@
951 path = xibs;1026 path = xibs;
952 sourceTree = "<group>";1027 sourceTree = "<group>";
953 };1028 };
954 93F3346C1247FB78006C6707 /* Main */ = {1029 93F3346C1247FB78006C6707 /* Music */ = {
955 isa = PBXGroup;1030 isa = PBXGroup;
956 children = (1031 children = (
957 93BC520A124C187700B7587C /* SynthesizeSingleton.h */,
958 93F334841247FC15006C6707 /* U1Music_Prefix.pch */,1032 93F334841247FC15006C6707 /* U1Music_Prefix.pch */,
959 93F3346E1247FB78006C6707 /* U1MusicAppDelegate.h */,1033 93F3346E1247FB78006C6707 /* U1MusicAppDelegate.h */,
960 93F3346F1247FB78006C6707 /* U1MusicAppDelegate.m */,1034 93F3346F1247FB78006C6707 /* U1MusicAppDelegate.m */,
961 93F334701247FB78006C6707 /* main.m */,1035 93DFFE4C135D71760061F29F /* music.xcdatamodeld */,
1036 528515571604EED8004A1F7C /* Supporting Files */,
962 );1037 );
963 name = Main;1038 name = Music;
964 path = "Other Sources";1039 path = "Other Sources";
965 sourceTree = "<group>";1040 sourceTree = "<group>";
966 };1041 };
@@ -988,47 +1063,76 @@
988 93FA42A6124DC1350080DF62 /* Images */ = {1063 93FA42A6124DC1350080DF62 /* Images */ = {
989 isa = PBXGroup;1064 isa = PBXGroup;
990 children = (1065 children = (
1066 93FA42A7124DC1350080DF62 /* 03-loopback.png */,
1067 93FA42A8124DC1350080DF62 /* 03-loopback@2x.png */,
1068 93FA42A9124DC1350080DF62 /* 05-shuffle.png */,
1069 93FA42AA124DC1350080DF62 /* 05-shuffle@2x.png */,
1070 52AC3D4B1604513E00B4785D /* about_logo.png */,
1071 52AC3D4C1604513E00B4785D /* albums.png */,
1072 52AC3D4D1604513E00B4785D /* albums@2x.png */,
1073 932E7B0A12552CD500E7C8FF /* arrow.png */,
1074 52AC3D4E1604513E00B4785D /* artists.png */,
1075 52AC3D4F1604513E00B4785D /* artists@2x.png */,
1076 93FA42AB124DC1350080DF62 /* background.png */,
1077 93FA43A2124DEE0E0080DF62 /* bluetrack.png */,
1078 52AC3D501604513E00B4785D /* cached.png */,
1079 52AC3D511604513E00B4785D /* cached@2x.png */,
991 52169C9D15D95E2C00ED366D /* cancel.png */,1080 52169C9D15D95E2C00ED366D /* cancel.png */,
992 52169C9E15D95E2C00ED366D /* cancel@2x.png */,1081 52169C9E15D95E2C00ED366D /* cancel@2x.png */,
993 52169C9F15D95E2C00ED366D /* trash-grey.png */,
994 52169CA015D95E2C00ED366D /* trash-grey@2x.png */,
995 52169C9415D95DD100ED366D /* cancel-grey.png */,1082 52169C9415D95DD100ED366D /* cancel-grey.png */,
996 52169C9515D95DD100ED366D /* cancel-grey@2x.png */,1083 52169C9515D95DD100ED366D /* cancel-grey@2x.png */,
997 52169C9615D95DD100ED366D /* trash.png */,1084 52AC3D521604513E00B4785D /* Default.png */,
998 52169C9715D95DD100ED366D /* trash@2x.png */,1085 52AC3D531604513E00B4785D /* Default@2x.png */,
999 523B3CF515B73BA0004394F4 /* download-grey.png */,1086 52AC3D831604539000B4785D /* Default-568h@2x.png */,
1000 523B3CF615B73BA0004394F4 /* download-grey@2x.png */,
1001 523B3CF715B73BA0004394F4 /* download.png */,
1002 523B3CF815B73BA0004394F4 /* download@2x.png */,
1003 523B3CE015B5D64F004394F4 /* grabber.png */,
1004 523B3CE115B5D64F004394F4 /* grabber@2x.png */,
1005 9149D9C9159BEC3D009AE771 /* default-album-art-120.png */,1087 9149D9C9159BEC3D009AE771 /* default-album-art-120.png */,
1006 9149D9CB159BEC3D009AE771 /* default-album-art-120@2x.png */,1088 9149D9CB159BEC3D009AE771 /* default-album-art-120@2x.png */,
1007 9149D9CA159BEC3D009AE771 /* default-album-art-200.png */,1089 9149D9CA159BEC3D009AE771 /* default-album-art-200.png */,
1008 9149D9CC159BEC3D009AE771 /* default-album-art-200@2x.png */,1090 9149D9CC159BEC3D009AE771 /* default-album-art-200@2x.png */,
1009 9149D9CD159BEC3D009AE771 /* default-album-art-640.png */,1091 9149D9CD159BEC3D009AE771 /* default-album-art-640.png */,
1010 9149D9CE159BEC3D009AE771 /* default-album-art-640@2x.png */,1092 9149D9CE159BEC3D009AE771 /* default-album-art-640@2x.png */,
1011 932E7B0A12552CD500E7C8FF /* arrow.png */,1093 523B3CF715B73BA0004394F4 /* download.png */,
1094 523B3CF815B73BA0004394F4 /* download@2x.png */,
1095 523B3CF515B73BA0004394F4 /* download-grey.png */,
1096 523B3CF615B73BA0004394F4 /* download-grey@2x.png */,
1097 523B3CE015B5D64F004394F4 /* grabber.png */,
1098 523B3CE115B5D64F004394F4 /* grabber@2x.png */,
1099 52AC3D541604513E00B4785D /* header_bg.png */,
1100 52AC3D551604513E00B4785D /* header_logo@2x.png */,
1101 93D6B285124FD279007880B0 /* loopback-highlight.png */,
1102 93D6B286124FD279007880B0 /* loopback-highlight@2x.png */,
1103 93D6B2BB124FD72D007880B0 /* loopback-one-highlight.png */,
1104 93D6B2BC124FD72D007880B0 /* loopback-one-highlight@2x.png */,
1105 52AC3D561604513E00B4785D /* music_29.png */,
1106 52AC3D571604513E00B4785D /* music_57.png */,
1107 52AC3D581604513E00B4785D /* music_57@2x.png */,
1108 52AC3D591604513E00B4785D /* music_512.png */,
1109 52AC3D5A1604513E00B4785D /* partiallycached.png */,
1110 52AC3D5B1604513E00B4785D /* partiallycached@2x.png */,
1111 93FA4334124DE0D80080DF62 /* player_back.png */,
1112 93FA4335124DE0D80080DF62 /* player_back@2x.png */,
1113 93FA43B3124DF07C0080DF62 /* player_overlay_bg.png */,
1114 93FA43B4124DF07C0080DF62 /* player_overlay_bg@2x.png */,
1115 52AC3D5C1604513E00B4785D /* playlists.png */,
1116 52AC3D5D1604513E00B4785D /* playlists@2x.png */,
1117 52AC3D5E1604513E00B4785D /* progress-label-background.png */,
1118 52AC3D5F1604513E00B4785D /* settings.png */,
1119 52AC3D601604513E00B4785D /* settings@2x.png */,
1120 52AC3D611604513E00B4785D /* songs.png */,
1121 52AC3D621604513E00B4785D /* songs@2x.png */,
1012 93CCBD4D1254039900AFFC22 /* speaker.png */,1122 93CCBD4D1254039900AFFC22 /* speaker.png */,
1013 93CCBD4E1254039900AFFC22 /* speaker@2x.png */,1123 93CCBD4E1254039900AFFC22 /* speaker@2x.png */,
1014 93D6B2BB124FD72D007880B0 /* loopback-one-highlight.png */,
1015 93D6B2BC124FD72D007880B0 /* loopback-one-highlight@2x.png */,
1016 93D6B289124FD280007880B0 /* shuffle-highlight.png */,1124 93D6B289124FD280007880B0 /* shuffle-highlight.png */,
1017 93D6B28A124FD280007880B0 /* shuffle-highlight@2x.png */,1125 93D6B28A124FD280007880B0 /* shuffle-highlight@2x.png */,
1018 93D6B285124FD279007880B0 /* loopback-highlight.png */,1126 52169C9615D95DD100ED366D /* trash.png */,
1019 93D6B286124FD279007880B0 /* loopback-highlight@2x.png */,1127 52169C9715D95DD100ED366D /* trash@2x.png */,
1020 93FA43B3124DF07C0080DF62 /* player_overlay_bg.png */,1128 52169C9F15D95E2C00ED366D /* trash-grey.png */,
1021 93FA43B4124DF07C0080DF62 /* player_overlay_bg@2x.png */,1129 52169CA015D95E2C00ED366D /* trash-grey@2x.png */,
1022 93FA43A2124DEE0E0080DF62 /* bluetrack.png */,1130 52AC3D631604513E00B4785D /* uncached-disabled.png */,
1131 52AC3D641604513E00B4785D /* uncached-disabled@2x.png */,
1132 52AC3D651604513E00B4785D /* uncached.png */,
1133 52AC3D661604513E00B4785D /* uncached@2x.png */,
1023 93FA43A3124DEE0E0080DF62 /* whiteslide.png */,1134 93FA43A3124DEE0E0080DF62 /* whiteslide.png */,
1024 93FA43A4124DEE0E0080DF62 /* whitetrack.png */,1135 93FA43A4124DEE0E0080DF62 /* whitetrack.png */,
1025 93FA4334124DE0D80080DF62 /* player_back.png */,
1026 93FA4335124DE0D80080DF62 /* player_back@2x.png */,
1027 93FA42A7124DC1350080DF62 /* 03-loopback.png */,
1028 93FA42A8124DC1350080DF62 /* 03-loopback@2x.png */,
1029 93FA42A9124DC1350080DF62 /* 05-shuffle.png */,
1030 93FA42AA124DC1350080DF62 /* 05-shuffle@2x.png */,
1031 93FA42AB124DC1350080DF62 /* background.png */,
1032 );1136 );
1033 name = Images;1137 name = Images;
1034 path = images;1138 path = images;
@@ -1080,76 +1184,14 @@
1080 964FA39013CA5BE60018A65B /* Dependencies */ = {1184 964FA39013CA5BE60018A65B /* Dependencies */ = {
1081 isa = PBXGroup;1185 isa = PBXGroup;
1082 children = (1186 children = (
1187 52A042D41606D6C40000B4BC /* oauthconsumer */,
1188 93BC520A124C187700B7587C /* SynthesizeSingleton.h */,
1189 5279764815F00B2600F8435F /* libz.dylib */,
1083 91328278144E07EA00395F40 /* TestFlight SDK */,1190 91328278144E07EA00395F40 /* TestFlight SDK */,
1084 964FA39713CA5C040018A65B /* oauthconsumer */,
1085 );1191 );
1086 name = Dependencies;1192 name = Dependencies;
1087 sourceTree = "<group>";1193 sourceTree = "<group>";
1088 };1194 };
1089 964FA39713CA5C040018A65B /* oauthconsumer */ = {
1090 isa = PBXGroup;
1091 children = (
1092 964FA39813CA5C040018A65B /* Categories */,
1093 964FA39F13CA5C040018A65B /* Crypto */,
1094 964FA3A613CA5C040018A65B /* OAAttachment.h */,
1095 964FA3A713CA5C040018A65B /* OAAttachment.m */,
1096 964FA3A813CA5C040018A65B /* OACall.h */,
1097 964FA3A913CA5C040018A65B /* OACall.m */,
1098 964FA3AA13CA5C040018A65B /* OAConsumer.h */,
1099 964FA3AB13CA5C040018A65B /* OAConsumer.m */,
1100 964FA3AC13CA5C040018A65B /* OADataFetcher.h */,
1101 964FA3AD13CA5C040018A65B /* OADataFetcher.m */,
1102 964FA3AE13CA5C040018A65B /* OAHMAC_SHA1SignatureProvider.h */,
1103 964FA3AF13CA5C040018A65B /* OAHMAC_SHA1SignatureProvider.m */,
1104 964FA3B013CA5C040018A65B /* OAMutableURLRequest.h */,
1105 964FA3B113CA5C040018A65B /* OAMutableURLRequest.m */,
1106 964FA3B213CA5C040018A65B /* OAPlaintextSignatureProvider.h */,
1107 964FA3B313CA5C040018A65B /* OAPlaintextSignatureProvider.m */,
1108 964FA3B413CA5C040018A65B /* OAProblem.h */,
1109 964FA3B513CA5C040018A65B /* OAProblem.m */,
1110 964FA3B613CA5C040018A65B /* OARequestParameter.h */,
1111 964FA3B713CA5C040018A65B /* OARequestParameter.m */,
1112 964FA3B813CA5C040018A65B /* OAServiceTicket.h */,
1113 964FA3B913CA5C040018A65B /* OAServiceTicket.m */,
1114 964FA3BA13CA5C040018A65B /* OASignatureProviding.h */,
1115 964FA3BB13CA5C040018A65B /* OATestServer.rb */,
1116 964FA3BC13CA5C040018A65B /* OAToken.h */,
1117 964FA3BD13CA5C040018A65B /* OAToken.m */,
1118 964FA3BE13CA5C040018A65B /* OATokenManager.h */,
1119 964FA3BF13CA5C040018A65B /* OATokenManager.m */,
1120 964FA3C013CA5C040018A65B /* OAuthConsumer.h */,
1121 964FA3C113CA5C040018A65B /* README */,
1122 );
1123 name = oauthconsumer;
1124 path = Dependencies/oauthconsumer;
1125 sourceTree = "<group>";
1126 };
1127 964FA39813CA5C040018A65B /* Categories */ = {
1128 isa = PBXGroup;
1129 children = (
1130 964FA39913CA5C040018A65B /* NSMutableURLRequest+Parameters.h */,
1131 964FA39A13CA5C040018A65B /* NSMutableURLRequest+Parameters.m */,
1132 964FA39B13CA5C040018A65B /* NSString+URLEncoding.h */,
1133 964FA39C13CA5C040018A65B /* NSString+URLEncoding.m */,
1134 964FA39D13CA5C040018A65B /* NSURL+Base.h */,
1135 964FA39E13CA5C040018A65B /* NSURL+Base.m */,
1136 );
1137 path = Categories;
1138 sourceTree = "<group>";
1139 };
1140 964FA39F13CA5C040018A65B /* Crypto */ = {
1141 isa = PBXGroup;
1142 children = (
1143 964FA3A013CA5C040018A65B /* Base64Transcoder.c */,
1144 964FA3A113CA5C040018A65B /* Base64Transcoder.h */,
1145 964FA3A213CA5C040018A65B /* hmac.c */,
1146 964FA3A313CA5C040018A65B /* hmac.h */,
1147 964FA3A413CA5C040018A65B /* sha1.c */,
1148 964FA3A513CA5C040018A65B /* sha1.h */,
1149 );
1150 path = Crypto;
1151 sourceTree = "<group>";
1152 };
1153 9654C9B713C7824500D0EEA0 /* SSO */ = {1195 9654C9B713C7824500D0EEA0 /* SSO */ = {
1154 isa = PBXGroup;1196 isa = PBXGroup;
1155 children = (1197 children = (
@@ -1158,8 +1200,6 @@
1158 9654C9BB13C7826900D0EEA0 /* UOSSOCredentialsViewController.xib */,1200 9654C9BB13C7826900D0EEA0 /* UOSSOCredentialsViewController.xib */,
1159 9654C9C513C7AF9200D0EEA0 /* UOMusicLoginController.h */,1201 9654C9C513C7AF9200D0EEA0 /* UOMusicLoginController.h */,
1160 9654C9C613C7AF9200D0EEA0 /* UOMusicLoginController.m */,1202 9654C9C613C7AF9200D0EEA0 /* UOMusicLoginController.m */,
1161 964FA3EB13CA8C490018A65B /* UOSSOMusicCredsFetchOperation.h */,
1162 964FA3EC13CA8C490018A65B /* UOSSOMusicCredsFetchOperation.m */,
1163 );1203 );
1164 name = SSO;1204 name = SSO;
1165 sourceTree = "<group>";1205 sourceTree = "<group>";
@@ -1190,6 +1230,7 @@
1190 buildRules = (1230 buildRules = (
1191 );1231 );
1192 dependencies = (1232 dependencies = (
1233 528515981604F409004A1F7C /* PBXTargetDependency */,
1193 );1234 );
1194 name = U1Music;1235 name = U1Music;
1195 productName = iSubTESTING;1236 productName = iSubTESTING;
@@ -1218,6 +1259,12 @@
1218 );1259 );
1219 mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;1260 mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
1220 projectDirPath = "";1261 projectDirPath = "";
1262 projectReferences = (
1263 {
1264 ProductGroup = 5285158F1604F16B004A1F7C /* Products */;
1265 ProjectRef = 5285158E1604F16B004A1F7C /* UbuntuOneAuthKit.xcodeproj */;
1266 },
1267 );
1221 projectRoot = "";1268 projectRoot = "";
1222 targets = (1269 targets = (
1223 1D6058900D05DD3D006BFB54 /* U1Music */,1270 1D6058900D05DD3D006BFB54 /* U1Music */,
@@ -1225,13 +1272,28 @@
1225 };1272 };
1226/* End PBXProject section */1273/* End PBXProject section */
12271274
1275/* Begin PBXReferenceProxy section */
1276 528515941604F16D004A1F7C /* UbuntuOneAuthKit.a */ = {
1277 isa = PBXReferenceProxy;
1278 fileType = archive.ar;
1279 path = UbuntuOneAuthKit.a;
1280 remoteRef = 528515931604F16D004A1F7C /* PBXContainerItemProxy */;
1281 sourceTree = BUILT_PRODUCTS_DIR;
1282 };
1283 528515961604F16D004A1F7C /* UbuntuOneAuthKitTests.octest */ = {
1284 isa = PBXReferenceProxy;
1285 fileType = wrapper.cfbundle;
1286 path = UbuntuOneAuthKitTests.octest;
1287 remoteRef = 528515951604F16D004A1F7C /* PBXContainerItemProxy */;
1288 sourceTree = BUILT_PRODUCTS_DIR;
1289 };
1290/* End PBXReferenceProxy section */
1291
1228/* Begin PBXResourcesBuildPhase section */1292/* Begin PBXResourcesBuildPhase section */
1229 1D60588D0D05DD3D006BFB54 /* Resources */ = {1293 1D60588D0D05DD3D006BFB54 /* Resources */ = {
1230 isa = PBXResourcesBuildPhase;1294 isa = PBXResourcesBuildPhase;
1231 buildActionMask = 2147483647;1295 buildActionMask = 2147483647;
1232 files = (1296 files = (
1233 5305C2061157F4F800BC78F0 /* Default.png in Resources */,
1234 53F0CD8211589F0A00A665CD /* progress-label-background.png in Resources */,
1235 93F334681247FB02006C6707 /* SongViewController.xib in Resources */,1297 93F334681247FB02006C6707 /* SongViewController.xib in Resources */,
1236 93F334691247FB02006C6707 /* MainWindow.xib in Resources */,1298 93F334691247FB02006C6707 /* MainWindow.xib in Resources */,
1237 93F3346A1247FB02006C6707 /* SearchableTableViewController.xib in Resources */,1299 93F3346A1247FB02006C6707 /* SearchableTableViewController.xib in Resources */,
@@ -1253,39 +1315,13 @@
1253 93D6B28C124FD280007880B0 /* shuffle-highlight@2x.png in Resources */,1315 93D6B28C124FD280007880B0 /* shuffle-highlight@2x.png in Resources */,
1254 93D6B2BD124FD72D007880B0 /* loopback-one-highlight.png in Resources */,1316 93D6B2BD124FD72D007880B0 /* loopback-one-highlight.png in Resources */,
1255 93D6B2BE124FD72D007880B0 /* loopback-one-highlight@2x.png in Resources */,1317 93D6B2BE124FD72D007880B0 /* loopback-one-highlight@2x.png in Resources */,
1256 93D6B50E1252CA71007880B0 /* music_29.png in Resources */,
1257 93D6B50F1252CA71007880B0 /* music_57.png in Resources */,
1258 93D6B5111252CA71007880B0 /* music_512.png in Resources */,
1259 93D6B5151252CB34007880B0 /* music_57@2x.png in Resources */,
1260 93CCBD4F1254039900AFFC22 /* speaker.png in Resources */,1318 93CCBD4F1254039900AFFC22 /* speaker.png in Resources */,
1261 93CCBD501254039900AFFC22 /* speaker@2x.png in Resources */,1319 93CCBD501254039900AFFC22 /* speaker@2x.png in Resources */,
1262 93CCBD8012540CD200AFFC22 /* AboutViewController.xib in Resources */,1320 93CCBD8012540CD200AFFC22 /* AboutViewController.xib in Resources */,
1263 932E7A6E1254747E00E7C8FF /* Default@2x.png in Resources */,
1264 932E7AA01255265A00E7C8FF /* about.css in Resources */,1321 932E7AA01255265A00E7C8FF /* about.css in Resources */,
1265 932E7AA11255265A00E7C8FF /* about.html in Resources */,1322 932E7AA11255265A00E7C8FF /* about.html in Resources */,
1266 932E7B0B12552CD500E7C8FF /* arrow.png in Resources */,1323 932E7B0B12552CD500E7C8FF /* arrow.png in Resources */,
1267 9112B0241383FF27003C1D93 /* albums.png in Resources */,
1268 9112B0251383FF27003C1D93 /* artists.png in Resources */,
1269 9112B0261383FF27003C1D93 /* playlists.png in Resources */,
1270 9112B0281383FF27003C1D93 /* settings.png in Resources */,
1271 9112B0291383FF27003C1D93 /* songs.png in Resources */,
1272 9112B02F1383FF37003C1D93 /* albums@2x.png in Resources */,
1273 9112B0301383FF37003C1D93 /* artists@2x.png in Resources */,
1274 9112B0311383FF37003C1D93 /* playlists@2x.png in Resources */,
1275 9112B0321383FF37003C1D93 /* settings@2x.png in Resources */,
1276 9112B0331383FF37003C1D93 /* songs@2x.png in Resources */,
1277 91406E9413849F2400A7DA67 /* cached.png in Resources */,
1278 91406E9513849F2400A7DA67 /* cached@2x.png in Resources */,
1279 91406E9613849F2400A7DA67 /* partiallycached.png in Resources */,
1280 91406E9713849F2400A7DA67 /* partiallycached@2x.png in Resources */,
1281 91406E9813849F2400A7DA67 /* uncached.png in Resources */,
1282 91406E9913849F2400A7DA67 /* uncached@2x.png in Resources */,
1283 91D18DAB13B228D3001BEB42 /* uncached-disabled.png in Resources */,
1284 91D18DAC13B228D3001BEB42 /* uncached-disabled@2x.png in Resources */,
1285 9654C9BD13C7826900D0EEA0 /* UOSSOCredentialsViewController.xib in Resources */,1324 9654C9BD13C7826900D0EEA0 /* UOSSOCredentialsViewController.xib in Resources */,
1286 964FB0C213CB8B0C00D13DC3 /* header_bg.png in Resources */,
1287 964FB0C613CB8B6A00D13DC3 /* header_logo@2x.png in Resources */,
1288 91DB6B9F13E9C7190029BC77 /* about_logo.png in Resources */,
1289 9132827E144E07EA00395F40 /* README.txt in Resources */,1325 9132827E144E07EA00395F40 /* README.txt in Resources */,
1290 9132827F144E07EA00395F40 /* release_notes.txt in Resources */,1326 9132827F144E07EA00395F40 /* release_notes.txt in Resources */,
1291 91F2653114EACFCC0027232B /* U1MigrationViewController.xib in Resources */,1327 91F2653114EACFCC0027232B /* U1MigrationViewController.xib in Resources */,
@@ -1309,6 +1345,37 @@
1309 52169CA215D95E2C00ED366D /* cancel@2x.png in Resources */,1345 52169CA215D95E2C00ED366D /* cancel@2x.png in Resources */,
1310 52169CA315D95E2C00ED366D /* trash-grey.png in Resources */,1346 52169CA315D95E2C00ED366D /* trash-grey.png in Resources */,
1311 52169CA415D95E2C00ED366D /* trash-grey@2x.png in Resources */,1347 52169CA415D95E2C00ED366D /* trash-grey@2x.png in Resources */,
1348 52AC3D671604513E00B4785D /* about_logo.png in Resources */,
1349 52AC3D681604513E00B4785D /* albums.png in Resources */,
1350 52AC3D691604513E00B4785D /* albums@2x.png in Resources */,
1351 52AC3D6A1604513E00B4785D /* artists.png in Resources */,
1352 52AC3D6B1604513E00B4785D /* artists@2x.png in Resources */,
1353 52AC3D6C1604513E00B4785D /* cached.png in Resources */,
1354 52AC3D6D1604513E00B4785D /* cached@2x.png in Resources */,
1355 52AC3D6E1604513E00B4785D /* Default.png in Resources */,
1356 52AC3D6F1604513E00B4785D /* Default@2x.png in Resources */,
1357 52AC3D701604513E00B4785D /* header_bg.png in Resources */,
1358 52AC3D711604513E00B4785D /* header_logo@2x.png in Resources */,
1359 52AC3D721604513E00B4785D /* music_29.png in Resources */,
1360 52AC3D731604513E00B4785D /* music_57.png in Resources */,
1361 52AC3D741604513E00B4785D /* music_57@2x.png in Resources */,
1362 52AC3D751604513E00B4785D /* music_512.png in Resources */,
1363 52AC3D761604513E00B4785D /* partiallycached.png in Resources */,
1364 52AC3D771604513E00B4785D /* partiallycached@2x.png in Resources */,
1365 52AC3D781604513E00B4785D /* playlists.png in Resources */,
1366 52AC3D791604513E00B4785D /* playlists@2x.png in Resources */,
1367 52AC3D7A1604513E00B4785D /* progress-label-background.png in Resources */,
1368 52AC3D7B1604513E00B4785D /* settings.png in Resources */,
1369 52AC3D7C1604513E00B4785D /* settings@2x.png in Resources */,
1370 52AC3D7D1604513E00B4785D /* songs.png in Resources */,
1371 52AC3D7E1604513E00B4785D /* songs@2x.png in Resources */,
1372 52AC3D7F1604513E00B4785D /* uncached-disabled.png in Resources */,
1373 52AC3D801604513E00B4785D /* uncached-disabled@2x.png in Resources */,
1374 52AC3D811604513E00B4785D /* uncached.png in Resources */,
1375 52AC3D821604513E00B4785D /* uncached@2x.png in Resources */,
1376 52AC3D841604539000B4785D /* Default-568h@2x.png in Resources */,
1377 52A0430F1606D6C40000B4BC /* OATestServer.rb in Resources */,
1378 52A043121606D6C40000B4BC /* README in Resources */,
1312 );1379 );
1313 runOnlyForDeploymentPostprocessing = 0;1380 runOnlyForDeploymentPostprocessing = 0;
1314 };1381 };
@@ -1337,24 +1404,6 @@
1337 isa = PBXSourcesBuildPhase;1404 isa = PBXSourcesBuildPhase;
1338 buildActionMask = 2147483647;1405 buildActionMask = 2147483647;
1339 files = (1406 files = (
1340 964FA3C313CA5C4F0018A65B /* NSMutableURLRequest+Parameters.m in Sources */,
1341 964FA3C413CA5C4F0018A65B /* NSString+URLEncoding.m in Sources */,
1342 964FA3C513CA5C4F0018A65B /* NSURL+Base.m in Sources */,
1343 964FA3C613CA5C4F0018A65B /* Base64Transcoder.c in Sources */,
1344 964FA3C713CA5C4F0018A65B /* hmac.c in Sources */,
1345 964FA3C813CA5C4F0018A65B /* sha1.c in Sources */,
1346 964FA3C913CA5C4F0018A65B /* OAAttachment.m in Sources */,
1347 964FA3CA13CA5C4F0018A65B /* OACall.m in Sources */,
1348 964FA3CB13CA5C4F0018A65B /* OAConsumer.m in Sources */,
1349 964FA3CC13CA5C4F0018A65B /* OADataFetcher.m in Sources */,
1350 964FA3CD13CA5C500018A65B /* OAHMAC_SHA1SignatureProvider.m in Sources */,
1351 964FA3CE13CA5C500018A65B /* OAMutableURLRequest.m in Sources */,
1352 964FA3CF13CA5C500018A65B /* OAPlaintextSignatureProvider.m in Sources */,
1353 964FA3D013CA5C500018A65B /* OAProblem.m in Sources */,
1354 964FA3D113CA5C500018A65B /* OARequestParameter.m in Sources */,
1355 964FA3D213CA5C500018A65B /* OAServiceTicket.m in Sources */,
1356 964FA3D313CA5C500018A65B /* OAToken.m in Sources */,
1357 964FA3D413CA5C500018A65B /* OATokenManager.m in Sources */,
1358 9316628812264A74003B0EB7 /* NSDate+Extras.m in Sources */,1407 9316628812264A74003B0EB7 /* NSDate+Extras.m in Sources */,
1359 936F20681227364200070F43 /* Playlist.m in Sources */,1408 936F20681227364200070F43 /* Playlist.m in Sources */,
1360 936F209012273D9000070F43 /* Song.m in Sources */,1409 936F209012273D9000070F43 /* Song.m in Sources */,
@@ -1424,9 +1473,7 @@
1424 96FB790A13AA628700D8D4A4 /* UONetworkStatusCoordinator.m in Sources */,1473 96FB790A13AA628700D8D4A4 /* UONetworkStatusCoordinator.m in Sources */,
1425 9654C9BC13C7826900D0EEA0 /* UOSSOCredentialsViewController.m in Sources */,1474 9654C9BC13C7826900D0EEA0 /* UOSSOCredentialsViewController.m in Sources */,
1426 9654C9C713C7AF9200D0EEA0 /* UOMusicLoginController.m in Sources */,1475 9654C9C713C7AF9200D0EEA0 /* UOMusicLoginController.m in Sources */,
1427 964FA3DF13CA5D1D0018A65B /* UOJSONFetchOperation.m in Sources */,
1428 964FA3EA13CA848D0018A65B /* UOHTTPFetchOperation.m in Sources */,1476 964FA3EA13CA848D0018A65B /* UOHTTPFetchOperation.m in Sources */,
1429 964FA3ED13CA8C490018A65B /* UOSSOMusicCredsFetchOperation.m in Sources */,
1430 96377AEE14E0726800517845 /* U1Descriptor.m in Sources */,1477 96377AEE14E0726800517845 /* U1Descriptor.m in Sources */,
1431 96377AF314E0730B00517845 /* U1StreamReader.m in Sources */,1478 96377AF314E0730B00517845 /* U1StreamReader.m in Sources */,
1432 96377AF414E0730B00517845 /* U1StreamWriter.m in Sources */,1479 96377AF414E0730B00517845 /* U1StreamWriter.m in Sources */,
@@ -1458,11 +1505,37 @@
1458 91F2653014EACFCC0027232B /* U1MigrationViewController.m in Sources */,1505 91F2653014EACFCC0027232B /* U1MigrationViewController.m in Sources */,
1459 523B3CDE15B4C42F004394F4 /* SongUITableView.m in Sources */,1506 523B3CDE15B4C42F004394F4 /* SongUITableView.m in Sources */,
1460 523B3CE615B5D814004394F4 /* UOPullGestureRecognizer.m in Sources */,1507 523B3CE615B5D814004394F4 /* UOPullGestureRecognizer.m in Sources */,
1508 52A042FF1606D6C40000B4BC /* NSMutableURLRequest+Parameters.m in Sources */,
1509 52A043001606D6C40000B4BC /* NSString+URLEncoding.m in Sources */,
1510 52A043011606D6C40000B4BC /* NSURL+Base.m in Sources */,
1511 52A043021606D6C40000B4BC /* Base64Transcoder.c in Sources */,
1512 52A043031606D6C40000B4BC /* hmac.c in Sources */,
1513 52A043041606D6C40000B4BC /* sha1.c in Sources */,
1514 52A043051606D6C40000B4BC /* OAAttachment.m in Sources */,
1515 52A043061606D6C40000B4BC /* OACall.m in Sources */,
1516 52A043071606D6C40000B4BC /* OAConsumer.m in Sources */,
1517 52A043081606D6C40000B4BC /* OADataFetcher.m in Sources */,
1518 52A043091606D6C40000B4BC /* OAHMAC_SHA1SignatureProvider.m in Sources */,
1519 52A0430A1606D6C40000B4BC /* OAMutableURLRequest.m in Sources */,
1520 52A0430B1606D6C40000B4BC /* OAPlaintextSignatureProvider.m in Sources */,
1521 52A0430C1606D6C40000B4BC /* OAProblem.m in Sources */,
1522 52A0430D1606D6C40000B4BC /* OARequestParameter.m in Sources */,
1523 52A0430E1606D6C40000B4BC /* OAServiceTicket.m in Sources */,
1524 52A043101606D6C40000B4BC /* OAToken.m in Sources */,
1525 52A043111606D6C40000B4BC /* OATokenManager.m in Sources */,
1461 );1526 );
1462 runOnlyForDeploymentPostprocessing = 0;1527 runOnlyForDeploymentPostprocessing = 0;
1463 };1528 };
1464/* End PBXSourcesBuildPhase section */1529/* End PBXSourcesBuildPhase section */
14651530
1531/* Begin PBXTargetDependency section */
1532 528515981604F409004A1F7C /* PBXTargetDependency */ = {
1533 isa = PBXTargetDependency;
1534 name = UbuntuOneAuthKit;
1535 targetProxy = 528515971604F409004A1F7C /* PBXContainerItemProxy */;
1536 };
1537/* End PBXTargetDependency section */
1538
1466/* Begin XCBuildConfiguration section */1539/* Begin XCBuildConfiguration section */
1467 1D6058940D05DD3E006BFB54 /* Debug */ = {1540 1D6058940D05DD3E006BFB54 /* Debug */ = {
1468 isa = XCBuildConfiguration;1541 isa = XCBuildConfiguration;
@@ -1472,6 +1545,8 @@
1472 armv6,1545 armv6,
1473 armv7,1546 armv7,
1474 );1547 );
1548 CLANG_ENABLE_OBJC_ARC = YES;
1549 CLANG_WARN_OBJCPP_ARC_ABI = YES;
1475 CODE_SIGN_ENTITLEMENTS = "";1550 CODE_SIGN_ENTITLEMENTS = "";
1476 CODE_SIGN_IDENTITY = "iPhone Developer";1551 CODE_SIGN_IDENTITY = "iPhone Developer";
1477 "CODE_SIGN_IDENTITY[sdk=*]" = "iPhone Developer";1552 "CODE_SIGN_IDENTITY[sdk=*]" = "iPhone Developer";
@@ -1484,11 +1559,13 @@
1484 GCC_PREFIX_HEADER = U1Music_Prefix.pch;1559 GCC_PREFIX_HEADER = U1Music_Prefix.pch;
1485 GCC_THUMB_SUPPORT = NO;1560 GCC_THUMB_SUPPORT = NO;
1486 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1561 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
1562 HEADER_SEARCH_PATHS = "$(BUILT_PRODUCTS_DIR)/usr/local/include";
1487 INFOPLIST_FILE = "U1Music-Info.plist";1563 INFOPLIST_FILE = "U1Music-Info.plist";
1488 IPHONEOS_DEPLOYMENT_TARGET = 5.0;1564 IPHONEOS_DEPLOYMENT_TARGET = 5.0;
1489 LIBRARY_SEARCH_PATHS = (1565 LIBRARY_SEARCH_PATHS = (
1490 "$(inherited)",1566 "$(inherited)",
1491 "\"$(SRCROOT)/TestFlight SDK\"",1567 "\"$(SRCROOT)/TestFlight SDK\"",
1568 "$(BUILT_PRODUCTS_DIR)/**",
1492 );1569 );
1493 PRODUCT_NAME = "U1 Music";1570 PRODUCT_NAME = "U1 Music";
1494 PROVISIONING_PROFILE = "";1571 PROVISIONING_PROFILE = "";
@@ -1507,6 +1584,8 @@
1507 armv6,1584 armv6,
1508 armv7,1585 armv7,
1509 );1586 );
1587 CLANG_ENABLE_OBJC_ARC = YES;
1588 CLANG_WARN_OBJCPP_ARC_ABI = YES;
1510 CODE_SIGN_ENTITLEMENTS = Entitlements.plist;1589 CODE_SIGN_ENTITLEMENTS = Entitlements.plist;
1511 CODE_SIGN_IDENTITY = "iPhone Distribution";1590 CODE_SIGN_IDENTITY = "iPhone Distribution";
1512 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";1591 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
@@ -1516,11 +1595,13 @@
1516 GCC_PREFIX_HEADER = U1Music_Prefix.pch;1595 GCC_PREFIX_HEADER = U1Music_Prefix.pch;
1517 GCC_THUMB_SUPPORT = NO;1596 GCC_THUMB_SUPPORT = NO;
1518 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1597 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
1598 HEADER_SEARCH_PATHS = "$(BUILT_PRODUCTS_DIR)/usr/local/include";
1519 INFOPLIST_FILE = "U1Music-Info.plist";1599 INFOPLIST_FILE = "U1Music-Info.plist";
1520 IPHONEOS_DEPLOYMENT_TARGET = 5.0;1600 IPHONEOS_DEPLOYMENT_TARGET = 5.0;
1521 LIBRARY_SEARCH_PATHS = (1601 LIBRARY_SEARCH_PATHS = (
1522 "$(inherited)",1602 "$(inherited)",
1523 "\"$(SRCROOT)/TestFlight SDK\"",1603 "\"$(SRCROOT)/TestFlight SDK\"",
1604 "$(BUILT_PRODUCTS_DIR)/**",
1524 );1605 );
1525 PRODUCT_NAME = "U1 Music";1606 PRODUCT_NAME = "U1 Music";
1526 PROVISIONING_PROFILE = "";1607 PROVISIONING_PROFILE = "";
@@ -1598,7 +1679,8 @@
1598 93DFFE48135D71550061F29F /* music.xcdatamodel */,1679 93DFFE48135D71550061F29F /* music.xcdatamodel */,
1599 );1680 );
1600 currentVersion = 914AC3EE14B60ECC00C7D5A3 /* U1Music 2.2-31.xcdatamodel */;1681 currentVersion = 914AC3EE14B60ECC00C7D5A3 /* U1Music 2.2-31.xcdatamodel */;
1601 path = music.xcdatamodeld;1682 name = music.xcdatamodeld;
1683 path = ../music.xcdatamodeld;
1602 sourceTree = "<group>";1684 sourceTree = "<group>";
1603 versionGroupType = wrapper.xcdatamodel;1685 versionGroupType = wrapper.xcdatamodel;
1604 };1686 };
16051687
=== modified file 'categories/UIDevice+Hardware.m'
--- categories/UIDevice+Hardware.m 2010-09-26 00:48:58 +0000
+++ categories/UIDevice+Hardware.m 2012-09-19 03:34:23 +0000
@@ -578,9 +578,10 @@
578 printf("Could not allocate memory. error!\n");578 printf("Could not allocate memory. error!\n");
579 return NULL;579 return NULL;
580 }580 }
581 581
582 if (sysctl(mib, 6, buf, &len, NULL, 0) < 0) {582 if (sysctl(mib, 6, buf, &len, NULL, 0) < 0) {
583 printf("Error: sysctl, take 2");583 printf("Error: sysctl, take 2");
584 free(buf);
584 return NULL;585 return NULL;
585 }586 }
586 587
587588
=== modified file 'categories/UIImage+Alpha.h'
--- categories/UIImage+Alpha.h 2011-04-14 18:53:36 +0000
+++ categories/UIImage+Alpha.h 2012-09-19 03:34:23 +0000
@@ -8,4 +8,5 @@
8- (BOOL)hasAlpha;8- (BOOL)hasAlpha;
9- (UIImage *)imageWithAlpha;9- (UIImage *)imageWithAlpha;
10- (UIImage *)transparentBorderImage:(NSUInteger)borderSize;10- (UIImage *)transparentBorderImage:(NSUInteger)borderSize;
11- (CGImageRef)newBorderMask:(NSUInteger)borderSize size:(CGSize)size;
11@end12@end
12\ No newline at end of file13\ No newline at end of file
1314
=== modified file 'categories/UIImage+Alpha.m'
--- categories/UIImage+Alpha.m 2011-04-14 18:53:36 +0000
+++ categories/UIImage+Alpha.m 2012-09-19 03:34:23 +0000
@@ -5,11 +5,6 @@
55
6#import "UIImage+Alpha.h"6#import "UIImage+Alpha.h"
77
8// Private helper methods
9@interface UIImage ()
10- (CGImageRef)newBorderMask:(NSUInteger)borderSize size:(CGSize)size;
11@end
12
13@implementation UIImage (Alpha)8@implementation UIImage (Alpha)
149
15// Returns true if the image has an alpha layer10// Returns true if the image has an alpha layer
1611
=== modified file 'categories/UIImage+Resize.h'
--- categories/UIImage+Resize.h 2011-05-02 07:33:18 +0000
+++ categories/UIImage+Resize.h 2012-09-19 03:34:23 +0000
@@ -15,5 +15,9 @@
15- (UIImage *)resizedImageWithContentMode:(UIViewContentMode)contentMode15- (UIImage *)resizedImageWithContentMode:(UIViewContentMode)contentMode
16 bounds:(CGSize)bounds16 bounds:(CGSize)bounds
17 interpolationQuality:(CGInterpolationQuality)quality;17 interpolationQuality:(CGInterpolationQuality)quality;
18- (UIImage *) normalize;18- (UIImage *)resizedImage:(CGSize)newSize
19 transform:(CGAffineTransform)transform
20 drawTransposed:(BOOL)transpose
21 interpolationQuality:(CGInterpolationQuality)quality;
22- (CGAffineTransform)transformForOrientation:(CGSize)newSize;
19@end23@end
20\ No newline at end of file24\ No newline at end of file
2125
=== modified file 'categories/UIImage+Resize.m'
--- categories/UIImage+Resize.m 2012-08-16 16:48:51 +0000
+++ categories/UIImage+Resize.m 2012-09-19 03:34:23 +0000
@@ -7,15 +7,6 @@
7#import "UIImage+RoundedCorner.h"7#import "UIImage+RoundedCorner.h"
8#import "UIImage+Alpha.h"8#import "UIImage+Alpha.h"
99
10// Private helper methods
11@interface UIImage ()
12- (UIImage *)resizedImage:(CGSize)newSize
13 transform:(CGAffineTransform)transform
14 drawTransposed:(BOOL)transpose
15 interpolationQuality:(CGInterpolationQuality)quality;
16- (CGAffineTransform)transformForOrientation:(CGSize)newSize;
17@end
18
19@implementation UIImage (Resize)10@implementation UIImage (Resize)
2011
21// Returns a copy of this image that is cropped to the given bounds.12// Returns a copy of this image that is cropped to the given bounds.
@@ -48,7 +39,7 @@
48 UIImage *croppedImage = [resizedImage croppedImage:cropRect];39 UIImage *croppedImage = [resizedImage croppedImage:cropRect];
49 40
50 UIImage *transparentBorderImage = borderSize ? [croppedImage transparentBorderImage:borderSize] : croppedImage;41 UIImage *transparentBorderImage = borderSize ? [croppedImage transparentBorderImage:borderSize] : croppedImage;
5142
52 return [transparentBorderImage roundedCornerImage:cornerRadius borderSize:borderSize];43 return [transparentBorderImage roundedCornerImage:cornerRadius borderSize:borderSize];
53}44}
5445
@@ -56,46 +47,33 @@
56// The image will be scaled disproportionately if necessary to fit the bounds specified by the parameter47// The image will be scaled disproportionately if necessary to fit the bounds specified by the parameter
57- (UIImage *)resizedImage:(CGSize)newSize interpolationQuality:(CGInterpolationQuality)quality {48- (UIImage *)resizedImage:(CGSize)newSize interpolationQuality:(CGInterpolationQuality)quality {
58 BOOL drawTransposed;49 BOOL drawTransposed;
59 50 CGAffineTransform transform = CGAffineTransformIdentity;
60 switch (self.imageOrientation) {51
61 case UIImageOrientationLeft:52 // In iOS 5 the image is already correctly rotated. See Eran Sandler's
62 case UIImageOrientationLeftMirrored:53 // addition here: http://eran.sandler.co.il/2011/11/07/uiimage-in-ios-5-orientation-and-resize/
63 case UIImageOrientationRight:54
64 case UIImageOrientationRightMirrored:55 if ( [[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0 )
65 drawTransposed = YES;56 {
66 break;57 drawTransposed = NO;
67 58 }
68 default:59 else
69 drawTransposed = NO;60 {
70 }61 switch ( self.imageOrientation )
71 62 {
72 return [[self normalize] resizedImage:newSize63 case UIImageOrientationLeft:
73 transform:[self transformForOrientation:newSize]64 case UIImageOrientationLeftMirrored:
74 drawTransposed:drawTransposed65 case UIImageOrientationRight:
75 interpolationQuality:quality];66 case UIImageOrientationRightMirrored:
76}67 drawTransposed = YES;
7768 break;
78//http://stackoverflow.com/questions/2457116/iphone-changing-cgimagealphainfo-of-cgimage69 default:
7970 drawTransposed = NO;
80- (UIImage *) normalize {71 }
81 72
82 CGColorSpaceRef genericColorSpace = CGColorSpaceCreateDeviceRGB();73 transform = [self transformForOrientation:newSize];
83 CGContextRef thumbBitmapCtxt = CGBitmapContextCreate(NULL, 74 }
84 self.size.width, 75
85 self.size.height, 76 return [self resizedImage:newSize transform:transform drawTransposed:drawTransposed interpolationQuality:quality];
86 8, (4 * self.size.width),
87 genericColorSpace,
88 kCGImageAlphaPremultipliedFirst);
89 CGColorSpaceRelease(genericColorSpace);
90 CGContextSetInterpolationQuality(thumbBitmapCtxt, kCGInterpolationDefault);
91 CGRect destRect = CGRectMake(0, 0, self.size.width, self.size.height);
92 CGContextDrawImage(thumbBitmapCtxt, destRect, self.CGImage);
93 CGImageRef tmpThumbImage = CGBitmapContextCreateImage(thumbBitmapCtxt);
94 CGContextRelease(thumbBitmapCtxt);
95 UIImage *result = [UIImage imageWithCGImage:tmpThumbImage];
96 CGImageRelease(tmpThumbImage);
97
98 return result;
99}77}
10078
101// Resizes the image according to the given content mode, taking into account the image's orientation79// Resizes the image according to the given content mode, taking into account the image's orientation
@@ -138,15 +116,19 @@
138 CGRect transposedRect = CGRectMake(0, 0, newRect.size.height, newRect.size.width);116 CGRect transposedRect = CGRectMake(0, 0, newRect.size.height, newRect.size.width);
139 CGImageRef imageRef = self.CGImage;117 CGImageRef imageRef = self.CGImage;
140 118
141 // Build a context that's the same dimensions as the new size119 // Fix for a colorspace / transparency issue that affects some types of
142 CGContextRef bitmap = CGBitmapContextCreate(NULL,120 // images. See here: http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/comment-page-2/#comment-39951
143 newRect.size.width,
144 newRect.size.height,
145 CGImageGetBitsPerComponent(imageRef),
146 0,
147 CGImageGetColorSpace(imageRef),
148 CGImageGetBitmapInfo(imageRef));
149 121
122 CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
123 CGContextRef bitmap =CGBitmapContextCreate( NULL,
124 newRect.size.width,
125 newRect.size.height,
126 8,
127 0,
128 colorSpace,
129 kCGImageAlphaPremultipliedLast );
130 CGColorSpaceRelease(colorSpace);
131
150 // Rotate and/or flip the image if required by its orientation132 // Rotate and/or flip the image if required by its orientation
151 CGContextConcatCTM(bitmap, transform);133 CGContextConcatCTM(bitmap, transform);
152 134
153135
=== renamed file 'Default-568h@2x.png' => 'images/Default-568h@2x.png'
=== renamed file 'Default.png' => 'images/Default.png'
=== renamed file 'Default@2x.png' => 'images/Default@2x.png'
=== renamed file 'about_logo.png' => 'images/about_logo.png'
=== renamed file 'albums.png' => 'images/albums.png'
=== renamed file 'albums@2x.png' => 'images/albums@2x.png'
=== renamed file 'artists.png' => 'images/artists.png'
=== renamed file 'artists@2x.png' => 'images/artists@2x.png'
=== renamed file 'cached.png' => 'images/cached.png'
=== renamed file 'cached@2x.png' => 'images/cached@2x.png'
=== renamed file 'header_bg.png' => 'images/header_bg.png'
=== renamed file 'header_logo@2x.png' => 'images/header_logo@2x.png'
=== renamed file 'music_29.png' => 'images/music_29.png'
=== renamed file 'music_512.png' => 'images/music_512.png'
=== renamed file 'music_57.png' => 'images/music_57.png'
=== renamed file 'music_57@2x.png' => 'images/music_57@2x.png'
=== renamed file 'partiallycached.png' => 'images/partiallycached.png'
=== renamed file 'partiallycached@2x.png' => 'images/partiallycached@2x.png'
=== renamed file 'playlists.png' => 'images/playlists.png'
=== renamed file 'playlists@2x.png' => 'images/playlists@2x.png'
=== renamed file 'progress-label-background.png' => 'images/progress-label-background.png'
=== renamed file 'settings.png' => 'images/settings.png'
=== renamed file 'settings@2x.png' => 'images/settings@2x.png'
=== renamed file 'songs.png' => 'images/songs.png'
=== renamed file 'songs@2x.png' => 'images/songs@2x.png'
=== renamed file 'uncached-disabled.png' => 'images/uncached-disabled.png'
=== renamed file 'uncached-disabled@2x.png' => 'images/uncached-disabled@2x.png'
=== renamed file 'uncached.png' => 'images/uncached.png'
=== renamed file 'uncached@2x.png' => 'images/uncached@2x.png'
=== modified file 'utilities/AudioStreamer.m'
--- utilities/AudioStreamer.m 2012-08-16 17:14:27 +0000
+++ utilities/AudioStreamer.m 2012-09-19 03:34:23 +0000
@@ -1632,8 +1632,10 @@
1632 1632
1633 AudioFormatListItem *formatList = malloc(formatListSize);1633 AudioFormatListItem *formatList = malloc(formatListSize);
1634 err = AudioFileStreamGetProperty(inAudioFileStream, kAudioFileStreamProperty_FormatList, &formatListSize, formatList);1634 err = AudioFileStreamGetProperty(inAudioFileStream, kAudioFileStreamProperty_FormatList, &formatListSize, formatList);
1635 [(id)formatList release];
1635 if (err)1636 if (err)
1636 {1637 {
1638 free(formatList);
1637 [self failWithErrorCode:AS_FILE_STREAM_GET_PROPERTY_FAILED];1639 [self failWithErrorCode:AS_FILE_STREAM_GET_PROPERTY_FAILED];
1638 return;1640 return;
1639 }1641 }
16401642
=== modified file 'utilities/Models/Generated/_U1CachedFile.h'
--- utilities/Models/Generated/_U1CachedFile.h 2012-02-10 17:38:18 +0000
+++ utilities/Models/Generated/_U1CachedFile.h 2012-09-19 03:34:23 +0000
@@ -5,9 +5,9 @@
55
66
7extern const struct U1CachedFileAttributes {7extern const struct U1CachedFileAttributes {
8 NSString *accessCount;8 __unsafe_unretained NSString *accessCount;
9 NSString *lastAccess;9 __unsafe_unretained NSString *lastAccess;
10 NSString *path;10 __unsafe_unretained NSString *path;
11} U1CachedFileAttributes;11} U1CachedFileAttributes;
1212
13extern const struct U1CachedFileRelationships {13extern const struct U1CachedFileRelationships {
1414
=== modified file 'utilities/U1LocalMusicServer.m'
--- utilities/U1LocalMusicServer.m 2012-08-28 20:27:24 +0000
+++ utilities/U1LocalMusicServer.m 2012-09-19 03:34:23 +0000
@@ -44,7 +44,7 @@
44 if (self == nil)44 if (self == nil)
45 return nil;45 return nil;
46 46
47 httpServer = [[U1HTTPServer localHTTPServer] retain];47 httpServer = [U1HTTPServer localHTTPServer];
48 __block id weakSelf = self;48 __block id weakSelf = self;
49 [httpServer setRequestHandler:^(U1HTTPRequest *request, U1HTTPServerResponseCallback callback) {49 [httpServer setRequestHandler:^(U1HTTPRequest *request, U1HTTPServerResponseCallback callback) {
50 [weakSelf handleRequest:request withCallback:callback];50 [weakSelf handleRequest:request withCallback:callback];
@@ -52,12 +52,6 @@
52 return self;52 return self;
53}53}
5454
55- (void)dealloc;
56{
57 [httpServer release];
58 [super dealloc];
59}
60
61- (void)handleRequest:(U1HTTPRequest*)request withCallback:(U1HTTPServerResponseCallback)callback;55- (void)handleRequest:(U1HTTPRequest*)request withCallback:(U1HTTPServerResponseCallback)callback;
62{56{
63 NSString *songId = [[request URL] path];57 NSString *songId = [[request URL] path];
@@ -78,7 +72,6 @@
78 [response setHTTPBodyStream:reader];72 [response setHTTPBodyStream:reader];
79 73
80 callback(response);74 callback(response);
81 [response release];
82}75}
8376
84- (NSRange)parsedRangeFromHeaderValue:(NSString*)rangeValue;77- (NSRange)parsedRangeFromHeaderValue:(NSString*)rangeValue;
8578
=== removed file 'utilities/UOSSOMusicCredsFetchOperation.h'
--- utilities/UOSSOMusicCredsFetchOperation.h 2011-07-11 17:20:23 +0000
+++ utilities/UOSSOMusicCredsFetchOperation.h 1970-01-01 00:00:00 +0000
@@ -1,24 +0,0 @@
1//
2// Copyright 2011 Canonical Ltd.
3//
4// This program is free software: you can redistribute it and/or modify it
5// under the terms of the GNU Affero General Public License version 3,
6// as published by the Free Software Foundation.
7//
8// This program is distributed in the hope that it will be useful, but
9// WITHOUT ANY WARRANTY; without even the implied warranties of
10// MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11// PURPOSE. See the GNU Affero General Public License for more details.
12//
13// You should have received a copy of the GNU Affero General Public License
14// along with this program. If not, see <http://www.gnu.org/licenses/>.
15
16#import <Foundation/Foundation.h>
17
18#import "UOHTTPFetchOperation.h"
19
20
21@interface UOSSOMusicCredsFetchOperation : UOHTTPFetchOperation
22@property (readonly, copy) NSString *username;
23@property (readonly, copy) NSString *password;
24@end
250
=== removed file 'utilities/UOSSOMusicCredsFetchOperation.m'
--- utilities/UOSSOMusicCredsFetchOperation.m 2011-07-13 17:59:26 +0000
+++ utilities/UOSSOMusicCredsFetchOperation.m 1970-01-01 00:00:00 +0000
@@ -1,57 +0,0 @@
1//
2// Copyright 2011 Canonical Ltd.
3//
4// This program is free software: you can redistribute it and/or modify it
5// under the terms of the GNU Affero General Public License version 3,
6// as published by the Free Software Foundation.
7//
8// This program is distributed in the hope that it will be useful, but
9// WITHOUT ANY WARRANTY; without even the implied warranties of
10// MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11// PURPOSE. See the GNU Affero General Public License for more details.
12//
13// You should have received a copy of the GNU Affero General Public License
14// along with this program. If not, see <http://www.gnu.org/licenses/>.
15
16#import "UOSSOMusicCredsFetchOperation.h"
17
18#import "URLQueryStringParser.h"
19
20
21@interface UOSSOMusicCredsFetchOperation ()
22@property (copy) NSString *username;
23@property (copy) NSString *password;
24@end
25
26
27@implementation UOSSOMusicCredsFetchOperation
28
29@synthesize username, password;
30
31- (void)dealloc;
32{
33 [username release];
34 [password release];
35 [super dealloc];
36}
37
38- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response;
39{
40 // haven't sent a request yet
41 if (response == nil)
42 return request;
43
44 if ([[[request URL] scheme] isEqualToString:@"x-ubuntuone-music"])
45 {
46 URLQueryStringParser *queryParser = [[[URLQueryStringParser alloc] initWithURL:[request URL]] autorelease];
47 self.username = [queryParser queryStringValueForKey:@"u"];
48 self.password = [queryParser queryStringValueForKey:@"p"];
49
50// [connection cancel];
51// [self finish];
52// return nil;
53 }
54 return nil;
55}
56
57@end
580
=== modified file 'utilities/operations/AlbumArtLoader.h'
--- utilities/operations/AlbumArtLoader.h 2012-07-05 17:19:56 +0000
+++ utilities/operations/AlbumArtLoader.h 2012-09-19 03:34:23 +0000
@@ -29,8 +29,6 @@
2929
30@interface AlbumArtLoader : NSObject <AlbumArtDownloadOperationDelegate>30@interface AlbumArtLoader : NSObject <AlbumArtDownloadOperationDelegate>
31{31{
32 id<AlbumArtLoaderDelegate> delegate;
33 int imageSize;
34 NSMutableSet *downloadedURLs;32 NSMutableSet *downloadedURLs;
35 NSMutableDictionary *downloadCache;33 NSMutableDictionary *downloadCache;
36 NSOperationQueue *downloadQueue;34 NSOperationQueue *downloadQueue;
3735
=== modified file 'utilities/operations/AlbumArtLoader.m'
--- utilities/operations/AlbumArtLoader.m 2012-07-05 17:19:56 +0000
+++ utilities/operations/AlbumArtLoader.m 2012-09-19 03:34:23 +0000
@@ -53,15 +53,6 @@
53 return self;53 return self;
54}54}
5555
56- (void)dealloc
57{
58 [downloadCache release];
59 [downloadedURLs release];
60 [downloadQueue release];
61
62 [super dealloc];
63}
64
65#pragma mark -56#pragma mark -
66#pragma mark Public Methods57#pragma mark Public Methods
6758
@@ -127,7 +118,6 @@
127 AlbumArtDownloadOperation *operation = [[AlbumArtDownloadOperation alloc] initWithArtId:artId URL:url];118 AlbumArtDownloadOperation *operation = [[AlbumArtDownloadOperation alloc] initWithArtId:artId URL:url];
128 operation.delegate = self;119 operation.delegate = self;
129 [downloadQueue addOperation:operation];120 [downloadQueue addOperation:operation];
130 [operation release];
131 }121 }
132 }122 }
133}123}
134124
=== removed file 'utilities/operations/UOJSONFetchOperation.h'
--- utilities/operations/UOJSONFetchOperation.h 2011-07-11 01:34:54 +0000
+++ utilities/operations/UOJSONFetchOperation.h 1970-01-01 00:00:00 +0000
@@ -1,25 +0,0 @@
1//
2// Copyright 2011 Canonical Ltd.
3//
4// This program is free software: you can redistribute it and/or modify it
5// under the terms of the GNU Affero General Public License version 3,
6// as published by the Free Software Foundation.
7//
8// This program is distributed in the hope that it will be useful, but
9// WITHOUT ANY WARRANTY; without even the implied warranties of
10// MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11// PURPOSE. See the GNU Affero General Public License for more details.
12//
13// You should have received a copy of the GNU Affero General Public License
14// along with this program. If not, see <http://www.gnu.org/licenses/>.
15
16#import <Foundation/Foundation.h>
17
18#import "AbstractNetworkOperation.h"
19
20
21@interface UOJSONFetchOperation : AbstractNetworkOperation
22
23+ (UOJSONFetchOperation*)jsonOperationWithRequest:(NSURLRequest*)request action:(void(^)(NSObject *jsonResult, NSError *error))action;
24
25@end
260
=== removed file 'utilities/operations/UOJSONFetchOperation.m'
--- utilities/operations/UOJSONFetchOperation.m 2012-08-27 22:35:20 +0000
+++ utilities/operations/UOJSONFetchOperation.m 1970-01-01 00:00:00 +0000
@@ -1,80 +0,0 @@
1//
2// Copyright 2011 Canonical Ltd.
3//
4// This program is free software: you can redistribute it and/or modify it
5// under the terms of the GNU Affero General Public License version 3,
6// as published by the Free Software Foundation.
7//
8// This program is distributed in the hope that it will be useful, but
9// WITHOUT ANY WARRANTY; without even the implied warranties of
10// MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11// PURPOSE. See the GNU Affero General Public License for more details.
12//
13// You should have received a copy of the GNU Affero General Public License
14// along with this program. If not, see <http://www.gnu.org/licenses/>.
15
16#import "UOJSONFetchOperation.h"
17
18@interface UOJSONFetchOperation ()
19@property (copy) void (^action)(NSObject *, NSError *);
20@property (retain) NSMutableData *jsonData;
21@end
22
23
24@implementation UOJSONFetchOperation
25
26@synthesize action, jsonData;
27
28+ (UOJSONFetchOperation*)jsonOperationWithRequest:(NSURLRequest*)request action:(void(^)(NSObject *jsonResult, NSError *error))action;
29{
30 NSParameterAssert(action != nil);
31
32 UOJSONFetchOperation *operation = [[[UOJSONFetchOperation alloc] initWithRequest:request] autorelease];
33 operation.action = action;
34
35 return operation;
36}
37
38- (void)dealloc;
39{
40 [action release];
41 [jsonData release];
42 [super dealloc];
43}
44
45- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;
46{
47 [super connection:connection didReceiveResponse:response];
48 self.jsonData = [NSMutableData data];
49}
50
51- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
52{
53 [super connection:connection didReceiveData:data];
54 [self.jsonData appendData:data];
55}
56
57- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;
58{
59 [super connection:connection didFailWithError:error];
60 self.jsonData = nil;
61 self.action(nil, error);
62}
63
64- (void)connectionDidFinishLoading:(NSURLConnection *)connection;
65{
66 [super connectionDidFinishLoading:connection];
67 NSError *error = nil;
68 NSObject *jsonObject = nil;
69 if (self.statusCode == 200)
70 {
71 jsonObject = [NSJSONSerialization JSONObjectWithData:self.jsonData options:0 error:&error];
72 }
73 else
74 {
75 error = [NSError errorWithDomain:@"UOJSONFetchOperationErrorDomain" code:self.statusCode userInfo:nil];
76 }
77 self.action(jsonObject, error);
78}
79
80@end
810
=== modified file 'view_controllers/PullRefreshTableViewController.h'
--- view_controllers/PullRefreshTableViewController.h 2010-09-30 21:09:34 +0000
+++ view_controllers/PullRefreshTableViewController.h 2012-09-19 03:34:23 +0000
@@ -31,15 +31,8 @@
3131
3232
33@interface PullRefreshTableViewController : UITableViewController {33@interface PullRefreshTableViewController : UITableViewController {
34 UIView *refreshHeaderView;
35 UILabel *refreshLabel;
36 UIImageView *refreshArrow;
37 UIActivityIndicatorView *refreshSpinner;
38 BOOL isDragging;34 BOOL isDragging;
39 BOOL isLoading;35 BOOL isLoading;
40 NSString *textPull;
41 NSString *textRelease;
42 NSString *textLoading;
43}36}
4437
45@property (nonatomic, retain) UIView *refreshHeaderView;38@property (nonatomic, retain) UIView *refreshHeaderView;
4639
=== modified file 'view_controllers/PullRefreshTableViewController.m'
--- view_controllers/PullRefreshTableViewController.m 2010-09-30 21:09:34 +0000
+++ view_controllers/PullRefreshTableViewController.m 2012-09-19 03:34:23 +0000
@@ -149,15 +149,4 @@
149 [self performSelector:@selector(stopLoading) withObject:nil afterDelay:2.0];149 [self performSelector:@selector(stopLoading) withObject:nil afterDelay:2.0];
150}150}
151151
152- (void)dealloc {
153 [refreshHeaderView release];
154 [refreshLabel release];
155 [refreshArrow release];
156 [refreshSpinner release];
157 [textPull release];
158 [textRelease release];
159 [textLoading release];
160 [super dealloc];
161}
162
163@end152@end
164153
=== modified file 'view_controllers/SettingsViewController.m'
--- view_controllers/SettingsViewController.m 2012-02-16 17:58:53 +0000
+++ view_controllers/SettingsViewController.m 2012-09-19 03:34:23 +0000
@@ -36,6 +36,7 @@
36#import "U1CacheFileManager.h"36#import "U1CacheFileManager.h"
37#import "UIAlertView+Blocks.h"37#import "UIAlertView+Blocks.h"
38#import "RIButtonItem.h"38#import "RIButtonItem.h"
39#import "UOAuthManager.h"
3940
40@interface SettingsViewController (Private)41@interface SettingsViewController (Private)
41- (void)_clearDatabaseFile:(id)sender;42- (void)_clearDatabaseFile:(id)sender;
@@ -254,7 +255,7 @@
254 {255 {
255 if ([Subsonic sharedSubsonic].hasCredentials)256 if ([Subsonic sharedSubsonic].hasCredentials)
256 {257 {
257 [[Subsonic sharedSubsonic] removeCredentials];258 [[UOAuthManager sharedAuthManager] clearSubsonicCredentials];
258 [self clearAllCaches:nil];259 [self clearAllCaches:nil];
259 [[NSNotificationCenter defaultCenter] postNotificationName:NOTIF_removeCachedContent object:nil];260 [[NSNotificationCenter defaultCenter] postNotificationName:NOTIF_removeCachedContent object:nil];
260 [[NSNotificationCenter defaultCenter] postNotificationName:NOTIF_reloadAccountCredentials object:nil];261 [[NSNotificationCenter defaultCenter] postNotificationName:NOTIF_reloadAccountCredentials object:nil];
261262
=== modified file 'view_controllers/SubsonicIndexedTableViewController.m'
--- view_controllers/SubsonicIndexedTableViewController.m 2011-06-22 16:06:39 +0000
+++ view_controllers/SubsonicIndexedTableViewController.m 2012-09-19 03:34:23 +0000
@@ -39,8 +39,6 @@
39 self.indexes = NULL;39 self.indexes = NULL;
40 self.groupedTableData = NULL;40 self.groupedTableData = NULL;
41 [[NSNotificationCenter defaultCenter] removeObserver:self];41 [[NSNotificationCenter defaultCenter] removeObserver:self];
42
43 [super dealloc];
44}42}
4543
46- (void)viewDidUnload44- (void)viewDidUnload
4745
=== modified file 'view_controllers/SubsonicTableViewController.h'
--- view_controllers/SubsonicTableViewController.h 2011-06-21 18:23:09 +0000
+++ view_controllers/SubsonicTableViewController.h 2012-09-19 03:34:23 +0000
@@ -30,7 +30,7 @@
30 NSTimer *respondToRemoteTimer;30 NSTimer *respondToRemoteTimer;
31 NSMutableArray *tableData;31 NSMutableArray *tableData;
32 NSMutableArray *searchResults;32 NSMutableArray *searchResults;
33 id <NSXMLParserDelegate> parserDelegate;33 __unsafe_unretained id <NSXMLParserDelegate> parserDelegate;
34 NSString *viewName;34 NSString *viewName;
35 35
36@protected36@protected
3737
=== modified file 'view_controllers/SubsonicTableViewController.m'
--- view_controllers/SubsonicTableViewController.m 2011-11-05 00:42:21 +0000
+++ view_controllers/SubsonicTableViewController.m 2012-09-19 03:34:23 +0000
@@ -83,10 +83,10 @@
83 83
84 if ([StreamingPlayer sharedStreamingPlayer].streamer)84 if ([StreamingPlayer sharedStreamingPlayer].streamer)
85 {85 {
86 self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Now Playing",@"")86 self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Now Playing",@"")
87 style:UIBarButtonItemStyleBordered87 style:UIBarButtonItemStyleBordered
88 target:self88 target:self
89 action:@selector(nowPlayingAction:)] autorelease];89 action:@selector(nowPlayingAction:)];
90 }90 }
91 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];91 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
92 [self updateReachability:[[Subsonic sharedSubsonic] reachability]];92 [self updateReachability:[[Subsonic sharedSubsonic] reachability]];
@@ -184,7 +184,7 @@
184184
185- (void)respondToRemoteControl:(NSTimer*)timer185- (void)respondToRemoteControl:(NSTimer*)timer
186{186{
187 UIEvent *event = [[timer userInfo] retain];187 UIEvent *event = [timer userInfo];
188 188
189 switch (event.subtype)189 switch (event.subtype)
190 {190 {
@@ -213,7 +213,6 @@
213 213
214 [respondToRemoteTimer invalidate];214 [respondToRemoteTimer invalidate];
215 respondToRemoteTimer = nil;215 respondToRemoteTimer = nil;
216 [event release];
217}216}
218217
219#pragma mark - Alert handling218#pragma mark - Alert handling
@@ -268,8 +267,6 @@
268267
269- (void)beginLoadingRemoteData:(NSString*)force268- (void)beginLoadingRemoteData:(NSString*)force
270{269{
271 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
272
273 NSURL *url = [[Subsonic sharedSubsonic] getMetadataURL:self.viewName];270 NSURL *url = [[Subsonic sharedSubsonic] getMetadataURL:self.viewName];
274 NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url];271 NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url];
275 272
@@ -279,12 +276,9 @@
279 {276 {
280 [self performSelectorOnMainThread:@selector(failedLoadingData:) withObject:[xmlParser parserError] waitUntilDone:NO];277 [self performSelectorOnMainThread:@selector(failedLoadingData:) withObject:[xmlParser parserError] waitUntilDone:NO];
281 }278 }
282
283 [xmlParser release];
284 279
285 [self performSelectorOnMainThread:@selector(loadLocalData) withObject:nil waitUntilDone:NO];280 [self performSelectorOnMainThread:@selector(loadLocalData) withObject:nil waitUntilDone:NO];
286 [self performSelectorOnMainThread:@selector(finishLoadingData) withObject:nil waitUntilDone:NO];281 [self performSelectorOnMainThread:@selector(finishLoadingData) withObject:nil waitUntilDone:NO];
287 [pool release];
288} 282}
289283
290- (void)finishLoadingData284- (void)finishLoadingData
@@ -312,7 +306,6 @@
312 [StreamingPlayer sharedStreamingPlayer].isNewSong = NO;306 [StreamingPlayer sharedStreamingPlayer].isNewSong = NO;
313 SongViewController *streamingPlayerViewController = [[SongViewController alloc] initWithNibName:@"SongViewController" bundle:nil];307 SongViewController *streamingPlayerViewController = [[SongViewController alloc] initWithNibName:@"SongViewController" bundle:nil];
314 [self.navigationController pushViewController:streamingPlayerViewController animated:YES];308 [self.navigationController pushViewController:streamingPlayerViewController animated:YES];
315 [streamingPlayerViewController release];
316 }309 }
317}310}
318311
@@ -347,8 +340,7 @@
347 [StreamingPlayer sharedStreamingPlayer].isNewSong = YES;340 [StreamingPlayer sharedStreamingPlayer].isNewSong = YES;
348 [StreamingPlayer sharedStreamingPlayer].isShuffle = NO;341 [StreamingPlayer sharedStreamingPlayer].isShuffle = NO;
349 342
350 SongViewController *streamingPlayerViewController = [[[SongViewController alloc]343 SongViewController *streamingPlayerViewController = [[SongViewController alloc] initWithNibName:@"SongViewController" bundle:nil];
351 initWithNibName:@"SongViewController" bundle:nil] autorelease];
352 344
353 [self.navigationController pushViewController:streamingPlayerViewController animated:YES];345 [self.navigationController pushViewController:streamingPlayerViewController animated:YES];
354 346
@@ -364,7 +356,7 @@
364356
365- (void)showMessage:(NSString*)message withTitle:(NSString*)title357- (void)showMessage:(NSString*)message withTitle:(NSString*)title
366{358{
367 UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease];359 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
368 [alert show];360 [alert show];
369}361}
370362
@@ -406,7 +398,6 @@
406398
407- (void)viewDidUnload399- (void)viewDidUnload
408{400{
409 RELEASE_SAFELY(searchResults);
410 [super viewDidUnload];401 [super viewDidUnload];
411}402}
412403
@@ -414,12 +405,6 @@
414- (void)dealloc405- (void)dealloc
415{406{
416 [[NSNotificationCenter defaultCenter] removeObserver:self];407 [[NSNotificationCenter defaultCenter] removeObserver:self];
417 RELEASE_SAFELY(parserDelegate);
418 RELEASE_SAFELY(viewName);
419 RELEASE_SAFELY(tableData);
420 RELEASE_SAFELY(searchResults);
421
422 [super dealloc];
423}408}
424409
425#pragma mark - UISearchDisplayController Delegate Methods410#pragma mark - UISearchDisplayController Delegate Methods
426411
=== modified file 'view_controllers/SubsonicViewController.m'
--- view_controllers/SubsonicViewController.m 2011-06-18 02:04:11 +0000
+++ view_controllers/SubsonicViewController.m 2012-09-19 03:34:23 +0000
@@ -97,10 +97,4 @@
97 }97 }
98}98}
9999
100- (void)dealloc
101{
102 RELEASE_SAFELY(remoteLock);
103 [super dealloc];
104}
105
106@end100@end
107101
=== modified file 'view_controllers/U1MigrationViewController.m'
--- view_controllers/U1MigrationViewController.m 2012-08-28 20:52:02 +0000
+++ view_controllers/U1MigrationViewController.m 2012-09-19 03:34:23 +0000
@@ -13,9 +13,6 @@
1313
14@interface U1MigrationViewController ()14@interface U1MigrationViewController ()
15@property (copy) void (^completionBlock)();15@property (copy) void (^completionBlock)();
16
17- (void)migrateOldCache;
18- (void)complete;
19@end16@end
2017
21@implementation U1MigrationViewController18@implementation U1MigrationViewController
@@ -57,16 +54,10 @@
57 {54 {
58 [fileManager moveItemAtPath:oldAlbumArtCachePath toPath:[CachedAlbumArtDirectory() path] error:NULL];55 [fileManager moveItemAtPath:oldAlbumArtCachePath toPath:[CachedAlbumArtDirectory() path] error:NULL];
59 }56 }
60 [fileManager release];
61}57}
6258
63#pragma mark - View lifecycle59#pragma mark - View lifecycle
6460
65- (void)viewDidLoad
66{
67 [super viewDidLoad];
68}
69
70- (void)viewDidAppear:(BOOL)animated;61- (void)viewDidAppear:(BOOL)animated;
71{62{
72 [self.spinner startAnimating];63 [self.spinner startAnimating];
7364
=== modified file 'view_controllers/U1MigrationViewController.xib'
--- view_controllers/U1MigrationViewController.xib 2012-02-16 17:09:14 +0000
+++ view_controllers/U1MigrationViewController.xib 2012-09-19 03:34:23 +0000
@@ -1,20 +1,20 @@
1<?xml version="1.0" encoding="UTF-8"?>1<?xml version="1.0" encoding="UTF-8"?>
2<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">2<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
3 <data>3 <data>
4 <int key="IBDocument.SystemTarget">1280</int>4 <int key="IBDocument.SystemTarget">1296</int>
5 <string key="IBDocument.SystemVersion">10K549</string>5 <string key="IBDocument.SystemVersion">12B19</string>
6 <string key="IBDocument.InterfaceBuilderVersion">1938</string>6 <string key="IBDocument.InterfaceBuilderVersion">2549</string>
7 <string key="IBDocument.AppKitVersion">1038.36</string>7 <string key="IBDocument.AppKitVersion">1187</string>
8 <string key="IBDocument.HIToolboxVersion">461.00</string>8 <string key="IBDocument.HIToolboxVersion">624.00</string>
9 <object class="NSMutableDictionary" key="IBDocument.PluginVersions">9 <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
10 <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>10 <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
11 <string key="NS.object.0">933</string>11 <string key="NS.object.0">1498</string>
12 </object>12 </object>
13 <array key="IBDocument.IntegratedClassDependencies">13 <array key="IBDocument.IntegratedClassDependencies">
14 <string>IBProxyObject</string>
14 <string>IBUIActivityIndicatorView</string>15 <string>IBUIActivityIndicatorView</string>
16 <string>IBUILabel</string>
15 <string>IBUIView</string>17 <string>IBUIView</string>
16 <string>IBUILabel</string>
17 <string>IBProxyObject</string>
18 </array>18 </array>
19 <array key="IBDocument.PluginDependencies">19 <array key="IBDocument.PluginDependencies">
20 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>20 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@@ -42,6 +42,7 @@
42 <string key="NSFrame">{{150, 234}, {20, 20}}</string>42 <string key="NSFrame">{{150, 234}, {20, 20}}</string>
43 <reference key="NSSuperview" ref="191373211"/>43 <reference key="NSSuperview" ref="191373211"/>
44 <reference key="NSWindow"/>44 <reference key="NSWindow"/>
45 <reference key="NSNextKeyView"/>
45 <bool key="IBUIOpaque">NO</bool>46 <bool key="IBUIOpaque">NO</bool>
46 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>47 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
47 <bool key="IBUIHidesWhenStopped">NO</bool>48 <bool key="IBUIHidesWhenStopped">NO</bool>
@@ -53,6 +54,7 @@
53 <string key="NSFrame">{{124, 191}, {89, 21}}</string>54 <string key="NSFrame">{{124, 191}, {89, 21}}</string>
54 <reference key="NSSuperview" ref="191373211"/>55 <reference key="NSSuperview" ref="191373211"/>
55 <reference key="NSWindow"/>56 <reference key="NSWindow"/>
57 <reference key="NSNextKeyView" ref="62664637"/>
56 <bool key="IBUIOpaque">NO</bool>58 <bool key="IBUIOpaque">NO</bool>
57 <bool key="IBUIClipsSubviews">YES</bool>59 <bool key="IBUIClipsSubviews">YES</bool>
58 <int key="IBUIContentMode">7</int>60 <int key="IBUIContentMode">7</int>
@@ -60,8 +62,11 @@
60 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>62 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
61 <string key="IBUIText">Migrating…</string>63 <string key="IBUIText">Migrating…</string>
62 <object class="NSColor" key="IBUITextColor">64 <object class="NSColor" key="IBUITextColor">
63 <int key="NSColorSpace">1</int>65 <int key="NSColorSpace">3</int>
64 <bytes key="NSRGB">MCAwIDAAA</bytes>66 <bytes key="NSWhite">MQA</bytes>
67 <object class="NSColorSpace" key="NSCustomColorSpace">
68 <int key="NSID">2</int>
69 </object>
65 </object>70 </object>
66 <nil key="IBUIHighlightedColor"/>71 <nil key="IBUIHighlightedColor"/>
67 <int key="IBUIBaselineAdjustment">1</int>72 <int key="IBUIBaselineAdjustment">1</int>
@@ -80,12 +85,10 @@
80 <string key="NSFrame">{{0, 20}, {320, 460}}</string>85 <string key="NSFrame">{{0, 20}, {320, 460}}</string>
81 <reference key="NSSuperview"/>86 <reference key="NSSuperview"/>
82 <reference key="NSWindow"/>87 <reference key="NSWindow"/>
88 <reference key="NSNextKeyView" ref="672147677"/>
83 <object class="NSColor" key="IBUIBackgroundColor">89 <object class="NSColor" key="IBUIBackgroundColor">
84 <int key="NSColorSpace">3</int>90 <int key="NSColorSpace">1</int>
85 <bytes key="NSWhite">MQA</bytes>91 <bytes key="NSRGB">MSAwLjUgMAA</bytes>
86 <object class="NSColorSpace" key="NSCustomColorSpace">
87 <int key="NSID">2</int>
88 </object>
89 </object>92 </object>
90 <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>93 <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
91 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>94 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@@ -190,8 +193,12 @@
190 </object>193 </object>
191 <int key="IBDocument.localizationMode">0</int>194 <int key="IBDocument.localizationMode">0</int>
192 <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>195 <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
196 <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
197 <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
198 <real value="1296" key="NS.object.0"/>
199 </object>
193 <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>200 <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
194 <int key="IBDocument.defaultPropertyAccessControl">3</int>201 <int key="IBDocument.defaultPropertyAccessControl">3</int>
195 <string key="IBCocoaTouchPluginVersion">933</string>202 <string key="IBCocoaTouchPluginVersion">1498</string>
196 </data>203 </data>
197</archive>204</archive>
198205
=== modified file 'view_controllers/UOMusicLoginController.m'
--- view_controllers/UOMusicLoginController.m 2012-08-27 22:59:41 +0000
+++ view_controllers/UOMusicLoginController.m 2012-09-19 03:34:23 +0000
@@ -14,40 +14,20 @@
14// along with this program. If not, see <http://www.gnu.org/licenses/>.14// along with this program. If not, see <http://www.gnu.org/licenses/>.
1515
16#import "UOMusicLoginController.h"16#import "UOMusicLoginController.h"
17
18#import "OAuthConsumer.h"
19#import "NSString+Extras.h"
20
21#import "Subsonic.h"
22#import "UOHTTPFetchOperation.h"
23#import "UOJSONFetchOperation.h"
24#import "UOSSOCredentialsViewController.h"17#import "UOSSOCredentialsViewController.h"
25#import "UOSSOMusicCredsFetchOperation.h"18
2619#import "UOAuthManager.h"
27
28static NSString *const UOSingleSignOnBaseURL = @"https://login.ubuntu.com/api/1.0/";
29
30static NSString *UOSSOEncodedStringFromParametersDictionary(NSDictionary *arguments);
31
32
33@interface UOMusicLoginController ()
34@property (retain) UIViewController *loginViewController;
35@property (retain) NSOperationQueue *operationQueue;
36- (void)loginWithUsername:(NSString*)username password:(NSString*)password;
37- (void)handleError:(NSError*)error;
38@end
39
4020
41@implementation UOMusicLoginController21@implementation UOMusicLoginController
4222
43@synthesize delegate, loginViewController, operationQueue;23@synthesize delegate, loginViewController;
4424
45- (id)init;25- (id)init;
46{26{
47 if (!(self = [super init]))27 if (!(self = [super init]))
48 return nil;28 return nil;
49 29
50 UOSSOCredentialsViewController *rootController = [[[UOSSOCredentialsViewController alloc] initWithNibName:@"UOSSOCredentialsViewController" bundle:nil] autorelease];30 UOSSOCredentialsViewController *rootController = [[UOSSOCredentialsViewController alloc] initWithNibName:@"UOSSOCredentialsViewController" bundle:nil];
51 31
52 __block id this = self;32 __block id this = self;
53 rootController.loginAction = ^ (NSString *username, NSString *password)33 rootController.loginAction = ^ (NSString *username, NSString *password)
@@ -60,123 +40,52 @@
60 navController.navigationBarHidden = YES;40 navController.navigationBarHidden = YES;
61 loginViewController = navController;41 loginViewController = navController;
62 42
63 operationQueue = [[NSOperationQueue alloc] init];
64
65 return self;43 return self;
66}44}
6745
68- (void)dealloc46- (void)dealloc
69{47{
70 delegate = nil;48 delegate = nil;
71 [loginViewController release];
72 [operationQueue release];
73 [super dealloc];
74}49}
7550
76- (void)loginWithUsername:(NSString*)username password:(NSString*)password;51- (void)loginWithUsername:(NSString*)username password:(NSString*)password;
77{52{
78 // - show login spinner53 [self.loginViewController.view setUserInteractionEnabled:NO];
79 [self.loginViewController.view setUserInteractionEnabled:NO];54
80 55 UOAuthManager *authManager = [UOAuthManager sharedAuthManager];
81 // 1. get/create U1 oauth token56 id completionBlock = ^(){
82 NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:57 id subsonicCompletionBlock = ^(NSString *username) {
83 @"authenticate", @"ws.op",58 [self.delegate loginControllerDidLoginWithUsername:username];
84 @"Ubuntu One @ iOS", @"token_name",59 };
85 nil];60 id subsonicErrorBlock = ^(NSError *error) {
86 NSString * paramsString = UOSSOEncodedStringFromParametersDictionary(params);61 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Ubuntu One", nil) message:[error localizedDescription] delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
87 62 [alert show];
88 NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@authentications?%@", UOSingleSignOnBaseURL, paramsString]];63 [self.loginViewController.view setUserInteractionEnabled:YES];
89 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];64 UOSSOCredentialsViewController *loginController = (id)[(UINavigationController*)[self loginViewController] topViewController];
90 [request setHTTPMethod:@"GET"];65 [loginController reset];
91 66 };
92 NSURLCredential *credential = [NSURLCredential credentialWithUser:username password:password persistence:NSURLCredentialPersistenceNone];67 [authManager fetchSubsonicCredentials:subsonicCompletionBlock errorBlock:subsonicErrorBlock];
93 UOJSONFetchOperation *jsonOperation = [UOJSONFetchOperation jsonOperationWithRequest:request action:^(NSObject *jsonResult, NSError *error) {68 };
94 69 id errorBlock = ^(NSError *error) {
95 // 2. import the new token into Ubuntu One70 NSString *errorMessage = nil;[error localizedDescription];
96 NSDictionary *oauthResponse = (id)jsonResult;71 switch (error.code) {
97 72 case 401:
98 if (error)73 errorMessage = NSLocalizedString(@"Incorrect username or password.", nil);
99 {74 break;
100 [self handleError:error];75 default:
101 return;76 errorMessage = [error localizedDescription];
102 }77 if (errorMessage == nil) {
103 78 errorMessage = NSLocalizedString(@"An error occured trying to sign in, please try again.", @"Login Error Message");
104 NSString *encodedUsername = [username urlParameterEncodedString];79 }
105 NSURL *u1TokenURL = [NSURL URLWithString:[NSString stringWithFormat:@"https://one.ubuntu.com/oauth/sso-finished-so-get-tokens/%@", encodedUsername]];80 break;
106 81 }
107 OAConsumer *consumer = [[[OAConsumer alloc] initWithKey:[oauthResponse objectForKey:@"consumer_key"] secret:[oauthResponse objectForKey:@"consumer_secret"]] autorelease];82 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Ubuntu One", nil) message:errorMessage delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
108 OAToken *token = [[[OAToken alloc] initWithKey:[oauthResponse objectForKey:@"token"] secret:[oauthResponse objectForKey:@"token_secret"]] autorelease];83 [alert show];
109 OAPlaintextSignatureProvider *signatureProvider = [[[OAPlaintextSignatureProvider alloc] init] autorelease];84 [self.loginViewController.view setUserInteractionEnabled:YES];
110 OAMutableURLRequest *oauthRequest = [[[OAMutableURLRequest alloc] initWithURL:u1TokenURL consumer:consumer token:token realm:nil signatureProvider:signatureProvider] autorelease];85 UOSSOCredentialsViewController *loginController = (id)[(UINavigationController*)[self loginViewController] topViewController];
111 [oauthRequest prepare];86 [loginController reset];
112 UOHTTPFetchOperation *tokenOperation = [UOHTTPFetchOperation httpOperationWithRequest:oauthRequest action:^(NSString *responseBody, NSError *error) {87 };
113 88 [authManager loginWithUsername:username andPassword:password completionBlock:completionBlock errorBlock:errorBlock];
114 // 3. Get the phone creds using the new token
115
116 if (error)
117 {
118 [self handleError:error];
119 return;
120 }
121
122 NSURL *credsURL = [NSURL URLWithString:@"https://one.ubuntu.com/phones/creds/ios?scheme=x-ubuntuone-music"];
123 OAMutableURLRequest *credsRequest = [[[OAMutableURLRequest alloc] initWithURL:credsURL consumer:consumer token:token realm:nil signatureProvider:signatureProvider] autorelease];
124 [credsRequest setHTTPMethod:@"GET"];
125 [credsRequest prepare];
126 __block UOSSOMusicCredsFetchOperation *credsOperation = nil;
127 credsOperation = (id)[UOSSOMusicCredsFetchOperation httpOperationWithRequest:credsRequest action:^(NSString *responseBody, NSError *error) {
128
129 if (error)
130 {
131 [self handleError:error];
132 return;
133 }
134
135 NSString *musicUsername = credsOperation.username;
136 NSString *musicPassword = credsOperation.password;
137
138 if (musicUsername && musicPassword)
139 {
140 [[Subsonic sharedSubsonic] storeUsername:musicUsername password:musicPassword];
141 [self.delegate loginControllerDidLoginWithUsername:musicUsername];
142 }
143 else
144 {
145 NSString *subscriptionRequiredMessage = NSLocalizedString(@"You need an Ubuntu One Music Streaming account to use this app.", nil);
146 NSError *error = [NSError errorWithDomain:@"UOMusicLoginControllerErrorDomain"
147 code:-1
148 userInfo:[NSDictionary dictionaryWithObjectsAndKeys:
149 subscriptionRequiredMessage, NSLocalizedDescriptionKey,
150 nil]];
151 [self handleError:error];
152 }
153
154 [self.loginViewController.view setUserInteractionEnabled:YES];
155 }];
156 [self.operationQueue addOperation:credsOperation];
157
158 }];
159 [self.operationQueue addOperation:tokenOperation];
160
161 }];
162 jsonOperation.credential = credential;
163 [self.operationQueue addOperation:jsonOperation];
164}
165
166- (void)handleError:(NSError*)error;
167{
168 NSString *errorMessage = [error localizedDescription];
169 if ([error code] == 401)
170 errorMessage = NSLocalizedString(@"Incorrect username or password.", nil);
171 else if (errorMessage == nil)
172 errorMessage = NSLocalizedString(@"An error occured trying to sign in, please try again.", @"Login Error Message");
173
174 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Ubuntu One", nil) message:errorMessage delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
175 [alert show];
176 [alert release];
177 [self.loginViewController.view setUserInteractionEnabled:YES];
178 UOSSOCredentialsViewController *loginController = (id)[(UINavigationController*)[self loginViewController] topViewController];
179 [loginController reset];
180}89}
18190
182@end91@end
18392
=== modified file 'view_controllers/UOSSOCredentialsViewController.h'
--- view_controllers/UOSSOCredentialsViewController.h 2011-07-11 21:22:24 +0000
+++ view_controllers/UOSSOCredentialsViewController.h 2012-09-19 03:34:23 +0000
@@ -17,13 +17,6 @@
1717
1818
19@interface UOSSOCredentialsViewController : UIViewController <UITextFieldDelegate>19@interface UOSSOCredentialsViewController : UIViewController <UITextFieldDelegate>
20{
21 UITextField *emailField;
22 UITextField *passwordField;
23 UIView *patternView;
24 UIActivityIndicatorView *spinner;
25 UIButton *loginButton;
26}
2720
28@property (nonatomic, retain) IBOutlet UITextField *emailField;21@property (nonatomic, retain) IBOutlet UITextField *emailField;
29@property (nonatomic, retain) IBOutlet UITextField *passwordField;22@property (nonatomic, retain) IBOutlet UITextField *passwordField;
3023
=== modified file 'view_controllers/UOSSOCredentialsViewController.m'
--- view_controllers/UOSSOCredentialsViewController.m 2011-07-13 01:16:11 +0000
+++ view_controllers/UOSSOCredentialsViewController.m 2012-09-19 03:34:23 +0000
@@ -25,17 +25,6 @@
25@synthesize loginButton;25@synthesize loginButton;
26@synthesize loginAction;26@synthesize loginAction;
2727
28- (void)dealloc;
29{
30 [emailField release];
31 [passwordField release];
32 [loginAction release];
33 [patternView release];
34 [loginButton release];
35 [spinner release];
36 [super dealloc];
37}
38
39- (void)viewDidUnload;28- (void)viewDidUnload;
40{29{
41 [self setEmailField:nil];30 [self setEmailField:nil];
@@ -51,12 +40,9 @@
51 [super viewDidLoad];40 [super viewDidLoad];
52 41
53 UIImage *backgroundImage = [UIImage imageNamed:@"header_bg"];42 UIImage *backgroundImage = [UIImage imageNamed:@"header_bg"];
54 UIColor *backgroundColor = [[[UIColor alloc] initWithPatternImage:backgroundImage] autorelease];43 UIColor *backgroundColor = [[UIColor alloc] initWithPatternImage:backgroundImage];
55 [self.patternView setBackgroundColor:backgroundColor];44 [self.patternView setBackgroundColor:backgroundColor];
56 [self.patternView setOpaque:NO];45 [self.patternView setOpaque:NO];
57 // The following should not be necessary but without it the pattern color is opaque...
58 // http://stackoverflow.com/questions/3899398/uicolor-colorwithpatternimage-alpha-blending-problem-solution-ios-sdk-4-1/5348396#5348396
59 [self.patternView.layer setOpaque:NO];
60}46}
6147
62- (IBAction)logIn:(id)sender;48- (IBAction)logIn:(id)sender;

Subscribers

People subscribed via source and target branches