Made invite screen, just need to create the background connection

This commit is contained in:
Okechi 2016-02-21 19:28:04 -05:00
parent 996e9492b5
commit 77c4a76e39
12 changed files with 350 additions and 43 deletions

View File

@ -14,8 +14,6 @@
3E101F0A1C52F14A00C895CA /* InviteFriendsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E101F091C52F14A00C895CA /* InviteFriendsView.swift */; }; 3E101F0A1C52F14A00C895CA /* InviteFriendsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E101F091C52F14A00C895CA /* InviteFriendsView.swift */; };
3E18D4931C51F6230012F7DF /* UserParseData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E18D4921C51F6230012F7DF /* UserParseData.swift */; }; 3E18D4931C51F6230012F7DF /* UserParseData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E18D4921C51F6230012F7DF /* UserParseData.swift */; };
3E18D4951C51FAC60012F7DF /* UserParseDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E18D4941C51FAC60012F7DF /* UserParseDataSource.swift */; }; 3E18D4951C51FAC60012F7DF /* UserParseDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E18D4941C51FAC60012F7DF /* UserParseDataSource.swift */; };
3E191D7B1C742EA5008D5763 /* Lower@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E191D791C742EA5008D5763 /* Lower@2x.png */; };
3E191D7C1C742EA5008D5763 /* Raise@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E191D7A1C742EA5008D5763 /* Raise@2x.png */; };
3E1AAD141C3BD92600809367 /* FriendsListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1AAD131C3BD92600809367 /* FriendsListViewController.swift */; }; 3E1AAD141C3BD92600809367 /* FriendsListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1AAD131C3BD92600809367 /* FriendsListViewController.swift */; };
3E1B5E451C5274E700D1AB62 /* SettingsDetailViewWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1B5E441C5274E700D1AB62 /* SettingsDetailViewWrapper.swift */; }; 3E1B5E451C5274E700D1AB62 /* SettingsDetailViewWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1B5E441C5274E700D1AB62 /* SettingsDetailViewWrapper.swift */; };
3E1BDA521C37111D00EE3B84 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1BDA511C37111D00EE3B84 /* AppDelegate.swift */; }; 3E1BDA521C37111D00EE3B84 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1BDA511C37111D00EE3B84 /* AppDelegate.swift */; };
@ -108,12 +106,21 @@
3E627FF21C55AE35005C0372 /* TDAudioOutputStreamer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E627FE31C55AE35005C0372 /* TDAudioOutputStreamer.m */; }; 3E627FF21C55AE35005C0372 /* TDAudioOutputStreamer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E627FE31C55AE35005C0372 /* TDAudioOutputStreamer.m */; };
3E627FF31C55AE35005C0372 /* TDAudioPlayerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E627FE51C55AE35005C0372 /* TDAudioPlayerConstants.m */; }; 3E627FF31C55AE35005C0372 /* TDAudioPlayerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E627FE51C55AE35005C0372 /* TDAudioPlayerConstants.m */; };
3E6738F51C6E9C7700B47C3E /* LoginController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E6738F41C6E9C7700B47C3E /* LoginController.swift */; }; 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 */; };
3E76CF261C38258600193B58 /* Parse.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF231C38258600193B58 /* Parse.framework */; }; 3E76CF261C38258600193B58 /* Parse.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF231C38258600193B58 /* Parse.framework */; };
3E76CF271C38258600193B58 /* ParseFacebookUtilsV4.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF241C38258600193B58 /* ParseFacebookUtilsV4.framework */; }; 3E76CF271C38258600193B58 /* ParseFacebookUtilsV4.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF241C38258600193B58 /* ParseFacebookUtilsV4.framework */; };
3E76CF281C38258600193B58 /* ParseUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF251C38258600193B58 /* ParseUI.framework */; }; 3E76CF281C38258600193B58 /* ParseUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF251C38258600193B58 /* ParseUI.framework */; };
3E76CF2A1C38318200193B58 /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF291C38318200193B58 /* Bolts.framework */; }; 3E76CF2A1C38318200193B58 /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF291C38318200193B58 /* Bolts.framework */; };
3E76CF2C1C38349D00193B58 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF2B1C38349D00193B58 /* libsqlite3.dylib */; }; 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 */; }; 3E7BB8E21C5B4A350005B834 /* Change Song@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E7BB8E11C5B4A350005B834 /* Change Song@2x.png */; };
3E7D37D51C75D7EF002E682F /* Raise@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E7D37D41C75D7EF002E682F /* Raise@2x.png */; };
3E7D37D71C75D80F002E682F /* Lower@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E7D37D61C75D80F002E682F /* Lower@2x.png */; };
3E7D37D91C75D882002E682F /* B2P Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E7D37D81C75D882002E682F /* B2P Icon@2x.png */; };
3E7D37DB1C75D899002E682F /* B2P Button@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E7D37DA1C75D899002E682F /* B2P Button@2x.png */; };
3E7D37DD1C75D9C3002E682F /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E7D37DC1C75D9C3002E682F /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png */; };
3EB8845D1C6C647700CCDCCE /* Add More@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3EB8845B1C6C647700CCDCCE /* Add More@2x.png */; }; 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 */; }; 3EB8845E1C6C647700CCDCCE /* Leave Party@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3EB8845C1C6C647700CCDCCE /* Leave Party@2x.png */; };
3EBE97661C53CEDA0079B54A /* Send Invites Button.png in Resources */ = {isa = PBXBuildFile; fileRef = 3EBE97651C53CEDA0079B54A /* Send Invites Button.png */; }; 3EBE97661C53CEDA0079B54A /* Send Invites Button.png in Resources */ = {isa = PBXBuildFile; fileRef = 3EBE97651C53CEDA0079B54A /* Send Invites Button.png */; };
@ -146,8 +153,6 @@
3E101F091C52F14A00C895CA /* InviteFriendsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InviteFriendsView.swift; sourceTree = "<group>"; }; 3E101F091C52F14A00C895CA /* InviteFriendsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InviteFriendsView.swift; sourceTree = "<group>"; };
3E18D4921C51F6230012F7DF /* UserParseData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserParseData.swift; sourceTree = "<group>"; }; 3E18D4921C51F6230012F7DF /* UserParseData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserParseData.swift; sourceTree = "<group>"; };
3E18D4941C51FAC60012F7DF /* UserParseDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserParseDataSource.swift; sourceTree = "<group>"; }; 3E18D4941C51FAC60012F7DF /* UserParseDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserParseDataSource.swift; sourceTree = "<group>"; };
3E191D791C742EA5008D5763 /* Lower@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Lower@2x.png"; path = "../../../Dropbox/Gethip/For final/i5 Volume/Lower@2x.png"; sourceTree = "<group>"; };
3E191D7A1C742EA5008D5763 /* Raise@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Raise@2x.png"; path = "../../../Dropbox/Gethip/For final/i5 Volume/Raise@2x.png"; sourceTree = "<group>"; };
3E1AAD131C3BD92600809367 /* FriendsListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FriendsListViewController.swift; sourceTree = "<group>"; }; 3E1AAD131C3BD92600809367 /* FriendsListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FriendsListViewController.swift; sourceTree = "<group>"; };
3E1B5E441C5274E700D1AB62 /* SettingsDetailViewWrapper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsDetailViewWrapper.swift; sourceTree = "<group>"; }; 3E1B5E441C5274E700D1AB62 /* SettingsDetailViewWrapper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsDetailViewWrapper.swift; sourceTree = "<group>"; };
3E1BDA4C1C37111D00EE3B84 /* GetHip.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GetHip.app; sourceTree = BUILT_PRODUCTS_DIR; }; 3E1BDA4C1C37111D00EE3B84 /* GetHip.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GetHip.app; sourceTree = BUILT_PRODUCTS_DIR; };
@ -262,6 +267,10 @@
3E627FE41C55AE35005C0372 /* TDAudioPlayerConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TDAudioPlayerConstants.h; path = "../../../../Downloads/TDAudioPlayer-master/TDAudioPlayer/AudioPlayerLibrary/TDAudioPlayerConstants.h"; sourceTree = "<group>"; }; 3E627FE41C55AE35005C0372 /* TDAudioPlayerConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TDAudioPlayerConstants.h; path = "../../../../Downloads/TDAudioPlayer-master/TDAudioPlayer/AudioPlayerLibrary/TDAudioPlayerConstants.h"; sourceTree = "<group>"; };
3E627FE51C55AE35005C0372 /* TDAudioPlayerConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TDAudioPlayerConstants.m; path = "../../../../Downloads/TDAudioPlayer-master/TDAudioPlayer/AudioPlayerLibrary/TDAudioPlayerConstants.m"; sourceTree = "<group>"; }; 3E627FE51C55AE35005C0372 /* TDAudioPlayerConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TDAudioPlayerConstants.m; path = "../../../../Downloads/TDAudioPlayer-master/TDAudioPlayer/AudioPlayerLibrary/TDAudioPlayerConstants.m"; sourceTree = "<group>"; };
3E6738F41C6E9C7700B47C3E /* LoginController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginController.swift; sourceTree = "<group>"; }; 3E6738F41C6E9C7700B47C3E /* LoginController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginController.swift; sourceTree = "<group>"; };
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 = "<group>"; };
3E6D43881C7831B100CA805F /* InvitedToPartyViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InvitedToPartyViewController.swift; sourceTree = "<group>"; };
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 = "<group>"; };
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 = "<group>"; };
3E76CF231C38258600193B58 /* Parse.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Parse.framework; path = "../../Parse-iOS/Parse.framework"; sourceTree = "<group>"; }; 3E76CF231C38258600193B58 /* Parse.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Parse.framework; path = "../../Parse-iOS/Parse.framework"; sourceTree = "<group>"; };
3E76CF241C38258600193B58 /* ParseFacebookUtilsV4.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ParseFacebookUtilsV4.framework; path = "../../Parse-iOS/ParseFacebookUtilsV4.framework"; sourceTree = "<group>"; }; 3E76CF241C38258600193B58 /* ParseFacebookUtilsV4.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ParseFacebookUtilsV4.framework; path = "../../Parse-iOS/ParseFacebookUtilsV4.framework"; sourceTree = "<group>"; };
3E76CF251C38258600193B58 /* ParseUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ParseUI.framework; path = "../../Parse-iOS/ParseUI.framework"; sourceTree = "<group>"; }; 3E76CF251C38258600193B58 /* ParseUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ParseUI.framework; path = "../../Parse-iOS/ParseUI.framework"; sourceTree = "<group>"; };
@ -270,6 +279,11 @@
3E76CF2D1C3835C500193B58 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; 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; }; 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 = "<group>"; }; 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 = "<group>"; };
3E7D37D41C75D7EF002E682F /* Raise@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Raise@2x.png"; path = "../../../Dropbox/Gethip/For final/Volume/i5 Volume/Raise@2x.png"; sourceTree = "<group>"; };
3E7D37D61C75D80F002E682F /* Lower@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Lower@2x.png"; path = "../../../Dropbox/Gethip/For final/Volume/i5 Volume/Lower@2x.png"; sourceTree = "<group>"; };
3E7D37D81C75D882002E682F /* B2P Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "B2P Icon@2x.png"; path = "../../../Dropbox/Gethip/For final/Back To Party/i5/B2P Icon@2x.png"; sourceTree = "<group>"; };
3E7D37DA1C75D899002E682F /* B2P Button@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "B2P Button@2x.png"; path = "../../../Dropbox/Gethip/For final/Back To Party/i5/B2P Button@2x.png"; sourceTree = "<group>"; };
3E7D37DC1C75D9C3002E682F /* 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 = "../../../.Trash/Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png"; sourceTree = "<group>"; };
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 = "<group>"; }; 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 = "<group>"; };
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 = "<group>"; }; 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 = "<group>"; };
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 = "<group>"; }; 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 = "<group>"; };
@ -349,6 +363,7 @@
3E101F041C52E50400C895CA /* PartySessionSource */ = { 3E101F041C52E50400C895CA /* PartySessionSource */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
3E6D43871C78318F00CA805F /* InvitedToParty */,
3E1EE6371C6D029800F5C5D7 /* InParty */, 3E1EE6371C6D029800F5C5D7 /* InParty */,
3E34125A1C54C73A006226E0 /* PartySession.swift */, 3E34125A1C54C73A006226E0 /* PartySession.swift */,
3E627FC21C55978E005C0372 /* PartySessionManager.swift */, 3E627FC21C55978E005C0372 /* PartySessionManager.swift */,
@ -474,8 +489,14 @@
3E438AE01C57387B0055C97A /* iPhone5 */ = { 3E438AE01C57387B0055C97A /* iPhone5 */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
3E191D791C742EA5008D5763 /* Lower@2x.png */, 3E6D438C1C78969A00CA805F /* CancelInvited@2x.png */,
3E191D7A1C742EA5008D5763 /* Raise@2x.png */, 3E6D438A1C78968C00CA805F /* Joining@2x.png */,
3E6D43851C782E3200CA805F /* Decline@2x.png */,
3E7D37DC1C75D9C3002E682F /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png */,
3E7D37DA1C75D899002E682F /* B2P Button@2x.png */,
3E7D37D81C75D882002E682F /* B2P Icon@2x.png */,
3E7D37D61C75D80F002E682F /* Lower@2x.png */,
3E7D37D41C75D7EF002E682F /* Raise@2x.png */,
3E0B78B71C6E3756001DF21E /* Pause-52.png */, 3E0B78B71C6E3756001DF21E /* Pause-52.png */,
3E0B78B81C6E3756001DF21E /* Play-52.png */, 3E0B78B81C6E3756001DF21E /* Play-52.png */,
3EB8845B1C6C647700CCDCCE /* Add More@2x.png */, 3EB8845B1C6C647700CCDCCE /* Add More@2x.png */,
@ -673,6 +694,14 @@
path = Classes; path = Classes;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
3E6D43871C78318F00CA805F /* InvitedToParty */ = {
isa = PBXGroup;
children = (
3E6D43881C7831B100CA805F /* InvitedToPartyViewController.swift */,
);
name = InvitedToParty;
sourceTree = "<group>";
};
3EBE97641C53CE950079B54A /* InviteFriends */ = { 3EBE97641C53CE950079B54A /* InviteFriends */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -778,6 +807,7 @@
files = ( files = (
3E5BD3171C6C45CE00266B16 /* StarPlayer@2x.png in Resources */, 3E5BD3171C6C45CE00266B16 /* StarPlayer@2x.png in Resources */,
3E5BD3161C6C45CE00266B16 /* Party@2x.png in Resources */, 3E5BD3161C6C45CE00266B16 /* Party@2x.png in Resources */,
3E7D37D71C75D80F002E682F /* Lower@2x.png in Resources */,
3E4169491C385F1000B193AF /* 1x.png in Resources */, 3E4169491C385F1000B193AF /* 1x.png in Resources */,
3E5952641C39DBC900C88C71 /* Friends@2x.png in Resources */, 3E5952641C39DBC900C88C71 /* Friends@2x.png in Resources */,
3E59528B1C39EB6100C88C71 /* Turntable@3x.png in Resources */, 3E59528B1C39EB6100C88C71 /* Turntable@3x.png in Resources */,
@ -797,23 +827,26 @@
3E0B78B91C6E3756001DF21E /* Pause-52.png in Resources */, 3E0B78B91C6E3756001DF21E /* Pause-52.png in Resources */,
3E5952811C39DDA800C88C71 /* Settings.png in Resources */, 3E5952811C39DDA800C88C71 /* Settings.png in Resources */,
3E59527E1C39DDA800C88C71 /* Group.png in Resources */, 3E59527E1C39DDA800C88C71 /* Group.png in Resources */,
3E6D438D1C78969A00CA805F /* CancelInvited@2x.png in Resources */,
3E7D37DB1C75D899002E682F /* B2P Button@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 */, 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 */, 3E33EFDC1C5B56340011B9B5 /* No Friend Requests i5@2x.png in Resources */,
3E7D37DD1C75D9C3002E682F /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@2x.png in Resources */,
3E33EFDA1C5B56340011B9B5 /* Accept@2x.png in Resources */, 3E33EFDA1C5B56340011B9B5 /* Accept@2x.png in Resources */,
3E438AE91C5738EF0055C97A /* Star@2x.png in Resources */, 3E438AE91C5738EF0055C97A /* Star@2x.png in Resources */,
3E5BD3151C6C45CE00266B16 /* Home Copy@2x.png in Resources */, 3E5BD3151C6C45CE00266B16 /* Home Copy@2x.png in Resources */,
3E5952831C39DDA800C88C71 /* Settings@3x.png in Resources */, 3E5952831C39DDA800C88C71 /* Settings@3x.png in Resources */,
3E191D7B1C742EA5008D5763 /* Lower@2x.png in Resources */,
3E7BB8E21C5B4A350005B834 /* Change Song@2x.png in Resources */, 3E7BB8E21C5B4A350005B834 /* Change Song@2x.png in Resources */,
3E59526B1C39DBC900C88C71 /* Star@3x.png in Resources */, 3E59526B1C39DBC900C88C71 /* Star@3x.png in Resources */,
3E59527B1C39DDA800C88C71 /* Create.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 */, 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 */, 3EBE976C1C53E4290079B54A /* Tap Circle.png in Resources */,
3E7D37D91C75D882002E682F /* B2P Icon@2x.png in Resources */,
3E5952671C39DBC900C88C71 /* Settings@2x.png in Resources */, 3E5952671C39DBC900C88C71 /* Settings@2x.png in Resources */,
3EBE976A1C53E4290079B54A /* Blue Check.png in Resources */, 3EBE976A1C53E4290079B54A /* Blue Check.png in Resources */,
3E438AE71C5738EF0055C97A /* Friends@2x.png in Resources */, 3E438AE71C5738EF0055C97A /* Friends@2x.png in Resources */,
3E59528A1C39EB6100C88C71 /* Turntable@2x.png in Resources */, 3E59528A1C39EB6100C88C71 /* Turntable@2x.png in Resources */,
3E191D7C1C742EA5008D5763 /* Raise@2x.png in Resources */,
3E0B78BA1C6E3756001DF21E /* Play-52.png in Resources */, 3E0B78BA1C6E3756001DF21E /* Play-52.png in Resources */,
3E438ADE1C572DFD0055C97A /* Main.storyboard in Resources */, 3E438ADE1C572DFD0055C97A /* Main.storyboard in Resources */,
3E438AE81C5738EF0055C97A /* Settings@2x.png in Resources */, 3E438AE81C5738EF0055C97A /* Settings@2x.png in Resources */,
@ -822,12 +855,14 @@
3E59527F1C39DDA800C88C71 /* Group@2x.png in Resources */, 3E59527F1C39DDA800C88C71 /* Group@2x.png in Resources */,
3E5952691C39DBC900C88C71 /* Star.png in Resources */, 3E5952691C39DBC900C88C71 /* Star.png in Resources */,
3E59527C1C39DDA800C88C71 /* Create@2x.png in Resources */, 3E59527C1C39DDA800C88C71 /* Create@2x.png in Resources */,
3E7D37D51C75D7EF002E682F /* Raise@2x.png in Resources */,
3E59526A1C39DBC900C88C71 /* Star@2x.png in Resources */, 3E59526A1C39DBC900C88C71 /* Star@2x.png in Resources */,
3E5952821C39DDA800C88C71 /* Settings@2x.png in Resources */, 3E5952821C39DDA800C88C71 /* Settings@2x.png in Resources */,
3EB8845D1C6C647700CCDCCE /* Add More@2x.png in Resources */, 3EB8845D1C6C647700CCDCCE /* Add More@2x.png in Resources */,
3E1BDA5F1C37111D00EE3B84 /* LaunchScreen.xib in Resources */, 3E1BDA5F1C37111D00EE3B84 /* LaunchScreen.xib in Resources */,
3E438AE61C5738EF0055C97A /* Create@2x.png in Resources */, 3E438AE61C5738EF0055C97A /* Create@2x.png in Resources */,
3E5952651C39DBC900C88C71 /* Friends@3x.png in Resources */, 3E5952651C39DBC900C88C71 /* Friends@3x.png in Resources */,
3E6D43861C782E3200CA805F /* Decline@2x.png in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -852,6 +887,7 @@
3E627FC31C55978E005C0372 /* PartySessionManager.swift in Sources */, 3E627FC31C55978E005C0372 /* PartySessionManager.swift in Sources */,
3E627FE61C55AE35005C0372 /* NSInputStream+URLInitialization.m in Sources */, 3E627FE61C55AE35005C0372 /* NSInputStream+URLInitialization.m in Sources */,
3E5485B51C69CE2F00E7D5AB /* InvitedCollectionViewCell.swift in Sources */, 3E5485B51C69CE2F00E7D5AB /* InvitedCollectionViewCell.swift in Sources */,
3E6D43891C7831B100CA805F /* InvitedToPartyViewController.swift in Sources */,
3E3412571C54C31F006226E0 /* SongSelectionViewController.swift in Sources */, 3E3412571C54C31F006226E0 /* SongSelectionViewController.swift in Sources */,
3E627FE81C55AE35005C0372 /* TDAudioMetaInfo.m in Sources */, 3E627FE81C55AE35005C0372 /* TDAudioMetaInfo.m in Sources */,
3E6738F51C6E9C7700B47C3E /* LoginController.swift in Sources */, 3E6738F51C6E9C7700B47C3E /* LoginController.swift in Sources */,

View File

@ -36,9 +36,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate , CLLocationManagerDelegat
// Override point for customization after application launch. // Override point for customization after application launch.
Parse.setApplicationId("OUFlGeqCzg03ZbstGcbskj7UNwp53Y0yad9Fi6I0", clientKey: "xaw0kbAFnBi3zLhT1uSnzrzju56m7CnQJ8hJHW1K") Parse.setApplicationId("OUFlGeqCzg03ZbstGcbskj7UNwp53Y0yad9Fi6I0", clientKey: "xaw0kbAFnBi3zLhT1uSnzrzju56m7CnQJ8hJHW1K")
PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions); PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions);
/*
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true) let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
print(paths[0])*/ print(paths[0])
startSignificantChangeUpdates() startSignificantChangeUpdates()
return true return true

View File

@ -14,6 +14,10 @@ class BackToHomeScreenViewController: UIViewController {
var userData: [UserParseData] = [] var userData: [UserParseData] = []
var partyData: PartyServiceManager! var partyData: PartyServiceManager!
@IBAction func backToParty(sender: UIButton){
self.dismissViewControllerAnimated(true, completion: nil)
}
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
@ -47,7 +51,7 @@ class BackToHomeScreenViewController: UIViewController {
let nav: UINavigationController = (segue.destinationViewController as? UINavigationController)! let nav: UINavigationController = (segue.destinationViewController as? UINavigationController)!
let vc: FriendsListViewController = (nav.viewControllers[0] as? FriendsListViewController)! let vc: FriendsListViewController = (nav.viewControllers[0] as? FriendsListViewController)!
vc.setData(self.friendData, requst: self.requestData) vc.setData(self.friendData, requst: self.requestData, party: self.partyData)
} }
} }

View File

@ -11,6 +11,7 @@ import UIKit
class FriendRequestViewController: UIViewController{ class FriendRequestViewController: UIViewController{
var searchedUsername: String! var searchedUsername: String!
var frnds: [String]! var frnds: [String]!
var party: PartyServiceManager!
@IBOutlet var displayImage: UIImageView! @IBOutlet var displayImage: UIImageView!
@IBOutlet var foundName: UILabel! @IBOutlet var foundName: UILabel!
@ -93,8 +94,9 @@ class FriendRequestViewController: UIViewController{
} }
func setData(friends: [String]){ func setData(friends: [String], party: PartyServiceManager){
self.frnds = friends self.frnds = friends
self.party = party
} }
override func viewDidLoad() { override func viewDidLoad() {

View File

@ -12,6 +12,7 @@ class FriendsListViewController: UIViewController, UITableViewDelegate, UITableV
//var manager = FriendDataSource() //var manager = FriendDataSource()
var friends = [] var friends = []
var request = [] var request = []
var party: PartyServiceManager!
@IBOutlet weak var table: UITableView! @IBOutlet weak var table: UITableView!
@ -26,9 +27,10 @@ class FriendsListViewController: UIViewController, UITableViewDelegate, UITableV
self.performSegueWithIdentifier("FriendRequestSegue", sender: nil) self.performSegueWithIdentifier("FriendRequestSegue", sender: nil)
} }
func setData(frnds:[FriendData], requst: [FriendData]){ func setData(frnds:[FriendData], requst: [FriendData], party: PartyServiceManager){
self.friends = frnds self.friends = frnds
self.request = requst self.request = requst
self.party = party
} }
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
@ -155,7 +157,7 @@ class FriendsListViewController: UIViewController, UITableViewDelegate, UITableV
if segue.identifier == "PendingRequestSegue" { if segue.identifier == "PendingRequestSegue" {
let vc: PendingRequestViewController = (segue.destinationViewController as? PendingRequestViewController)! let vc: PendingRequestViewController = (segue.destinationViewController as? PendingRequestViewController)!
vc.setData(self.request as! [FriendData]) vc.setData(self.request as! [FriendData], party: self.party)
} }
@ -171,14 +173,8 @@ class FriendsListViewController: UIViewController, UITableViewDelegate, UITableV
} }
/*for name in self.friends{
//bad instruction here, fix later
println(name.displayName as String!)
frndNames.append(name.displayName!)
}*/
let vc: FriendRequestViewController = (segue.destinationViewController as? FriendRequestViewController)! let vc: FriendRequestViewController = (segue.destinationViewController as? FriendRequestViewController)!
vc.setData(frndNames) vc.setData(frndNames, party: self.party)
} }
} }

