diff --git a/GetHip.xcodeproj/project.pbxproj b/GetHip.xcodeproj/project.pbxproj index 339fd0c..e0ba121 100644 --- a/GetHip.xcodeproj/project.pbxproj +++ b/GetHip.xcodeproj/project.pbxproj @@ -7,8 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 3E0B78B91C6E3756001DF21E /* Pause-52.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E0B78B71C6E3756001DF21E /* Pause-52.png */; }; - 3E0B78BA1C6E3756001DF21E /* Play-52.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E0B78B81C6E3756001DF21E /* Play-52.png */; }; 3E101F061C52E5FD00C895CA /* MultipeerConnectivity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E101F051C52E5FD00C895CA /* MultipeerConnectivity.framework */; }; 3E101F081C52E65300C895CA /* PartyServiceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E101F071C52E65300C895CA /* PartyServiceManager.swift */; }; 3E101F0A1C52F14A00C895CA /* InviteFriendsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E101F091C52F14A00C895CA /* InviteFriendsView.swift */; }; @@ -24,13 +22,9 @@ 3E1DE9A81C3837E800CA6CD4 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E1DE9A71C3837E800CA6CD4 /* AudioToolbox.framework */; }; 3E1DE9AE1C38395F00CA6CD4 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E1DE9AD1C38395F00CA6CD4 /* SystemConfiguration.framework */; }; 3E1EE6391C6D02EB00F5C5D7 /* InPartyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1EE6381C6D02EB00F5C5D7 /* InPartyViewController.swift */; }; - 3E24F9FF1C5B51690091B9D9 /* Send@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E24F9FE1C5B51690091B9D9 /* Send@2x.png */; }; 3E326BCC1C51C20000F785CF /* SettingsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E326BCB1C51C20000F785CF /* SettingsTableViewController.swift */; }; 3E326BCE1C51C77600F785CF /* SettingsCellWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E326BCD1C51C77600F785CF /* SettingsCellWrapper.swift */; }; 3E330B1A1C38502F00276FE4 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E330B191C38502F00276FE4 /* LoginViewController.swift */; }; - 3E33EFDA1C5B56340011B9B5 /* Accept@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E33EFD71C5B56340011B9B5 /* Accept@2x.png */; }; - 3E33EFDB1C5B56340011B9B5 /* Cancel@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E33EFD81C5B56340011B9B5 /* Cancel@2x.png */; }; - 3E33EFDC1C5B56340011B9B5 /* No Friend Requests i5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E33EFD91C5B56340011B9B5 /* No Friend Requests i5@2x.png */; }; 3E3412571C54C31F006226E0 /* SongSelectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E3412561C54C31F006226E0 /* SongSelectionViewController.swift */; }; 3E3412591C54C6B7006226E0 /* SongCellWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E3412581C54C6B7006226E0 /* SongCellWrapper.swift */; }; 3E34125B1C54C73A006226E0 /* PartySession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E34125A1C54C73A006226E0 /* PartySession.swift */; }; @@ -47,20 +41,12 @@ 3E379F051C3F982900F7BCCD /* FriendsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E379F041C3F982900F7BCCD /* FriendsCell.swift */; }; 3E3B14DC1C5BBB3B001C437F /* PendingRequestViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E3B14DB1C5BBB3B001C437F /* PendingRequestViewController.swift */; }; 3E3B14DE1C5BCC9B001C437F /* FriendRequestViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E3B14DD1C5BCC9B001C437F /* FriendRequestViewController.swift */; }; - 3E4169491C385F1000B193AF /* 1x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E4169481C385F1000B193AF /* 1x.png */; }; 3E4169551C398A5B00B193AF /* SignUpViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E4169541C398A5B00B193AF /* SignUpViewController.swift */; }; 3E4169571C399C4D00B193AF /* Images-3.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3E4169561C399C4D00B193AF /* Images-3.xcassets */; }; 3E416EEE1C97BE31001EA319 /* NextUpViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E416EED1C97BE31001EA319 /* NextUpViewController.swift */; }; 3E41D74C1C8D17E100FFD846 /* icon-120.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E41D74B1C8D17E100FFD846 /* icon-120.png */; }; 3E41D74E1C8D17F300FFD846 /* Icon-60.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E41D74D1C8D17F300FFD846 /* Icon-60.png */; }; 3E438ADE1C572DFD0055C97A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3E438ADD1C572DFD0055C97A /* Main.storyboard */; }; - 3E438AE61C5738EF0055C97A /* Create@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E438AE11C5738EF0055C97A /* Create@2x.png */; }; - 3E438AE71C5738EF0055C97A /* Friends@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E438AE21C5738EF0055C97A /* Friends@2x.png */; }; - 3E438AE81C5738EF0055C97A /* Settings@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E438AE31C5738EF0055C97A /* Settings@2x.png */; }; - 3E438AE91C5738EF0055C97A /* Star@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E438AE41C5738EF0055C97A /* Star@2x.png */; }; - 3E438AEA1C5738EF0055C97A /* Turntable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E438AE51C5738EF0055C97A /* Turntable@2x.png */; }; - 3E43B8CF1C376F9F002F97A7 /* Logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E43B8CE1C376F9F002F97A7 /* Logo.png */; }; - 3E4AA5211C853E1A00746839 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E4AA5201C853E1A00746839 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png */; }; 3E4B86B31C95DAE700ECDFFA /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4B86B21C95DAE700ECDFFA /* Bolts.framework */; }; 3E4B86B51C95DE3300ECDFFA /* Parse.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4B86B41C95DE3300ECDFFA /* Parse.framework */; }; 3E4B86B71C95DE6300ECDFFA /* ParseFacebookUtilsV4.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4B86B61C95DE6300ECDFFA /* ParseFacebookUtilsV4.framework */; }; @@ -70,35 +56,8 @@ 3E50E0401C74B97300EB9EA9 /* BackToHomeScreenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E50E03F1C74B97300EB9EA9 /* BackToHomeScreenViewController.swift */; }; 3E5485B31C69A7DA00E7D5AB /* LoadingPartyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E5485B21C69A7DA00E7D5AB /* LoadingPartyViewController.swift */; }; 3E5485B51C69CE2F00E7D5AB /* InvitedCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E5485B41C69CE2F00E7D5AB /* InvitedCollectionViewCell.swift */; }; - 3E5952631C39DBC900C88C71 /* Friends.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E59525A1C39DBC900C88C71 /* Friends.png */; }; - 3E5952641C39DBC900C88C71 /* Friends@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E59525B1C39DBC900C88C71 /* Friends@2x.png */; }; - 3E5952651C39DBC900C88C71 /* Friends@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E59525C1C39DBC900C88C71 /* Friends@3x.png */; }; - 3E5952661C39DBC900C88C71 /* Settings.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E59525D1C39DBC900C88C71 /* Settings.png */; }; - 3E5952671C39DBC900C88C71 /* Settings@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E59525E1C39DBC900C88C71 /* Settings@2x.png */; }; - 3E5952681C39DBC900C88C71 /* Settings@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E59525F1C39DBC900C88C71 /* Settings@3x.png */; }; - 3E5952691C39DBC900C88C71 /* Star.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5952601C39DBC900C88C71 /* Star.png */; }; - 3E59526A1C39DBC900C88C71 /* Star@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5952611C39DBC900C88C71 /* Star@2x.png */; }; - 3E59526B1C39DBC900C88C71 /* Star@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5952621C39DBC900C88C71 /* Star@3x.png */; }; - 3E59526F1C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E59526C1C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2.png */; }; - 3E5952701C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E59526D1C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png */; }; - 3E5952711C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E59526E1C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@3x.png */; }; - 3E59527B1C39DDA800C88C71 /* Create.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5952721C39DDA800C88C71 /* Create.png */; }; - 3E59527C1C39DDA800C88C71 /* Create@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5952731C39DDA800C88C71 /* Create@2x.png */; }; - 3E59527D1C39DDA800C88C71 /* Create@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5952741C39DDA800C88C71 /* Create@3x.png */; }; - 3E59527E1C39DDA800C88C71 /* Group.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5952751C39DDA800C88C71 /* Group.png */; }; - 3E59527F1C39DDA800C88C71 /* Group@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5952761C39DDA800C88C71 /* Group@2x.png */; }; - 3E5952801C39DDA800C88C71 /* Group@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5952771C39DDA800C88C71 /* Group@3x.png */; }; - 3E5952811C39DDA800C88C71 /* Settings.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5952781C39DDA800C88C71 /* Settings.png */; }; - 3E5952821C39DDA800C88C71 /* Settings@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5952791C39DDA800C88C71 /* Settings@2x.png */; }; - 3E5952831C39DDA800C88C71 /* Settings@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E59527A1C39DDA800C88C71 /* Settings@3x.png */; }; 3E5952851C39E54A00C88C71 /* HomeScreenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E5952841C39E54A00C88C71 /* HomeScreenViewController.swift */; }; - 3E5952891C39EB6100C88C71 /* Turntable.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5952861C39EB6100C88C71 /* Turntable.png */; }; - 3E59528A1C39EB6100C88C71 /* Turntable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5952871C39EB6100C88C71 /* Turntable@2x.png */; }; - 3E59528B1C39EB6100C88C71 /* Turntable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5952881C39EB6100C88C71 /* Turntable@3x.png */; }; 3E5BD3111C6C424300266B16 /* CurrentlyPlayingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E5BD3101C6C424300266B16 /* CurrentlyPlayingViewController.swift */; }; - 3E5BD3151C6C45CE00266B16 /* Home Copy@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5BD3121C6C45CE00266B16 /* Home Copy@2x.png */; }; - 3E5BD3161C6C45CE00266B16 /* Party@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5BD3131C6C45CE00266B16 /* Party@2x.png */; }; - 3E5BD3171C6C45CE00266B16 /* StarPlayer@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E5BD3141C6C45CE00266B16 /* StarPlayer@2x.png */; }; 3E627FC31C55978E005C0372 /* PartySessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E627FC21C55978E005C0372 /* PartySessionManager.swift */; }; 3E631B3F1CB4D3150050808F /* NSMutableArray+QueueMethods.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E631B271CB4D3150050808F /* NSMutableArray+QueueMethods.m */; }; 3E631B401CB4D3150050808F /* TDAudioFileStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E631B2A1CB4D3150050808F /* TDAudioFileStream.m */; }; @@ -113,20 +72,10 @@ 3E631B491CB4D3150050808F /* TDAudioStreamer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E631B3C1CB4D3150050808F /* TDAudioStreamer.m */; }; 3E631B4A1CB4D3150050808F /* TDAudioStreamerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E631B3E1CB4D3150050808F /* TDAudioStreamerConstants.m */; }; 3E6738F51C6E9C7700B47C3E /* LoginController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E6738F41C6E9C7700B47C3E /* LoginController.swift */; }; - 3E6D43861C782E3200CA805F /* Decline@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E6D43851C782E3200CA805F /* Decline@2x.png */; }; 3E6D43891C7831B100CA805F /* InvitedToPartyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E6D43881C7831B100CA805F /* InvitedToPartyViewController.swift */; }; - 3E6D438B1C78968C00CA805F /* Joining@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E6D438A1C78968C00CA805F /* Joining@2x.png */; }; - 3E6D438D1C78969A00CA805F /* CancelInvited@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E6D438C1C78969A00CA805F /* CancelInvited@2x.png */; }; 3E76CF2C1C38349D00193B58 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF2B1C38349D00193B58 /* libsqlite3.dylib */; }; - 3E7BB8E21C5B4A350005B834 /* Change Song@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E7BB8E11C5B4A350005B834 /* Change Song@2x.png */; }; 3EB6B39B1C87B8AE006B674D /* JoiningPartyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EB6B39A1C87B8AE006B674D /* JoiningPartyViewController.swift */; }; - 3EB8845D1C6C647700CCDCCE /* Add More@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3EB8845B1C6C647700CCDCCE /* Add More@2x.png */; }; - 3EB8845E1C6C647700CCDCCE /* Leave Party@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3EB8845C1C6C647700CCDCCE /* Leave Party@2x.png */; }; 3EBE825A1CB06793004A2730 /* HomeTabController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EBE82591CB06793004A2730 /* HomeTabController.swift */; }; - 3EBE97661C53CEDA0079B54A /* Send Invites Button.png in Resources */ = {isa = PBXBuildFile; fileRef = 3EBE97651C53CEDA0079B54A /* Send Invites Button.png */; }; - 3EBE976A1C53E4290079B54A /* Blue Check.png in Resources */ = {isa = PBXBuildFile; fileRef = 3EBE97671C53E4290079B54A /* Blue Check.png */; }; - 3EBE976B1C53E4290079B54A /* cross.png in Resources */ = {isa = PBXBuildFile; fileRef = 3EBE97681C53E4290079B54A /* cross.png */; }; - 3EBE976C1C53E4290079B54A /* Tap Circle.png in Resources */ = {isa = PBXBuildFile; fileRef = 3EBE97691C53E4290079B54A /* Tap Circle.png */; }; 3EBE976F1C53E6950079B54A /* InviteFriendCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EBE976E1C53E6950079B54A /* InviteFriendCell.swift */; }; 3EBE97711C540BB80079B54A /* TestInviteFriendsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EBE97701C540BB80079B54A /* TestInviteFriendsController.swift */; }; 3EBE97731C5413240079B54A /* TestInviteFriendsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EBE97721C5413240079B54A /* TestInviteFriendsCell.swift */; }; @@ -146,8 +95,6 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 3E0B78B71C6E3756001DF21E /* Pause-52.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Pause-52.png"; path = "../../../Dropbox/Gethip/Screens/Song Playing/5 Play Screen/Assets/Pause-52.png"; sourceTree = ""; }; - 3E0B78B81C6E3756001DF21E /* Play-52.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Play-52.png"; path = "../../../Dropbox/Gethip/Screens/Song Playing/5 Play Screen/Assets/Play-52.png"; sourceTree = ""; }; 3E101F051C52E5FD00C895CA /* MultipeerConnectivity.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MultipeerConnectivity.framework; path = System/Library/Frameworks/MultipeerConnectivity.framework; sourceTree = SDKROOT; }; 3E101F071C52E65300C895CA /* PartyServiceManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PartyServiceManager.swift; sourceTree = ""; }; 3E101F091C52F14A00C895CA /* InviteFriendsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InviteFriendsView.swift; sourceTree = ""; }; @@ -169,13 +116,9 @@ 3E1DE9AB1C3838A800CA6CD4 /* libsystem_network.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsystem_network.dylib; path = usr/lib/system/libsystem_network.dylib; sourceTree = SDKROOT; }; 3E1DE9AD1C38395F00CA6CD4 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; 3E1EE6381C6D02EB00F5C5D7 /* InPartyViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InPartyViewController.swift; sourceTree = ""; }; - 3E24F9FE1C5B51690091B9D9 /* Send@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Send@2x.png"; path = "../../../Dropbox/Gethip/Screens/Friends + Invite Screens/i5/Friend Found/Send@2x.png"; sourceTree = ""; }; 3E326BCB1C51C20000F785CF /* SettingsTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsTableViewController.swift; sourceTree = ""; }; 3E326BCD1C51C77600F785CF /* SettingsCellWrapper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsCellWrapper.swift; sourceTree = ""; }; 3E330B191C38502F00276FE4 /* LoginViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = ""; }; - 3E33EFD71C5B56340011B9B5 /* Accept@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Accept@2x.png"; path = "../../../Dropbox/Gethip/Screens/Friends + Invite Screens/i5/Friend Requests/Accept@2x.png"; sourceTree = ""; }; - 3E33EFD81C5B56340011B9B5 /* Cancel@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Cancel@2x.png"; path = "../../../Dropbox/Gethip/Screens/Friends + Invite Screens/i5/Friend Requests/Cancel@2x.png"; sourceTree = ""; }; - 3E33EFD91C5B56340011B9B5 /* No Friend Requests i5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "No Friend Requests i5@2x.png"; path = "../../../Dropbox/Gethip/Screens/Friends + Invite Screens/i5/Friend Requests/No Friend Requests i5@2x.png"; sourceTree = ""; }; 3E3412561C54C31F006226E0 /* SongSelectionViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SongSelectionViewController.swift; sourceTree = ""; }; 3E3412581C54C6B7006226E0 /* SongCellWrapper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SongCellWrapper.swift; sourceTree = ""; }; 3E34125A1C54C73A006226E0 /* PartySession.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PartySession.swift; sourceTree = ""; }; @@ -192,21 +135,13 @@ 3E3842E11C3E15DE005DD1FB /* ParseNetDebug.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ParseNetDebug.h; sourceTree = ""; }; 3E3B14DB1C5BBB3B001C437F /* PendingRequestViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingRequestViewController.swift; sourceTree = ""; }; 3E3B14DD1C5BCC9B001C437F /* FriendRequestViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FriendRequestViewController.swift; sourceTree = ""; }; - 3E4169481C385F1000B193AF /* 1x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = 1x.png; path = "../../../Dropbox/Gethip/Screens/Logo Screen/6 Logo Screen/1x.png"; sourceTree = ""; }; 3E4169541C398A5B00B193AF /* SignUpViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignUpViewController.swift; sourceTree = ""; }; 3E4169561C399C4D00B193AF /* Images-3.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Images-3.xcassets"; sourceTree = ""; }; 3E416EED1C97BE31001EA319 /* NextUpViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NextUpViewController.swift; sourceTree = ""; }; 3E41D74B1C8D17E100FFD846 /* icon-120.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-120.png"; sourceTree = ""; }; 3E41D74D1C8D17F300FFD846 /* Icon-60.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-60.png"; sourceTree = ""; }; 3E438ADD1C572DFD0055C97A /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; - 3E438AE11C5738EF0055C97A /* Create@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Create@2x.png"; path = "../../../Dropbox/Gethip/Screens/iPhone 5 Home/Icon Assets/Create@2x.png"; sourceTree = ""; }; - 3E438AE21C5738EF0055C97A /* Friends@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Friends@2x.png"; path = "../../../Dropbox/Gethip/Screens/iPhone 5 Home/Icon Assets/Friends@2x.png"; sourceTree = ""; }; - 3E438AE31C5738EF0055C97A /* Settings@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Settings@2x.png"; path = "../../../Dropbox/Gethip/Screens/iPhone 5 Home/Icon Assets/Settings@2x.png"; sourceTree = ""; }; - 3E438AE41C5738EF0055C97A /* Star@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Star@2x.png"; path = "../../../Dropbox/Gethip/Screens/iPhone 5 Home/Icon Assets/Star@2x.png"; sourceTree = ""; }; - 3E438AE51C5738EF0055C97A /* Turntable@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Turntable@2x.png"; path = "../../../Dropbox/Gethip/Screens/iPhone 5 Home/Icon Assets/Turntable@2x.png"; sourceTree = ""; }; 3E43B8C31C375ADE002F97A7 /* Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Bridging-Header.h"; sourceTree = ""; }; - 3E43B8CE1C376F9F002F97A7 /* Logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Logo.png; path = "../../../Dropbox/gethip/Screens/6 Login/Assets/Logo.png"; sourceTree = ""; }; - 3E4AA5201C853E1A00746839 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png"; path = "../../../Dropbox/gethip/Screens/6 Back to Party/6 Back to Party/Asset/Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png"; sourceTree = ""; }; 3E4B86B21C95DAE700ECDFFA /* Bolts.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Bolts.framework; sourceTree = ""; }; 3E4B86B41C95DE3300ECDFFA /* Parse.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Parse.framework; sourceTree = ""; }; 3E4B86B61C95DE6300ECDFFA /* ParseFacebookUtilsV4.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = ParseFacebookUtilsV4.framework; sourceTree = ""; }; @@ -216,35 +151,8 @@ 3E50E03F1C74B97300EB9EA9 /* BackToHomeScreenViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BackToHomeScreenViewController.swift; sourceTree = ""; }; 3E5485B21C69A7DA00E7D5AB /* LoadingPartyViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadingPartyViewController.swift; sourceTree = ""; }; 3E5485B41C69CE2F00E7D5AB /* InvitedCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InvitedCollectionViewCell.swift; sourceTree = ""; }; - 3E59525A1C39DBC900C88C71 /* Friends.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Friends.png; path = "../Get Hip/Get Hip/Assets/Friends.png"; sourceTree = ""; }; - 3E59525B1C39DBC900C88C71 /* Friends@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Friends@2x.png"; path = "../Get Hip/Get Hip/Assets/Friends@2x.png"; sourceTree = ""; }; - 3E59525C1C39DBC900C88C71 /* Friends@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Friends@3x.png"; path = "../Get Hip/Get Hip/Assets/Friends@3x.png"; sourceTree = ""; }; - 3E59525D1C39DBC900C88C71 /* Settings.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Settings.png; path = "../Get Hip/Get Hip/Assets/Settings.png"; sourceTree = ""; }; - 3E59525E1C39DBC900C88C71 /* Settings@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Settings@2x.png"; path = "../Get Hip/Get Hip/Assets/Settings@2x.png"; sourceTree = ""; }; - 3E59525F1C39DBC900C88C71 /* Settings@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Settings@3x.png"; path = "../Get Hip/Get Hip/Assets/Settings@3x.png"; sourceTree = ""; }; - 3E5952601C39DBC900C88C71 /* Star.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Star.png; path = "../Get Hip/Get Hip/Assets/Star.png"; sourceTree = ""; }; - 3E5952611C39DBC900C88C71 /* Star@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Star@2x.png"; path = "../Get Hip/Get Hip/Assets/Star@2x.png"; sourceTree = ""; }; - 3E5952621C39DBC900C88C71 /* Star@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Star@3x.png"; path = "../Get Hip/Get Hip/Assets/Star@3x.png"; sourceTree = ""; }; - 3E59526C1C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2.png"; path = "../../../Dropbox/Gethip/Screens/6 Back to Party/6 Back to Party/Asset/Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2.png"; sourceTree = ""; }; - 3E59526D1C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png"; path = "../../../Dropbox/Gethip/Screens/6 Back to Party/6 Back to Party/Asset/Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png"; sourceTree = ""; }; - 3E59526E1C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@3x.png"; path = "../../../Dropbox/Gethip/Screens/6 Back to Party/6 Back to Party/Asset/Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@3x.png"; sourceTree = ""; }; - 3E5952721C39DDA800C88C71 /* Create.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Create.png; path = "../../../Dropbox/Gethip/Screens/6 Home Screen/Assets/Create.png"; sourceTree = ""; }; - 3E5952731C39DDA800C88C71 /* Create@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Create@2x.png"; path = "../../../Dropbox/Gethip/Screens/6 Home Screen/Assets/Create@2x.png"; sourceTree = ""; }; - 3E5952741C39DDA800C88C71 /* Create@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Create@3x.png"; path = "../../../Dropbox/Gethip/Screens/6 Home Screen/Assets/Create@3x.png"; sourceTree = ""; }; - 3E5952751C39DDA800C88C71 /* Group.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Group.png; path = "../../../Dropbox/Gethip/Screens/6 Home Screen/Assets/Group.png"; sourceTree = ""; }; - 3E5952761C39DDA800C88C71 /* Group@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Group@2x.png"; path = "../../../Dropbox/Gethip/Screens/6 Home Screen/Assets/Group@2x.png"; sourceTree = ""; }; - 3E5952771C39DDA800C88C71 /* Group@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Group@3x.png"; path = "../../../Dropbox/Gethip/Screens/6 Home Screen/Assets/Group@3x.png"; sourceTree = ""; }; - 3E5952781C39DDA800C88C71 /* Settings.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Settings.png; path = "../../../Dropbox/Gethip/Screens/6 Home Screen/Assets/Settings.png"; sourceTree = ""; }; - 3E5952791C39DDA800C88C71 /* Settings@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Settings@2x.png"; path = "../../../Dropbox/Gethip/Screens/6 Home Screen/Assets/Settings@2x.png"; sourceTree = ""; }; - 3E59527A1C39DDA800C88C71 /* Settings@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Settings@3x.png"; path = "../../../Dropbox/Gethip/Screens/6 Home Screen/Assets/Settings@3x.png"; sourceTree = ""; }; 3E5952841C39E54A00C88C71 /* HomeScreenViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomeScreenViewController.swift; sourceTree = ""; }; - 3E5952861C39EB6100C88C71 /* Turntable.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Turntable.png; path = "../Get Hip/Get Hip/Assets/Turntable.png"; sourceTree = ""; }; - 3E5952871C39EB6100C88C71 /* Turntable@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Turntable@2x.png"; path = "../Get Hip/Get Hip/Assets/Turntable@2x.png"; sourceTree = ""; }; - 3E5952881C39EB6100C88C71 /* Turntable@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Turntable@3x.png"; path = "../Get Hip/Get Hip/Assets/Turntable@3x.png"; sourceTree = ""; }; 3E5BD3101C6C424300266B16 /* CurrentlyPlayingViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CurrentlyPlayingViewController.swift; sourceTree = ""; }; - 3E5BD3121C6C45CE00266B16 /* Home Copy@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Home Copy@2x.png"; path = "../../../Dropbox/Gethip/Screens/Song Playing/5 Play Screen/Assets/Home Copy@2x.png"; sourceTree = ""; }; - 3E5BD3131C6C45CE00266B16 /* Party@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Party@2x.png"; path = "../../../Dropbox/Gethip/Screens/Song Playing/5 Play Screen/Assets/Party@2x.png"; sourceTree = ""; }; - 3E5BD3141C6C45CE00266B16 /* StarPlayer@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "StarPlayer@2x.png"; path = "../../../Dropbox/Gethip/Screens/Song Playing/5 Play Screen/Assets/StarPlayer@2x.png"; sourceTree = ""; }; 3E627FC21C55978E005C0372 /* PartySessionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PartySessionManager.swift; sourceTree = ""; }; 3E631B261CB4D3150050808F /* NSMutableArray+QueueMethods.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMutableArray+QueueMethods.h"; sourceTree = ""; }; 3E631B271CB4D3150050808F /* NSMutableArray+QueueMethods.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableArray+QueueMethods.m"; sourceTree = ""; }; @@ -271,22 +179,12 @@ 3E631B3D1CB4D3150050808F /* TDAudioStreamerConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDAudioStreamerConstants.h; sourceTree = ""; }; 3E631B3E1CB4D3150050808F /* TDAudioStreamerConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDAudioStreamerConstants.m; sourceTree = ""; }; 3E6738F41C6E9C7700B47C3E /* LoginController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginController.swift; sourceTree = ""; }; - 3E6D43851C782E3200CA805F /* Decline@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Decline@2x.png"; path = "../../../Dropbox/gethip/Screens/Invited To Join Party/5 When Invited/When Invited/Assets/Decline@2x.png"; sourceTree = ""; }; 3E6D43881C7831B100CA805F /* InvitedToPartyViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InvitedToPartyViewController.swift; sourceTree = ""; }; - 3E6D438A1C78968C00CA805F /* Joining@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Joining@2x.png"; path = "../../../Dropbox/gethip/Screens/Invited To Join Party/5 When Invited/When Invited/Joining/Assets/Joining@2x.png"; sourceTree = ""; }; - 3E6D438C1C78969A00CA805F /* CancelInvited@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "CancelInvited@2x.png"; path = "../../../Dropbox/gethip/Screens/Invited To Join Party/5 When Invited/When Invited/Joining/Assets/CancelInvited@2x.png"; sourceTree = ""; }; 3E76CF2B1C38349D00193B58 /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; }; 3E76CF2D1C3835C500193B58 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; 3E76CF2F1C3835E300193B58 /* NetworkExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NetworkExtension.framework; path = System/Library/Frameworks/NetworkExtension.framework; sourceTree = SDKROOT; }; - 3E7BB8E11C5B4A350005B834 /* Change Song@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Change Song@2x.png"; path = "../../../Dropbox/Gethip/Screens/Song Selected/5 Song Selected/Assets/Change Song@2x.png"; sourceTree = ""; }; 3EB6B39A1C87B8AE006B674D /* JoiningPartyViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JoiningPartyViewController.swift; sourceTree = ""; }; - 3EB8845B1C6C647700CCDCCE /* Add More@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Add More@2x.png"; path = "../../../Dropbox/Gethip/Screens/iPhone 5 Party Screens/Party Screen/Assets/Add More@2x.png"; sourceTree = ""; }; - 3EB8845C1C6C647700CCDCCE /* Leave Party@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Leave Party@2x.png"; path = "../../../Dropbox/Gethip/Screens/iPhone 5 Party Screens/Party Screen/Assets/Leave Party@2x.png"; sourceTree = ""; }; 3EBE82591CB06793004A2730 /* HomeTabController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomeTabController.swift; sourceTree = ""; }; - 3EBE97651C53CEDA0079B54A /* Send Invites Button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Send Invites Button.png"; path = "../../../Dropbox/Gethip/Screens/Friends + Invite Screens/i6/Invite Friends/Send Invites Button.png"; sourceTree = ""; }; - 3EBE97671C53E4290079B54A /* Blue Check.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Blue Check.png"; path = "../../../Dropbox/Gethip/Screens/Friends + Invite Screens/i6/Invite Friends/Blue Check.png"; sourceTree = ""; }; - 3EBE97681C53E4290079B54A /* cross.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = cross.png; path = "../../../Dropbox/Gethip/Screens/Friends + Invite Screens/i6/Invite Friends/cross.png"; sourceTree = ""; }; - 3EBE97691C53E4290079B54A /* Tap Circle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Tap Circle.png"; path = "../../../Dropbox/Gethip/Screens/Friends + Invite Screens/i6/Invite Friends/Tap Circle.png"; sourceTree = ""; }; 3EBE976E1C53E6950079B54A /* InviteFriendCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InviteFriendCell.swift; sourceTree = ""; }; 3EBE97701C540BB80079B54A /* TestInviteFriendsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestInviteFriendsController.swift; sourceTree = ""; }; 3EBE97721C5413240079B54A /* TestInviteFriendsCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestInviteFriendsCell.swift; sourceTree = ""; }; @@ -494,62 +392,13 @@ name = NextUpInParty; sourceTree = ""; }; - 3E438AE01C57387B0055C97A /* iPhone5 */ = { - isa = PBXGroup; - children = ( - 3E6D438C1C78969A00CA805F /* CancelInvited@2x.png */, - 3E6D438A1C78968C00CA805F /* Joining@2x.png */, - 3E6D43851C782E3200CA805F /* Decline@2x.png */, - 3E4AA5201C853E1A00746839 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png */, - 3E0B78B71C6E3756001DF21E /* Pause-52.png */, - 3E0B78B81C6E3756001DF21E /* Play-52.png */, - 3EB8845B1C6C647700CCDCCE /* Add More@2x.png */, - 3EB8845C1C6C647700CCDCCE /* Leave Party@2x.png */, - 3E5BD3121C6C45CE00266B16 /* Home Copy@2x.png */, - 3E5BD3131C6C45CE00266B16 /* Party@2x.png */, - 3E5BD3141C6C45CE00266B16 /* StarPlayer@2x.png */, - 3E33EFD71C5B56340011B9B5 /* Accept@2x.png */, - 3E33EFD81C5B56340011B9B5 /* Cancel@2x.png */, - 3E33EFD91C5B56340011B9B5 /* No Friend Requests i5@2x.png */, - 3E24F9FE1C5B51690091B9D9 /* Send@2x.png */, - 3E7BB8E11C5B4A350005B834 /* Change Song@2x.png */, - 3E438AE11C5738EF0055C97A /* Create@2x.png */, - 3E438AE21C5738EF0055C97A /* Friends@2x.png */, - 3E438AE31C5738EF0055C97A /* Settings@2x.png */, - 3E438AE41C5738EF0055C97A /* Star@2x.png */, - 3E438AE51C5738EF0055C97A /* Turntable@2x.png */, - ); - name = iPhone5; - sourceTree = ""; - }; 3E43B8CB1C376BBE002F97A7 /* Assets */ = { isa = PBXGroup; children = ( - 3E438AE01C57387B0055C97A /* iPhone5 */, - 3E43B8CD1C376F70002F97A7 /* IPhone6 */, ); name = Assets; sourceTree = ""; }; - 3E43B8CC1C376C31002F97A7 /* LoginScreen */ = { - isa = PBXGroup; - children = ( - 3E4169481C385F1000B193AF /* 1x.png */, - 3E43B8CE1C376F9F002F97A7 /* Logo.png */, - ); - name = LoginScreen; - sourceTree = ""; - }; - 3E43B8CD1C376F70002F97A7 /* IPhone6 */ = { - isa = PBXGroup; - children = ( - 3EBE97641C53CE950079B54A /* InviteFriends */, - 3E5952591C39DB2800C88C71 /* CreateJoinOrReturnToPartyScreen */, - 3E43B8CC1C376C31002F97A7 /* LoginScreen */, - ); - name = IPhone6; - sourceTree = ""; - }; 3E5485B11C69A77B00E7D5AB /* LoadingParty */ = { isa = PBXGroup; children = ( @@ -559,37 +408,6 @@ name = LoadingParty; sourceTree = ""; }; - 3E5952591C39DB2800C88C71 /* CreateJoinOrReturnToPartyScreen */ = { - isa = PBXGroup; - children = ( - 3E5952861C39EB6100C88C71 /* Turntable.png */, - 3E5952871C39EB6100C88C71 /* Turntable@2x.png */, - 3E5952881C39EB6100C88C71 /* Turntable@3x.png */, - 3E5952721C39DDA800C88C71 /* Create.png */, - 3E5952731C39DDA800C88C71 /* Create@2x.png */, - 3E5952741C39DDA800C88C71 /* Create@3x.png */, - 3E5952751C39DDA800C88C71 /* Group.png */, - 3E5952761C39DDA800C88C71 /* Group@2x.png */, - 3E5952771C39DDA800C88C71 /* Group@3x.png */, - 3E5952781C39DDA800C88C71 /* Settings.png */, - 3E5952791C39DDA800C88C71 /* Settings@2x.png */, - 3E59527A1C39DDA800C88C71 /* Settings@3x.png */, - 3E59526C1C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2.png */, - 3E59526D1C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png */, - 3E59526E1C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@3x.png */, - 3E59525A1C39DBC900C88C71 /* Friends.png */, - 3E59525B1C39DBC900C88C71 /* Friends@2x.png */, - 3E59525C1C39DBC900C88C71 /* Friends@3x.png */, - 3E59525D1C39DBC900C88C71 /* Settings.png */, - 3E59525E1C39DBC900C88C71 /* Settings@2x.png */, - 3E59525F1C39DBC900C88C71 /* Settings@3x.png */, - 3E5952601C39DBC900C88C71 /* Star.png */, - 3E5952611C39DBC900C88C71 /* Star@2x.png */, - 3E5952621C39DBC900C88C71 /* Star@3x.png */, - ); - name = CreateJoinOrReturnToPartyScreen; - sourceTree = ""; - }; 3E5BD30F1C6C41F300266B16 /* CurrentlyPlaying */ = { isa = PBXGroup; children = ( @@ -686,17 +504,6 @@ name = InvitedToParty; sourceTree = ""; }; - 3EBE97641C53CE950079B54A /* InviteFriends */ = { - isa = PBXGroup; - children = ( - 3EBE97671C53E4290079B54A /* Blue Check.png */, - 3EBE97681C53E4290079B54A /* cross.png */, - 3EBE97691C53E4290079B54A /* Tap Circle.png */, - 3EBE97651C53CEDA0079B54A /* Send Invites Button.png */, - ); - name = InviteFriends; - sourceTree = ""; - }; 3EBE976D1C53E5CF0079B54A /* InviteFriends */ = { isa = PBXGroup; children = ( @@ -794,62 +601,11 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3E5BD3171C6C45CE00266B16 /* StarPlayer@2x.png in Resources */, - 3E5BD3161C6C45CE00266B16 /* Party@2x.png in Resources */, - 3E4169491C385F1000B193AF /* 1x.png in Resources */, - 3E4AA5211C853E1A00746839 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png in Resources */, - 3E5952641C39DBC900C88C71 /* Friends@2x.png in Resources */, - 3E59528B1C39EB6100C88C71 /* Turntable@3x.png in Resources */, - 3E5952661C39DBC900C88C71 /* Settings.png in Resources */, - 3E5952891C39EB6100C88C71 /* Turntable.png in Resources */, - 3E59527D1C39DDA800C88C71 /* Create@3x.png in Resources */, - 3E33EFDB1C5B56340011B9B5 /* Cancel@2x.png in Resources */, - 3EBE976B1C53E4290079B54A /* cross.png in Resources */, - 3E43B8CF1C376F9F002F97A7 /* Logo.png in Resources */, 3E4169571C399C4D00B193AF /* Images-3.xcassets in Resources */, - 3EB8845E1C6C647700CCDCCE /* Leave Party@2x.png in Resources */, - 3EBE97661C53CEDA0079B54A /* Send Invites Button.png in Resources */, - 3E24F9FF1C5B51690091B9D9 /* Send@2x.png in Resources */, - 3E438AEA1C5738EF0055C97A /* Turntable@2x.png in Resources */, - 3E5952801C39DDA800C88C71 /* Group@3x.png in Resources */, - 3E5952631C39DBC900C88C71 /* Friends.png in Resources */, - 3E0B78B91C6E3756001DF21E /* Pause-52.png in Resources */, - 3E5952811C39DDA800C88C71 /* Settings.png in Resources */, - 3E59527E1C39DDA800C88C71 /* Group.png in Resources */, - 3E6D438D1C78969A00CA805F /* CancelInvited@2x.png in Resources */, - 3E5952711C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@3x.png in Resources */, - 3E6D438B1C78968C00CA805F /* Joining@2x.png in Resources */, - 3E33EFDC1C5B56340011B9B5 /* No Friend Requests i5@2x.png in Resources */, - 3E33EFDA1C5B56340011B9B5 /* Accept@2x.png in Resources */, - 3E438AE91C5738EF0055C97A /* Star@2x.png in Resources */, - 3E5BD3151C6C45CE00266B16 /* Home Copy@2x.png in Resources */, - 3E5952831C39DDA800C88C71 /* Settings@3x.png in Resources */, 3E41D74C1C8D17E100FFD846 /* icon-120.png in Resources */, - 3E7BB8E21C5B4A350005B834 /* Change Song@2x.png in Resources */, - 3E59526B1C39DBC900C88C71 /* Star@3x.png in Resources */, - 3E59527B1C39DDA800C88C71 /* Create.png in Resources */, - 3E5952701C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png in Resources */, - 3EBE976C1C53E4290079B54A /* Tap Circle.png in Resources */, - 3E5952671C39DBC900C88C71 /* Settings@2x.png in Resources */, - 3EBE976A1C53E4290079B54A /* Blue Check.png in Resources */, - 3E438AE71C5738EF0055C97A /* Friends@2x.png in Resources */, - 3E59528A1C39EB6100C88C71 /* Turntable@2x.png in Resources */, - 3E0B78BA1C6E3756001DF21E /* Play-52.png in Resources */, 3E438ADE1C572DFD0055C97A /* Main.storyboard in Resources */, - 3E438AE81C5738EF0055C97A /* Settings@2x.png in Resources */, - 3E5952681C39DBC900C88C71 /* Settings@3x.png in Resources */, - 3E59526F1C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2.png in Resources */, - 3E59527F1C39DDA800C88C71 /* Group@2x.png in Resources */, - 3E5952691C39DBC900C88C71 /* Star.png in Resources */, 3E41D74E1C8D17F300FFD846 /* Icon-60.png in Resources */, - 3E59527C1C39DDA800C88C71 /* Create@2x.png in Resources */, - 3E59526A1C39DBC900C88C71 /* Star@2x.png in Resources */, - 3E5952821C39DDA800C88C71 /* Settings@2x.png in Resources */, - 3EB8845D1C6C647700CCDCCE /* Add More@2x.png in Resources */, 3E1BDA5F1C37111D00EE3B84 /* LaunchScreen.xib in Resources */, - 3E438AE61C5738EF0055C97A /* Create@2x.png in Resources */, - 3E5952651C39DBC900C88C71 /* Friends@3x.png in Resources */, - 3E6D43861C782E3200CA805F /* Decline@2x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/GetHip/CurrentlyPlayingViewController.swift b/GetHip/CurrentlyPlayingViewController.swift index b30f758..cd74d23 100644 --- a/GetHip/CurrentlyPlayingViewController.swift +++ b/GetHip/CurrentlyPlayingViewController.swift @@ -11,7 +11,7 @@ import MediaPlayer import AVFoundation import MultipeerConnectivity -class CurrentlyPlayingViewController: UIViewController, PartyServiceManagerDelegate, UICollectionViewDataSource, UICollectionViewDelegate{ +class CurrentlyPlayingViewController: UIViewController, PartyServiceManagerDelegate, UICollectionViewDataSource, UICollectionViewDelegate, UIAlertViewDelegate{ //persistant data var party: PartyServiceManager! var usr: [UserParseData] = [] @@ -22,9 +22,12 @@ class CurrentlyPlayingViewController: UIViewController, PartyServiceManagerDeleg var timer = NSTimer() var nextHost: String! var messageOutputStream: Dictionary! - var messageInputStream: Dictionary! + var messageInputStream: Dictionary! @IBOutlet var segmentControl: UISegmentedControl! + //class variable for responding to peer who has just sent a message + private var curr_fromPeer: MCPeerID! + @IBAction func switchViews(segCtrl: UISegmentedControl){ if(segCtrl.selectedSegmentIndex == 0){ @@ -159,6 +162,7 @@ class CurrentlyPlayingViewController: UIViewController, PartyServiceManagerDeleg self.leaveOrEnd.enabled = false + //Set up for CurrentlyPlayingView self.progressBar.setProgress(0, animated: true) self.volCtrl.hidden = true @@ -176,11 +180,29 @@ class CurrentlyPlayingViewController: UIViewController, PartyServiceManagerDeleg self.audioPlayer.volume = self.volCtrl.value self.maxLabel.text = String(stringInterpolationSegment: self.audioPlayer.currentItem.duration.value) self.party.delegate = self - for peer in self.party.session.connectedPeers { - self.party.outputStreamers[peer.displayName]?.start() + + let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT + dispatch_async(dispatch_get_global_queue(priority, 0)) { + // Put the calculations here + + for peer in self.party.session.connectedPeers { + self.party.outputStreamers[peer.displayName]?.start() + } + self.audioPlayer.play() + + self.timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("updateLabels"), userInfo: nil, repeats: true) + + + + dispatch_async(dispatch_get_main_queue()) { + // any updates of the UI need to be here to do them in the main thread after your background task. For example adding subviews + + if (self.party.role == PeerType.Guest_Creator){ + self.leaveOrEnd.titleLabel!.text = "Leave Party" + } + + } } - self.audioPlayer.play() - self.timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("updateLabels"), userInfo: nil, repeats: true) //sets the next host of the party once the party starts self.party.chooseNextHost() @@ -188,20 +210,34 @@ class CurrentlyPlayingViewController: UIViewController, PartyServiceManagerDeleg //used to notify for end of song and initiate next host loop - //NSNotificationCenter.defaultCenter().addObserver(self, selector: "songDidEnd:", name: "AVPlayerItemDidPlayToEndTimeNotification", object: nil) + NSNotificationCenter.defaultCenter().addObserver(self, selector: "songDidEnd:", name: "AVPlayerItemDidPlayToEndTimeNotification", object: nil) }else if (self.party.role == PeerType.Guest_Invited || self.party.role == PeerType.Host_Invited){ - self.volCtrl.hidden = true - self.volCtrl.enabled = false - - self.songImg.image = self.party.currentSongIMG - self.titleLabel.text = (self.party.currentSongTitle) - println(self.party.currentSongTitle) - println(self.titleLabel.text) - self.artistAndAlbumLabel.text = (self.party.currentSongArtistAlbum) - self.party.delegate = self - self.ppfButton.hidden = true - + let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT + dispatch_async(dispatch_get_global_queue(priority, 0)) { + // Put the calculations here + dispatch_async(dispatch_get_main_queue()) { + // any updates of the UI need to be here to do them in the main thread after your background task. For example adding subviews + + self.volCtrl.hidden = true + self.volCtrl.enabled = false + + self.songImg.image = self.party.currentSongIMG + self.titleLabel.text = (self.party.currentSongTitle) + println(self.party.currentSongTitle) + println(self.titleLabel.text) + self.artistAndAlbumLabel.text = (self.party.currentSongArtistAlbum) + self.party.delegate = self + self.ppfButton.hidden = true + + if(self.party.role == PeerType.Guest_Invited){ + self.leaveOrEnd.titleLabel!.text = "Leave Party" + } + + + + } + } } @@ -220,17 +256,24 @@ class CurrentlyPlayingViewController: UIViewController, PartyServiceManagerDeleg self.party.role == PeerType.Guest_Invited } + var didAnyoneBecomeHost: Bool = false for peer in self.party.connectedPeers() as! [MCPeerID]{ - if (peer.displayName == self.party.currentHost){ + if ((self.party.currentHost != nil) && (peer.displayName == self.party.currentHost)){ var dictionary: [String: AnyObject] = ["sender": self.party.myPeerID, "instruction": "start_picking_a_song"] self.party.sendInstruction(dictionary, toPeer: peer) + didAnyoneBecomeHost = true }else{ var dictionary: [String: AnyObject] = ["sender": self.party.myPeerID, "instruction": "wait_in_nextUp_Scene"] self.party.sendInstruction(dictionary, toPeer: peer) } } - self.performSegueWithIdentifier("NextUpSegue", sender: self) + if(didAnyoneBecomeHost){ + self.performSegueWithIdentifier("NextSongSelectionSegue", sender: self) + }else{ + self.performSegueWithIdentifier("NextUpSegue", sender: self) + } + } func timeFormat(value: Float) -> String{ @@ -332,38 +375,61 @@ extension CurrentlyPlayingViewController { func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { - var cell: InvitedCollectionViewCell! - - - let friend = self.party.invitedFriends[indexPath.row] - cell = self.friendsInParty.dequeueReusableCellWithReuseIdentifier("InvitedCollectionCell", forIndexPath: indexPath) as! InvitedCollectionViewCell - - if friend.profileImg == nil { - cell.friendImage.backgroundColor = UIColor.grayColor() + var cell: InvitedCollectionViewCell! = self.friendsInParty.dequeueReusableCellWithReuseIdentifier("InvitedCollectionCell", forIndexPath: indexPath) as! InvitedCollectionViewCell + if(indexPath.row == 0){ + cell.friendImage.image = self.usr[0].profileImg.image! } - else{ - cell.friendImage.image = friend.profileImg.image! + else if((indexPath.row > 0) && (indexPath.row < self.party.invitedFriends.count)){ + let friend = self.party.invitedFriends[indexPath.row] + if friend.profileImg == nil { + cell.friendImage.backgroundColor = UIColor.lightGrayColor() + } + else{ + cell.friendImage.image = friend.profileImg.image! + } + + + }else{ + + cell.friendImage.backgroundColor = UIColor.grayColor() + } //rounds uiimage and configures UIImageView cell.friendImage.layer.cornerRadius = cell.friendImage.frame.size.width/2 cell.friendImage.clipsToBounds = true - - - return cell - } + func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - return self.party.invitedFriends.count + return 8 } } +extension CurrentlyPlayingViewController: UIAlertViewDelegate { + + func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) { + if(buttonIndex == 0){ + var dictionary: [String: AnyObject] = ["sender": self.party.myPeerID, "instruction": "does_accept"] + self.party.sendInstruction(dictionary, toPeer: curr_fromPeer) + self.party.currentHost = self.party.myPeerID.displayName + print(self.party.currentHost) + alertView.dismissWithClickedButtonIndex(0, animated: true) + } + if(buttonIndex == 1){ + var dictionary: [String: AnyObject] = ["sender": self.party.myPeerID, "instruction": "does_not_accept"] + self.party.sendInstruction(dictionary, toPeer: curr_fromPeer) + alertView.dismissWithClickedButtonIndex(1, animated: true) + } + + } +} + extension CurrentlyPlayingViewController: PartyServiceManagerDelegate { func foundPeer() { @@ -401,35 +467,50 @@ extension CurrentlyPlayingViewController: PartyServiceManagerDelegate { }else if(instruction == "want_to_be_host"){ - if objc_getClass("UIAlertController") != nil { - - let alert = UIAlertController(title: "Hosting Request", message: "Would you like to be the next host for the party and pick a song?", preferredStyle: .Alert) - alert.addAction(UIAlertAction(title: "Accept", style: .Default, handler:{ - (action: UIAlertAction!) -> Void in + let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT + dispatch_async(dispatch_get_global_queue(priority, 0)) { + // Put the calculations here + dispatch_async(dispatch_get_main_queue()) { + // any updates of the UI need to be here to do them in the main thread after your background task. For example adding subviews - self.party.currentHost = self.party.myPeerID.displayName - alert.dismissViewControllerAnimated(true, completion: nil) - - })) - - - alert.addAction(UIAlertAction(title: "Decline", style: .Default, handler:{ - (action: UIAlertAction!) -> Void in - var dictionary: [String: AnyObject] = ["sender": self.party.myPeerID, "instruction": "does_not_accept"] - self.party.sendInstruction(dictionary, toPeer: fromPeer) - alert.dismissViewControllerAnimated(true, completion: nil) - })) - - self.presentViewController(alert, animated: true, completion: nil) - - }else{ - let alert = UIAlertView() - alert.title = "Password Changed" - alert.message = "Your password has been updated." - alert.addButtonWithTitle("Yes") - alert.addButtonWithTitle("No") - alert.show() + if objc_getClass("UIAlertController") != nil { + + let alert = UIAlertController(title: "Hosting Request", message: "Would you like to be the next host for the party and pick a song?", preferredStyle: .Alert) + alert.addAction(UIAlertAction(title: "Accept", style: .Default, handler:{ + (action: UIAlertAction!) -> Void in + var dictionary: [String: AnyObject] = ["sender": self.party.myPeerID, "instruction": "does_accept"] + self.party.sendInstruction(dictionary, toPeer: fromPeer) + self.party.currentHost = self.party.myPeerID.displayName + alert.dismissViewControllerAnimated(true, completion: nil) + + })) + + + alert.addAction(UIAlertAction(title: "Decline", style: .Default, handler:{ + (action: UIAlertAction!) -> Void in + var dictionary: [String: AnyObject] = ["sender": self.party.myPeerID, "instruction": "does_not_accept"] + self.party.sendInstruction(dictionary, toPeer: fromPeer) + alert.dismissViewControllerAnimated(true, completion: nil) + })) + + self.presentViewController(alert, animated: true, completion: nil) + + }else{ + let alert = UIAlertView() + + alert.title = "Hosting Rrequest" + alert.message = "Would you like to be the next host for the party and pick a song?" + alert.addButtonWithTitle("Accept") + alert.addButtonWithTitle("Decline") + alert.show() + + } + + + } + } + }else if(instruction == "start_picking_a_song"){ if(self.party.role == PeerType.Host_Invited){ diff --git a/GetHip/Main.storyboard b/GetHip/Main.storyboard index bc91854..7d021e9 100644 --- a/GetHip/Main.storyboard +++ b/GetHip/Main.storyboard @@ -1,5 +1,5 @@ - + @@ -1298,15 +1298,6 @@ - @@ -1322,6 +1313,15 @@ + @@ -2021,7 +2021,7 @@ - + @@ -2036,28 +2036,6 @@ - - - - - - - - - - - - - @@ -2127,6 +2105,19 @@ + + + + + + + + + + + + + @@ -2134,9 +2125,11 @@ + + @@ -2433,7 +2426,7 @@ - + diff --git a/GetHip/PartyServiceManager.swift b/GetHip/PartyServiceManager.swift index a38c3ee..2c3a0e1 100644 --- a/GetHip/PartyServiceManager.swift +++ b/GetHip/PartyServiceManager.swift @@ -87,14 +87,15 @@ class PartyServiceManager: NSObject, AnyObject { func chooseNextHost(){ var numPeers = self.connectedPeers().count var nextHostIndex: Int = Int(arc4random_uniform(UInt32(numPeers))) - println(nextHostIndex) - println(self.connectedPeers().count) + println("") + println(self.currentHost) + println(self.connectedPeers()[nextHostIndex].displayName) + if (self.currentHost != nil && self.connectedPeers()[nextHostIndex].displayName == self.currentHost){ chooseNextHost() }else{ - self.currentHost = self.connectedPeers()[nextHostIndex].displayName var dictionary: [String: AnyObject] = ["sender": self.myPeerID, "instruction": "want_to_be_host"] - self.sendInstruction(dictionary, toPeer: self.connectedPeersDictionary[self.currentHost] as! MCPeerID) + self.sendInstruction(dictionary, toPeer: self.connectedPeersDictionary[self.connectedPeers()[nextHostIndex].displayName] as! MCPeerID) } } @@ -181,6 +182,12 @@ class PartyServiceManager: NSObject, AnyObject { self.chooseNextHost() } + if(instruction == "does_accept"){ + + self.currentHost == fromPeer.displayName + + } + return (instruction!, fromPeer) diff --git a/GetHip/SongSelectionViewController.swift b/GetHip/SongSelectionViewController.swift index f8dcac0..95ad9b3 100644 --- a/GetHip/SongSelectionViewController.swift +++ b/GetHip/SongSelectionViewController.swift @@ -16,57 +16,47 @@ class SongSelectionViewController: UIViewController, UITableViewDelegate, UITabl var frnds: [FriendData] = [] var requestData: [FriendData] = [] @IBOutlet weak var table: UITableView! + @IBOutlet weak var segCtrl: UISegmentedControl! - - @IBAction func selectFilter(sender: AnyObject) { - let filterMenu = UIAlertController(title: nil, message:nil, preferredStyle: .ActionSheet) - let cell: FilterCell = self.table.cellForRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 0)) as! FilterCell + @IBAction func switchViews(segCtrl: UISegmentedControl){ + switch self.segCtrl.selectedSegmentIndex { - let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: { - (alert: UIAlertAction!) -> Void in - }) - - let songFilterAction = UIAlertAction(title: "Songs", style: .Default, handler: { - (alert: UIAlertAction!) -> Void in + case 0: self.filter = "Songs" - self.table.reloadData() - cell.filterBtn.titleLabel?.text = self.filter - - }) - - let albumFilterAction = UIAlertAction(title: "Albums", style: .Default, handler: { - (alert: UIAlertAction!) -> Void in + break + case 1: self.filter = "Albums" - self.table.reloadData() - cell.filterBtn.titleLabel?.text = self.filter - }) - - let artistFilterAction = UIAlertAction(title: "Artists", style: .Default, handler: { - (alert: UIAlertAction!) -> Void in - self.filter = "Artists" - self.table.reloadData() - cell.filterBtn.titleLabel?.text = self.filter - - }) - - switch self.filter { - - case "Artists": - filterMenu.addAction(songFilterAction) - filterMenu.addAction(albumFilterAction) - case "Albums": - filterMenu.addAction(songFilterAction) - filterMenu.addAction(artistFilterAction) break default: - filterMenu.addAction(artistFilterAction) - filterMenu.addAction(albumFilterAction) + self.filter = "Artists" break + } - filterMenu.addAction(cancelAction) - self.presentViewController(filterMenu, animated: true, completion: nil) + + switch self.filter { + case "Albums": + + self.table.reloadData() + break + case "Artists": + + self.table.reloadData() + break + default: + + self.table.reloadData() + break + + } + + if(segCtrl.selectedSegmentIndex == 0){ + + + } + } + var filter: String! = "Songs" @IBAction func cancelInvites(sender: UIBarButtonItem) { @@ -110,32 +100,29 @@ class SongSelectionViewController: UIViewController, UITableViewDelegate, UITabl //return number of rows for albums case "Albums": var albumsQuery = MPMediaQuery.albumsQuery() + albumsQuery.groupingType = MPMediaGrouping.Album var albums = albumsQuery.collections - return albums.count + 1 + return albums.count //return number of rows for artists case "Artists": var artistsQuery = MPMediaQuery.artistsQuery() - //artistsQuery - var artists = artistsQuery.items - return artists.count + 1 + artistsQuery.groupingType = MPMediaGrouping.Artist + var artists = artistsQuery.collections + return artists.count //return number of rows for song default: var songsQuery = MPMediaQuery.songsQuery() var songs = songsQuery.items - return songs.count + 1 + return songs.count } } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { - if( indexPath.row == 0){ - - - } - else{ + switch self.filter{ //return albums cell @@ -145,7 +132,7 @@ class SongSelectionViewController: UIViewController, UITableViewDelegate, UITabl var albumsQuery = MPMediaQuery.albumsQuery() var albums = albumsQuery.items - var rowItem: MPMediaItem = albums[indexPath.row - 1] as! MPMediaItem + var rowItem: MPMediaItem = albums[indexPath.row ] as! MPMediaItem //segue to song selection from album selection @@ -156,7 +143,7 @@ class SongSelectionViewController: UIViewController, UITableViewDelegate, UITabl var artistsQuery = MPMediaQuery.artistsQuery() var artists = artistsQuery.items - var rowItem: MPMediaItem = artists[indexPath.row - 1] as! MPMediaItem + var rowItem: MPMediaItem = artists[indexPath.row ] as! MPMediaItem //segue to song selction from artist //return song cell @@ -166,7 +153,7 @@ class SongSelectionViewController: UIViewController, UITableViewDelegate, UITabl var songsQuery = MPMediaQuery.songsQuery() var songs = songsQuery.items - var rowItem: MPMediaItem = songs[indexPath.row - 1] as! MPMediaItem + var rowItem: MPMediaItem = songs[indexPath.row ] as! MPMediaItem self.party.setSong(rowItem) if(self.party.role == PeerType.Host_Creator){ self.performSegueWithIdentifier("LoadingPartySegue", sender: self) @@ -176,19 +163,13 @@ class SongSelectionViewController: UIViewController, UITableViewDelegate, UITabl } - } + } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { - if( indexPath.row == 0){ - let cell = self.table.dequeueReusableCellWithIdentifier("FilterCell", forIndexPath: indexPath) as? FilterCell - - return cell! - - } - else{ + switch self.filter{ //return albums cell @@ -197,13 +178,23 @@ class SongSelectionViewController: UIViewController, UITableViewDelegate, UITabl var albumsQuery = MPMediaQuery.albumsQuery() - var albums = albumsQuery.items - var rowItem: MPMediaItem = albums[indexPath.row - 1] as! MPMediaItem + albumsQuery.groupingType = MPMediaGrouping.Album + var albums = albumsQuery.collections + var rowItem: MPMediaItemCollection = albums[indexPath.row] as! MPMediaItemCollection + var representative = rowItem.representativeItem - cell?.textLabel?.text = rowItem.valueForProperty(MPMediaItemPropertyAlbumTitle) as? String! - cell?.detailTextLabel?.text = rowItem.valueForProperty(MPMediaItemPropertyAlbumArtist) as? String! + cell?.textLabel?.text = representative.albumTitle //rowItem.valueForProperty(MPMediaItemPropertyAlbumTitle) as? String! + cell?.detailTextLabel?.text = representative.albumArtist //rowItem.valueForProperty(MPMediaItemPropertyArtist) as? String! - var artwork: MPMediaItemArtwork = rowItem.valueForProperty(MPMediaItemPropertyArtwork) as! MPMediaItemArtwork + if (representative.albumArtist == nil) { + cell?.detailTextLabel?.text = "Unknown Artist" + } + + if (representative.albumTitle == nil) { + cell?.textLabel?.text = "Unknown Album" + } + + var artwork: MPMediaItemArtwork = representative.artwork //rowItem.valueForProperty(MPMediaItemPropertyArtwork) as! MPMediaItemArtwork var artworkImage = artwork.imageWithSize(CGSize(width: 44,height: 44)) @@ -223,12 +214,19 @@ class SongSelectionViewController: UIViewController, UITableViewDelegate, UITabl var artistsQuery = MPMediaQuery.artistsQuery() - var artists = artistsQuery.items - var rowItem: MPMediaItem = artists[indexPath.row - 1] as! MPMediaItem + artistsQuery.groupingType = MPMediaGrouping.Artist + var artists = artistsQuery.collections + println(artists.count) + println(indexPath.row) + var rowItem: MPMediaItemCollection = artists[indexPath.row] as! MPMediaItemCollection + var representative = rowItem.representativeItem + cell?.textLabel?.text = representative.artist //rowItem.valueForProperty(MPMediaItemPropertyArtist) as? String! - cell?.textLabel?.text = rowItem.valueForProperty(MPMediaItemPropertyArtist) as? String! + if (representative.artist == nil) { + cell?.detailTextLabel?.text = "Unknown Artist" + } - var artwork: MPMediaItemArtwork = rowItem.valueForProperty(MPMediaItemPropertyArtwork) as! MPMediaItemArtwork + var artwork: MPMediaItemArtwork = representative.artwork//rowItem.valueForProperty(MPMediaItemPropertyArtwork) as! MPMediaItemArtwork var artworkImage = artwork.imageWithSize(CGSize(width: 44,height: 44)) @@ -249,7 +247,7 @@ class SongSelectionViewController: UIViewController, UITableViewDelegate, UITabl var songsQuery = MPMediaQuery.songsQuery() var songs = songsQuery.items - var rowItem: MPMediaItem = songs[indexPath.row - 1] as! MPMediaItem + var rowItem: MPMediaItem = songs[indexPath.row] as! MPMediaItem cell?.textLabel?.text = rowItem.valueForProperty(MPMediaItemPropertyTitle) as? String! cell?.detailTextLabel?.text = rowItem.valueForProperty(MPMediaItemPropertyArtist) as? String! @@ -268,7 +266,7 @@ class SongSelectionViewController: UIViewController, UITableViewDelegate, UITabl return cell! } - } + } @@ -284,8 +282,8 @@ class SongSelectionViewController: UIViewController, UITableViewDelegate, UITabl for i_peer in self.party.invitedFriends{ for peer in self.party.foundPeers { - if (peer.displayName == i_peer.displayName){ - self.party.serviceBrowser.invitePeer(peer, toSession: self.party.session, withContext: nil, timeout: 70.0) + if (peer.displayName == i_peer.displayName && self.party.myPeerID.hash > peer.hash){ + self.party.serviceBrowser.invitePeer(peer, toSession: self.party.session, withContext: nil, timeout: 30.0) break } diff --git a/GetHip/TestInviteFriendsController.swift b/GetHip/TestInviteFriendsController.swift index 074f05c..bbaa5e5 100644 --- a/GetHip/TestInviteFriendsController.swift +++ b/GetHip/TestInviteFriendsController.swift @@ -213,6 +213,7 @@ class TestInviteFriendsController: UIViewController, UITableViewDelegate, UITabl for var i = 0; i < self.isFriendSelected.count; i++ { if (self.isFriendSelected[i] == true) { invited.append(self.frnds[i]) + } } self.partyData.invitedFriends = invited