View File

@ -39,15 +39,8 @@ class HomeScreenViewController: UIViewController {
self.partyData.setPeerID((self.userData[0].displayName)) self.partyData.setPeerID((self.userData[0].displayName))
self.partyData.setAdvertiser() self.partyData.setAdvertiser()
//initialize browser to find nearby friends //start peer-to-peer advertising
self.partyData.setBrowser()
//initialize session
self.partyData.initializeSession()
//start peer-to-peer transcieveing
self.partyData.startListening() self.partyData.startListening()
self.partyData.startBrowser()
} }
func loadID(notification: NSNotification){ func loadID(notification: NSNotification){
@ -55,6 +48,15 @@ class HomeScreenViewController: UIViewController {
} }
@IBAction func testGuest(sender: UIButton){
var storyboard = UIStoryboard(name: "Main", bundle: nil)
var vc: InvitedToPartyViewController = storyboard.instantiateViewControllerWithIdentifier("InvitedToPartyVC") as! InvitedToPartyViewController!
vc.setData(self.partyData, user: self.userData, friends: self.friendData, request: self.requestData)
self.presentViewController(vc, animated: true, completion: nil)
}
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
@ -86,6 +88,7 @@ class HomeScreenViewController: UIViewController {
self.partyData.setRole(PeerType(rawValue: 0)!) self.partyData.setRole(PeerType(rawValue: 0)!)
vc.setData(self.userData, frndData: self.friendData, party: self.partyData, request: self.requestData) vc.setData(self.userData, frndData: self.friendData, party: self.partyData, request: self.requestData)
} }
@ -100,7 +103,7 @@ class HomeScreenViewController: UIViewController {
let nav: UINavigationController = (segue.destinationViewController as? UINavigationController)! let nav: UINavigationController = (segue.destinationViewController as? UINavigationController)!
let vc: FriendsListViewController = (nav.viewControllers[0] as? FriendsListViewController)! let vc: FriendsListViewController = (nav.viewControllers[0] as? FriendsListViewController)!
vc.setData(self.friendData, requst: self.requestData) vc.setData(self.friendData, requst: self.requestData, party: self.partyData)
} }
} }

View File

@ -0,0 +1,66 @@
//
// InvitedToPartyViewController.swift
// GetHip
//
// Created by Okechi on 2/20/16.
// Copyright (c) 2016 Kroleo. All rights reserved.
//
import UIKit
class InvitedToPartyViewController: UIViewController {
var friendData: [FriendData] = []
var requestData: [FriendData] = []
var userData: [UserParseData] = []
var partyData: PartyServiceManager!
@IBOutlet var img: UIImageView!
@IBAction func declineInvite(sender: UIButton){
self.dismissViewControllerAnimated(true, completion: nil)
}
@IBAction func acceptInvite(sender: UIButton){
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func setData(prty:PartyServiceManager, user: [UserParseData], friends: [FriendData], request: [FriendData]){
self.partyData = prty
self.userData = user
self.friendData = friends
self.requestData = request
}
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "InvitedToPartySettingsSegue" {
let nav: UINavigationController = (segue.destinationViewController as? UINavigationController)!
let vc: SettingsTableViewController = (nav.viewControllers[0] as? SettingsTableViewController)!
vc.setData(self.userData, prty: self.partyData)
}
if segue.identifier == "InvitedToPartyFriendsSegue" {
let nav: UINavigationController = (segue.destinationViewController as? UINavigationController)!
let vc: FriendsListViewController = (nav.viewControllers[0] as? FriendsListViewController)!
vc.setData(self.friendData, requst: self.requestData, party: self.partyData)
}
}
}

View File

@ -191,6 +191,109 @@
</objects> </objects>
<point key="canvasLocation" x="1123" y="2058"/> <point key="canvasLocation" x="1123" y="2058"/>
</scene> </scene>
<!--View Controller-->
<scene sceneID="PXH-Ng-lFX">
<objects>
<viewController id="jhT-5c-UMD" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="bQJ-lX-fQH"/>
<viewControllerLayoutGuide type="bottom" id="RR8-vy-khf"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="dtk-1e-2Le">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="Joining.png" translatesAutoresizingMaskIntoConstraints="NO" id="Y89-Ji-uFg">
<rect key="frame" x="75" y="241" width="172" height="121"/>
</imageView>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Lgn-oo-e39">
<rect key="frame" x="0.0" y="528" width="320" height="41"/>
<state key="normal" image="CancelInvited.png">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
<connections>
<segue destination="5Fd-vs-lX1" kind="show" identifier="EnteringPartySegue" id="OpG-wQ-NAH"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="yAM-8H-aOk" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="3513" y="439"/>
</scene>
<!--InvitedToPartyVC-->
<scene sceneID="9Gl-h8-nid">
<objects>
<viewController storyboardIdentifier="InvitedToPartyVC" title="InvitedToPartyVC" id="rKy-U8-mLw" customClass="InvitedToPartyViewController" customModule="GetHip" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="wOj-xh-eMD"/>
<viewControllerLayoutGuide type="bottom" id="zE5-jq-uIg"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="m9v-WE-T3h">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="so3-St-AQ6">
<rect key="frame" x="99" y="254" width="122" height="122"/>
</imageView>
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" fixedFrame="YES" text="You have been invited by User to join a Party!" textAlignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="SM0-PN-2rz">
<rect key="frame" x="47" y="157" width="226" height="89"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<fontDescription key="fontDescription" name="HelveticaNeue-Bold" family="Helvetica Neue" pointSize="21"/>
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
</textView>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qlt-XA-jzm">
<rect key="frame" x="271" y="44" width="30" height="29"/>
<state key="normal" image="Settings.png">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<segue destination="0Tt-tN-iza" kind="show" identifier="InvitedToPartySettingsSegue" id="hDN-yC-fGj"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Jjq-Kv-sXj">
<rect key="frame" x="195" y="376" width="32" height="32"/>
<state key="normal" image="Accept.png">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="acceptInvite:" destination="rKy-U8-mLw" eventType="touchUpInside" id="tPy-Ie-5jB"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="oaw-5r-mEb">
<rect key="frame" x="92" y="376" width="32" height="32"/>
<state key="normal" image="Decline.png">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="declineInvite:" destination="rKy-U8-mLw" eventType="touchUpInside" id="kre-cK-cAQ"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qb8-ab-JiN">
<rect key="frame" x="19" y="44" width="56" height="32"/>
<state key="normal" image="Friends.png">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<segue destination="hDZ-CA-Hsj" kind="show" identifier="InvitedToPartyFriendsSegue" id="41S-h6-flP"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
<connections>
<outlet property="img" destination="so3-St-AQ6" id="T0w-OK-mUA"/>
<segue destination="jhT-5c-UMD" kind="show" identifier="JoiningPartySegue" id="U4V-ga-nL4"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="wuc-cq-5dv" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="3189" y="1425"/>
</scene>
<!--Friend Request View Controller--> <!--Friend Request View Controller-->
<scene sceneID="cB3-Zf-GpF"> <scene sceneID="cB3-Zf-GpF">
<objects> <objects>
@ -520,6 +623,9 @@
<state key="normal" image="Star@3x.png"> <state key="normal" image="Star@3x.png">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state> </state>
<connections>
<action selector="testGuest:" destination="i3K-xv-zw1" eventType="touchUpInside" id="YpK-nZ-p8K"/>
</connections>
</button> </button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="NHH-gh-nMz" userLabel="Friends"> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="NHH-gh-nMz" userLabel="Friends">
<rect key="frame" x="19" y="44" width="56" height="32"/> <rect key="frame" x="19" y="44" width="56" height="32"/>
@ -1093,6 +1199,15 @@
<segue destination="hDZ-CA-Hsj" kind="show" identifier="FromPartyFriendsSegue" id="wiM-xb-lpR"/> <segue destination="hDZ-CA-Hsj" kind="show" identifier="FromPartyFriendsSegue" id="wiM-xb-lpR"/>
</connections> </connections>
</button> </button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="EDf-Bs-Vg5">
<rect key="frame" x="74" y="206" width="173" height="155"/>
<state key="normal" image="Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2.png">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="backToParty:" destination="Voh-zF-gkm" eventType="touchUpInside" id="loj-oe-a9k"/>
</connections>
</button>
</subviews> </subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view> </view>
@ -1508,16 +1623,20 @@
<image name="Accept.png" width="28" height="28"/> <image name="Accept.png" width="28" height="28"/>
<image name="Add More.png" width="152" height="36"/> <image name="Add More.png" width="152" height="36"/>
<image name="Cancel.png" width="28" height="28"/> <image name="Cancel.png" width="28" height="28"/>
<image name="CancelInvited.png" width="320" height="41"/>
<image name="Change Song.png" width="152" height="24"/> <image name="Change Song.png" width="152" height="24"/>
<image name="Create@3x.png" width="471" height="93"/> <image name="Create@3x.png" width="471" height="93"/>
<image name="Decline.png" width="32" height="32"/>
<image name="Friends.png" width="73" height="42"/> <image name="Friends.png" width="73" height="42"/>
<image name="Friends@3x.png" width="219" height="126"/> <image name="Friends@3x.png" width="219" height="126"/>
<image name="Home Copy.png" width="34" height="34"/> <image name="Home Copy.png" width="34" height="34"/>
<image name="Joining.png" width="171" height="121"/>
<image name="Lower.png" width="7" height="10"/> <image name="Lower.png" width="7" height="10"/>
<image name="No Friend Requests i5.png" width="320" height="568"/> <image name="No Friend Requests i5.png" width="320" height="568"/>
<image name="Party.png" width="81" height="41"/> <image name="Party.png" width="81" height="41"/>
<image name="Pause-52.png" width="52" height="52"/> <image name="Pause-52.png" width="52" height="52"/>
<image name="Raise.png" width="14" height="13"/> <image name="Raise.png" width="14" height="13"/>
<image name="Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2.png" width="203" height="153"/>
<image name="Send Invites Button.png" width="375" height="46"/> <image name="Send Invites Button.png" width="375" height="46"/>
<image name="Send.png" width="152" height="24"/> <image name="Send.png" width="152" height="24"/>
<image name="Settings.png" width="39" height="38"/> <image name="Settings.png" width="39" height="38"/>
@ -1527,8 +1646,9 @@
<image name="Turntable@3x.png" width="434" height="434"/> <image name="Turntable@3x.png" width="434" height="434"/>
</resources> </resources>
<inferredMetricsTieBreakers> <inferredMetricsTieBreakers>
<segue reference="WxI-P3-JZ9"/> <segue reference="hDN-yC-fGj"/>
<segue reference="41S-h6-flP"/>
<segue reference="OpG-wQ-NAH"/>
<segue reference="5pn-ck-WiI"/> <segue reference="5pn-ck-WiI"/>
<segue reference="wiM-xb-lpR"/>
</inferredMetricsTieBreakers> </inferredMetricsTieBreakers>
</document> </document>

View File

@ -12,9 +12,13 @@ import MediaPlayer
protocol PartyServiceManagerDelegate { protocol PartyServiceManagerDelegate {
func didConnectToPeer(serviceManager: PartyServiceManager, didConnectToPeer peerIDName: String ) func foundPeer()
func foundAPeer(serviceManager: PartyServiceManager, foundPeer: String) func lostPeer()
func invitationWasRecieved(fromPeer: String)
func connectedWithPeer(peerID: MCPeerID)
} }
@ -40,12 +44,13 @@ class PartyServiceManager: NSObject {
var myPeerID: MCPeerID! = nil var myPeerID: MCPeerID! = nil
var serviceBrowser: MCNearbyServiceBrowser! = nil var serviceBrowser: MCNearbyServiceBrowser! = nil
var session: MCSession! = nil var session: MCSession! = nil
// var delegate: PartyServiceManagerDelegate? var delegate: PartyServiceManagerDelegate?
//peer variables //peer variables
var foundPeers: [String] = [] var foundPeers: [MCPeerID] = [MCPeerID]()
var invitedFriends: [FriendData] = [] var invitedFriends: [FriendData] = []
var role: PeerType! = nil var role: PeerType! = nil
var currentHost: String!
var connectingPeersDictionary = NSMutableDictionary() var connectingPeersDictionary = NSMutableDictionary()
var disconnectedPeersDictionary = NSMutableDictionary() var disconnectedPeersDictionary = NSMutableDictionary()
@ -83,6 +88,17 @@ class PartyServiceManager: NSObject {
println("Role set to %@", self.role.rawValue) println("Role set to %@", self.role.rawValue)
} }
func chooseNextHost(){
var numPeers = self.connectedPeers().count
var nextHostIndex = Int(arc4random_uniform(UInt32(numPeers)))
if (self.connectedPeers()[nextHostIndex].displayName == self.currentHost){
chooseNextHost()
}else{
self.currentHost = self.connectedPeers()[nextHostIndex].displayName
}
}
//Listening methods //Listening methods
func setAdvertiser(){ func setAdvertiser(){
self.serviceAdvertiser = MCNearbyServiceAdvertiser(peer: self.myPeerID, discoveryInfo: nil, serviceType: self.PartyServiceType) self.serviceAdvertiser = MCNearbyServiceAdvertiser(peer: self.myPeerID, discoveryInfo: nil, serviceType: self.PartyServiceType)
@ -147,6 +163,7 @@ class PartyServiceManager: NSObject {
//Host Methods //Host Methods
func initializeSession(){ func initializeSession(){
self.session = MCSession(peer: self.myPeerID, securityIdentity: nil, encryptionPreference: MCEncryptionPreference.Required) self.session = MCSession(peer: self.myPeerID, securityIdentity: nil, encryptionPreference: MCEncryptionPreference.Required)
self.session.delegate = self
println("Initialized Peer-To-Peer Connection") println("Initialized Peer-To-Peer Connection")
} }
@ -193,8 +210,9 @@ extension PartyServiceManager: MCNearbyServiceBrowserDelegate{
if(peerID.displayName != self.myPeerID.displayName) { if(peerID.displayName != self.myPeerID.displayName) {
NSLog("%@", "foundPeer: \(peerID)") NSLog("%@", "foundPeer: \(peerID)")
self.foundPeers.append(peerID.displayName) self.foundPeers.append(peerID)
self.serviceBrowser.invitePeer(peerID, toSession: self.session, withContext: nil, timeout: NSTimeInterval(10.00)) self.delegate?.foundPeer()
//self.serviceBrowser.invitePeer(peerID, toSession: self.session, withContext: nil, timeout: NSTimeInterval(10.00))
} }
@ -203,6 +221,15 @@ extension PartyServiceManager: MCNearbyServiceBrowserDelegate{
func browser(browser: MCNearbyServiceBrowser!, lostPeer peerID: MCPeerID!) { func browser(browser: MCNearbyServiceBrowser!, lostPeer peerID: MCPeerID!) {
NSLog("%@", "lostPeer: \(peerID)") NSLog("%@", "lostPeer: \(peerID)")
for(index, aPeer) in enumerate(foundPeers) {
if aPeer == peerID{
foundPeers.removeAtIndex(index)
break
}
}
delegate?.lostPeer()
} }
} }

View File

@ -12,7 +12,7 @@ class PendingRequestViewController: UITableViewController {
@IBOutlet var table:UITableView! @IBOutlet var table:UITableView!
var requests = [] var requests = []
var party: PartyServiceManager!
@IBAction func didAcceptFriend(sender: AnyObject?){ @IBAction func didAcceptFriend(sender: AnyObject?){
var path:NSIndexPath = self.table.indexPathForCell(sender?.superview!!.superview as! PendingFriendCell)! var path:NSIndexPath = self.table.indexPathForCell(sender?.superview!!.superview as! PendingFriendCell)!
@ -105,8 +105,9 @@ class PendingRequestViewController: UITableViewController {
// Dispose of any resources that can be recreated. // Dispose of any resources that can be recreated.
} }
func setData(data: [FriendData]){ func setData(data: [FriendData], party: PartyServiceManager){
self.requests = data self.requests = data
self.party = party
} }
// MARK: - Table view data source // MARK: - Table view data source

View File

@ -24,7 +24,10 @@ class SettingsTableViewController: UIViewController, UITableViewDataSource, UITa
@IBAction func logOutUser(sender: UIButton) { @IBAction func logOutUser(sender: UIButton) {
self.party.stopAllServices() self.party.stopListening()
self.party.serviceAdvertiser = nil
PFUser.logOut() PFUser.logOut()
if PFUser.currentUser() == nil { if PFUser.currentUser() == nil {

View File

@ -9,17 +9,21 @@
import UIKit import UIKit
import MultipeerConnectivity import MultipeerConnectivity
class TestInviteFriendsController: UIViewController, UITableViewDelegate, UITableViewDataSource { class TestInviteFriendsController: UIViewController, UITableViewDelegate, UITableViewDataSource, PartyServiceManagerDelegate {
var usr: [UserParseData] = [] var usr: [UserParseData] = []
var frnds: [FriendData] = [] var frnds: [FriendData] = []
var requestData: [FriendData] = [] var requestData: [FriendData] = []
var isFriendSelected: [Bool] = [] var isFriendSelected: [Bool] = []
var isInvitable: [Bool] = []
var partyData: PartyServiceManager! = nil var partyData: PartyServiceManager! = nil
@IBOutlet weak var table: UITableView! @IBOutlet weak var table: UITableView!
@IBAction func cancelInvites(sender: UIBarButtonItem) { @IBAction func cancelInvites(sender: UIBarButtonItem) {
//println("Browser service deinitialized and browser deinitialized") //println("Browser service deinitialized and browser deinitialized")
self.partyData.stopBrowsing()
self.partyData.serviceBrowser = nil
self.parentViewController?.dismissViewControllerAnimated(true, completion: nil) self.parentViewController?.dismissViewControllerAnimated(true, completion: nil)
} }
@ -50,14 +54,36 @@ class TestInviteFriendsController: UIViewController, UITableViewDelegate, UITabl
for i in 0..<self.frnds.count{ for i in 0..<self.frnds.count{
self.isFriendSelected.append(false) self.isFriendSelected.append(false)
self.isInvitable.append(false)
} }
} }
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
self.table.dataSource = self self.table.dataSource = self
self.table.delegate = self self.table.delegate = self
self.partyData.delegate = self
//start browsing for peers
self.partyData.setBrowser()
self.partyData.startBrowser()
self.partyData.initializeSession()
self.navigationController?.navigationBarHidden = false self.navigationController?.navigationBarHidden = false
for foundPeer in self.partyData.foundPeers {
for friend in self.frnds {
if foundPeer.displayName == friend.displayName {
for(index, aFriend) in enumerate(self.frnds) {
if aFriend.displayName == friend.displayName {
self.isInvitable[index] = true
break
}
}
}
}
}
// Uncomment the following line to preserve selection between presentations // Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false // self.clearsSelectionOnViewWillAppear = false
@ -107,11 +133,15 @@ class TestInviteFriendsController: UIViewController, UITableViewDelegate, UITabl
//cell!.proImage.layer.borderWidth = 3.0 //cell!.proImage.layer.borderWidth = 3.0
//cell!.proImage.clipsToBounds = true //cell!.proImage.clipsToBounds = true
cell!.proImage.layer.cornerRadius = cell!.proImage.frame.size.width/2 cell!.proImage.layer.cornerRadius = cell!.proImage.frame.size.width/2
cell!.alpha = 0.5
//cell!.proImage.layer.borderColor = UIColor.whiteColor().CGColor //cell!.proImage.layer.borderColor = UIColor.whiteColor().CGColor
//cell!.proImage.layer.masksToBounds = true //cell!.proImage.layer.masksToBounds = true
cell!.rdioButton.layer.cornerRadius = cell!.rdioButton.frame.size.width/2 cell!.rdioButton.layer.cornerRadius = cell!.rdioButton.frame.size.width/2
//for testing purposes - MPCBrowsing
if(self.isInvitable[indexPath.row] == true){
cell!.proImage.alpha = 0.5
}
return cell! return cell!
} }
@ -130,6 +160,7 @@ class TestInviteFriendsController: UIViewController, UITableViewDelegate, UITabl
} }
//Navigation preperation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var invited: [FriendData] = [] var invited: [FriendData] = []
for var i = 0; i < self.isFriendSelected.count; i++ { for var i = 0; i < self.isFriendSelected.count; i++ {
@ -189,3 +220,21 @@ class TestInviteFriendsController: UIViewController, UITableViewDelegate, UITabl
} }
*/ */
} }
extension TestInviteFriendsController: PartyServiceManagerDelegate {
func foundPeer() {
self.table.reloadData()
}
func lostPeer() {
self.table.reloadData()
}
func invitationWasRecieved(fromPeer: String) {
}
func connectedWithPeer(peerID: MCPeerID) {
}
}