diff --git a/GetHip.xcodeproj/project.pbxproj b/GetHip.xcodeproj/project.pbxproj index 5a263bb..b3ce080 100644 --- a/GetHip.xcodeproj/project.pbxproj +++ b/GetHip.xcodeproj/project.pbxproj @@ -14,8 +14,6 @@ 3E101F0A1C52F14A00C895CA /* InviteFriendsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E101F091C52F14A00C895CA /* InviteFriendsView.swift */; }; 3E18D4931C51F6230012F7DF /* UserParseData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E18D4921C51F6230012F7DF /* UserParseData.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 */; }; 3E1B5E451C5274E700D1AB62 /* SettingsDetailViewWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E1B5E441C5274E700D1AB62 /* SettingsDetailViewWrapper.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 */; }; 3E627FF31C55AE35005C0372 /* TDAudioPlayerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E627FE51C55AE35005C0372 /* TDAudioPlayerConstants.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 */; }; 3E76CF261C38258600193B58 /* Parse.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF231C38258600193B58 /* Parse.framework */; }; 3E76CF271C38258600193B58 /* ParseFacebookUtilsV4.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF241C38258600193B58 /* ParseFacebookUtilsV4.framework */; }; 3E76CF281C38258600193B58 /* ParseUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF251C38258600193B58 /* ParseUI.framework */; }; 3E76CF2A1C38318200193B58 /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF291C38318200193B58 /* Bolts.framework */; }; 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 */; }; + 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 */; }; 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 */; }; @@ -146,8 +153,6 @@ 3E101F091C52F14A00C895CA /* InviteFriendsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InviteFriendsView.swift; sourceTree = ""; }; 3E18D4921C51F6230012F7DF /* UserParseData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserParseData.swift; sourceTree = ""; }; 3E18D4941C51FAC60012F7DF /* UserParseDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserParseDataSource.swift; sourceTree = ""; }; - 3E191D791C742EA5008D5763 /* Lower@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Lower@2x.png"; path = "../../../Dropbox/Gethip/For final/i5 Volume/Lower@2x.png"; sourceTree = ""; }; - 3E191D7A1C742EA5008D5763 /* Raise@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Raise@2x.png"; path = "../../../Dropbox/Gethip/For final/i5 Volume/Raise@2x.png"; sourceTree = ""; }; 3E1AAD131C3BD92600809367 /* FriendsListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FriendsListViewController.swift; sourceTree = ""; }; 3E1B5E441C5274E700D1AB62 /* SettingsDetailViewWrapper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsDetailViewWrapper.swift; sourceTree = ""; }; 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 = ""; }; 3E627FE51C55AE35005C0372 /* TDAudioPlayerConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TDAudioPlayerConstants.m; path = "../../../../Downloads/TDAudioPlayer-master/TDAudioPlayer/AudioPlayerLibrary/TDAudioPlayerConstants.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 = ""; }; 3E76CF231C38258600193B58 /* Parse.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Parse.framework; path = "../../Parse-iOS/Parse.framework"; sourceTree = ""; }; 3E76CF241C38258600193B58 /* ParseFacebookUtilsV4.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ParseFacebookUtilsV4.framework; path = "../../Parse-iOS/ParseFacebookUtilsV4.framework"; sourceTree = ""; }; 3E76CF251C38258600193B58 /* ParseUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ParseUI.framework; path = "../../Parse-iOS/ParseUI.framework"; sourceTree = ""; }; @@ -270,6 +279,11 @@ 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 = ""; }; + 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 = ""; }; + 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 = ""; }; + 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 = ""; }; + 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 = ""; }; + 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 = ""; }; 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 = ""; }; 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 = ""; }; @@ -349,6 +363,7 @@ 3E101F041C52E50400C895CA /* PartySessionSource */ = { isa = PBXGroup; children = ( + 3E6D43871C78318F00CA805F /* InvitedToParty */, 3E1EE6371C6D029800F5C5D7 /* InParty */, 3E34125A1C54C73A006226E0 /* PartySession.swift */, 3E627FC21C55978E005C0372 /* PartySessionManager.swift */, @@ -474,8 +489,14 @@ 3E438AE01C57387B0055C97A /* iPhone5 */ = { isa = PBXGroup; children = ( - 3E191D791C742EA5008D5763 /* Lower@2x.png */, - 3E191D7A1C742EA5008D5763 /* Raise@2x.png */, + 3E6D438C1C78969A00CA805F /* CancelInvited@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 */, 3E0B78B81C6E3756001DF21E /* Play-52.png */, 3EB8845B1C6C647700CCDCCE /* Add More@2x.png */, @@ -673,6 +694,14 @@ path = Classes; sourceTree = ""; }; + 3E6D43871C78318F00CA805F /* InvitedToParty */ = { + isa = PBXGroup; + children = ( + 3E6D43881C7831B100CA805F /* InvitedToPartyViewController.swift */, + ); + name = InvitedToParty; + sourceTree = ""; + }; 3EBE97641C53CE950079B54A /* InviteFriends */ = { isa = PBXGroup; children = ( @@ -778,6 +807,7 @@ files = ( 3E5BD3171C6C45CE00266B16 /* StarPlayer@2x.png in Resources */, 3E5BD3161C6C45CE00266B16 /* Party@2x.png in Resources */, + 3E7D37D71C75D80F002E682F /* Lower@2x.png in Resources */, 3E4169491C385F1000B193AF /* 1x.png in Resources */, 3E5952641C39DBC900C88C71 /* Friends@2x.png in Resources */, 3E59528B1C39EB6100C88C71 /* Turntable@3x.png in Resources */, @@ -797,23 +827,26 @@ 3E0B78B91C6E3756001DF21E /* Pause-52.png in Resources */, 3E5952811C39DDA800C88C71 /* Settings.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 */, + 3E6D438B1C78968C00CA805F /* Joining@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 */, 3E438AE91C5738EF0055C97A /* Star@2x.png in Resources */, 3E5BD3151C6C45CE00266B16 /* Home Copy@2x.png in Resources */, 3E5952831C39DDA800C88C71 /* Settings@3x.png in Resources */, - 3E191D7B1C742EA5008D5763 /* Lower@2x.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 */, + 3E7D37D91C75D882002E682F /* B2P Icon@2x.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 */, - 3E191D7C1C742EA5008D5763 /* Raise@2x.png in Resources */, 3E0B78BA1C6E3756001DF21E /* Play-52.png in Resources */, 3E438ADE1C572DFD0055C97A /* Main.storyboard in Resources */, 3E438AE81C5738EF0055C97A /* Settings@2x.png in Resources */, @@ -822,12 +855,14 @@ 3E59527F1C39DDA800C88C71 /* Group@2x.png in Resources */, 3E5952691C39DBC900C88C71 /* Star.png in Resources */, 3E59527C1C39DDA800C88C71 /* Create@2x.png in Resources */, + 3E7D37D51C75D7EF002E682F /* Raise@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; }; @@ -852,6 +887,7 @@ 3E627FC31C55978E005C0372 /* PartySessionManager.swift in Sources */, 3E627FE61C55AE35005C0372 /* NSInputStream+URLInitialization.m in Sources */, 3E5485B51C69CE2F00E7D5AB /* InvitedCollectionViewCell.swift in Sources */, + 3E6D43891C7831B100CA805F /* InvitedToPartyViewController.swift in Sources */, 3E3412571C54C31F006226E0 /* SongSelectionViewController.swift in Sources */, 3E627FE81C55AE35005C0372 /* TDAudioMetaInfo.m in Sources */, 3E6738F51C6E9C7700B47C3E /* LoginController.swift in Sources */, diff --git a/GetHip/AppDelegate.swift b/GetHip/AppDelegate.swift index f607f98..557d61c 100644 --- a/GetHip/AppDelegate.swift +++ b/GetHip/AppDelegate.swift @@ -36,9 +36,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate , CLLocationManagerDelegat // Override point for customization after application launch. Parse.setApplicationId("OUFlGeqCzg03ZbstGcbskj7UNwp53Y0yad9Fi6I0", clientKey: "xaw0kbAFnBi3zLhT1uSnzrzju56m7CnQJ8hJHW1K") PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions); - /* + let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true) - print(paths[0])*/ + print(paths[0]) startSignificantChangeUpdates() return true diff --git a/GetHip/BackToHomeScreenViewController.swift b/GetHip/BackToHomeScreenViewController.swift index 6e95708..cb32ac7 100644 --- a/GetHip/BackToHomeScreenViewController.swift +++ b/GetHip/BackToHomeScreenViewController.swift @@ -14,6 +14,10 @@ class BackToHomeScreenViewController: UIViewController { var userData: [UserParseData] = [] var partyData: PartyServiceManager! + @IBAction func backToParty(sender: UIButton){ + self.dismissViewControllerAnimated(true, completion: nil) + } + override func viewDidLoad() { super.viewDidLoad() @@ -47,7 +51,7 @@ class BackToHomeScreenViewController: UIViewController { let nav: UINavigationController = (segue.destinationViewController as? UINavigationController)! 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) } } diff --git a/GetHip/FriendRequestViewController.swift b/GetHip/FriendRequestViewController.swift index 05a7753..db379ba 100644 --- a/GetHip/FriendRequestViewController.swift +++ b/GetHip/FriendRequestViewController.swift @@ -11,6 +11,7 @@ import UIKit class FriendRequestViewController: UIViewController{ var searchedUsername: String! var frnds: [String]! + var party: PartyServiceManager! @IBOutlet var displayImage: UIImageView! @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.party = party } override func viewDidLoad() { diff --git a/GetHip/FriendsListViewController.swift b/GetHip/FriendsListViewController.swift index 76373b4..e3b5db4 100644 --- a/GetHip/FriendsListViewController.swift +++ b/GetHip/FriendsListViewController.swift @@ -12,6 +12,7 @@ class FriendsListViewController: UIViewController, UITableViewDelegate, UITableV //var manager = FriendDataSource() var friends = [] var request = [] + var party: PartyServiceManager! @IBOutlet weak var table: UITableView! @@ -26,9 +27,10 @@ class FriendsListViewController: UIViewController, UITableViewDelegate, UITableV self.performSegueWithIdentifier("FriendRequestSegue", sender: nil) } - func setData(frnds:[FriendData], requst: [FriendData]){ + func setData(frnds:[FriendData], requst: [FriendData], party: PartyServiceManager){ self.friends = frnds self.request = requst + self.party = party } override func viewDidLoad() { super.viewDidLoad() @@ -155,7 +157,7 @@ class FriendsListViewController: UIViewController, UITableViewDelegate, UITableV if segue.identifier == "PendingRequestSegue" { 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)! - vc.setData(frndNames) + vc.setData(frndNames, party: self.party) } } diff --git a/GetHip/HomeScreenViewController.swift b/GetHip/HomeScreenViewController.swift index 81e7723..2bc1e97 100644 --- a/GetHip/HomeScreenViewController.swift +++ b/GetHip/HomeScreenViewController.swift @@ -39,15 +39,8 @@ class HomeScreenViewController: UIViewController { self.partyData.setPeerID((self.userData[0].displayName)) self.partyData.setAdvertiser() - //initialize browser to find nearby friends - self.partyData.setBrowser() - - //initialize session - self.partyData.initializeSession() - - //start peer-to-peer transcieveing + //start peer-to-peer advertising self.partyData.startListening() - self.partyData.startBrowser() } 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() { super.viewDidLoad() @@ -86,6 +88,7 @@ class HomeScreenViewController: UIViewController { self.partyData.setRole(PeerType(rawValue: 0)!) + 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 vc: FriendsListViewController = (nav.viewControllers[0] as? FriendsListViewController)! - vc.setData(self.friendData, requst: self.requestData) + vc.setData(self.friendData, requst: self.requestData, party: self.partyData) } } diff --git a/GetHip/InvitedToPartyViewController.swift b/GetHip/InvitedToPartyViewController.swift new file mode 100644 index 0000000..c6a8265 --- /dev/null +++ b/GetHip/InvitedToPartyViewController.swift @@ -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) + } + } + + + +} \ No newline at end of file diff --git a/GetHip/Main.storyboard b/GetHip/Main.storyboard index c3f0961..4efc03a 100644 --- a/GetHip/Main.storyboard +++ b/GetHip/Main.storyboard @@ -191,6 +191,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -520,6 +623,9 @@ + + + + @@ -1508,16 +1623,20 @@ + + + + @@ -1527,8 +1646,9 @@ - + + + - diff --git a/GetHip/PartyServiceManager.swift b/GetHip/PartyServiceManager.swift index 84ebef6..dccf9e6 100644 --- a/GetHip/PartyServiceManager.swift +++ b/GetHip/PartyServiceManager.swift @@ -12,9 +12,13 @@ import MediaPlayer 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 serviceBrowser: MCNearbyServiceBrowser! = nil var session: MCSession! = nil - // var delegate: PartyServiceManagerDelegate? + var delegate: PartyServiceManagerDelegate? //peer variables - var foundPeers: [String] = [] + var foundPeers: [MCPeerID] = [MCPeerID]() var invitedFriends: [FriendData] = [] var role: PeerType! = nil + var currentHost: String! var connectingPeersDictionary = NSMutableDictionary() var disconnectedPeersDictionary = NSMutableDictionary() @@ -83,6 +88,17 @@ class PartyServiceManager: NSObject { 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 func setAdvertiser(){ self.serviceAdvertiser = MCNearbyServiceAdvertiser(peer: self.myPeerID, discoveryInfo: nil, serviceType: self.PartyServiceType) @@ -147,6 +163,7 @@ class PartyServiceManager: NSObject { //Host Methods func initializeSession(){ self.session = MCSession(peer: self.myPeerID, securityIdentity: nil, encryptionPreference: MCEncryptionPreference.Required) + self.session.delegate = self println("Initialized Peer-To-Peer Connection") } @@ -193,8 +210,9 @@ extension PartyServiceManager: MCNearbyServiceBrowserDelegate{ if(peerID.displayName != self.myPeerID.displayName) { NSLog("%@", "foundPeer: \(peerID)") - self.foundPeers.append(peerID.displayName) - self.serviceBrowser.invitePeer(peerID, toSession: self.session, withContext: nil, timeout: NSTimeInterval(10.00)) + self.foundPeers.append(peerID) + 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!) { NSLog("%@", "lostPeer: \(peerID)") + + for(index, aPeer) in enumerate(foundPeers) { + if aPeer == peerID{ + foundPeers.removeAtIndex(index) + break + } + } + + delegate?.lostPeer() } } diff --git a/GetHip/PendingRequestViewController.swift b/GetHip/PendingRequestViewController.swift index 725e4b8..681d755 100644 --- a/GetHip/PendingRequestViewController.swift +++ b/GetHip/PendingRequestViewController.swift @@ -12,7 +12,7 @@ class PendingRequestViewController: UITableViewController { @IBOutlet var table:UITableView! var requests = [] - + var party: PartyServiceManager! @IBAction func didAcceptFriend(sender: AnyObject?){ 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. } - func setData(data: [FriendData]){ + func setData(data: [FriendData], party: PartyServiceManager){ self.requests = data + self.party = party } // MARK: - Table view data source diff --git a/GetHip/SettingsTableViewController.swift b/GetHip/SettingsTableViewController.swift index d838491..98dce24 100644 --- a/GetHip/SettingsTableViewController.swift +++ b/GetHip/SettingsTableViewController.swift @@ -24,7 +24,10 @@ class SettingsTableViewController: UIViewController, UITableViewDataSource, UITa @IBAction func logOutUser(sender: UIButton) { - self.party.stopAllServices() + self.party.stopListening() + self.party.serviceAdvertiser = nil + + PFUser.logOut() if PFUser.currentUser() == nil { diff --git a/GetHip/TestInviteFriendsController.swift b/GetHip/TestInviteFriendsController.swift index ec08416..26ed0ef 100644 --- a/GetHip/TestInviteFriendsController.swift +++ b/GetHip/TestInviteFriendsController.swift @@ -9,17 +9,21 @@ import UIKit import MultipeerConnectivity -class TestInviteFriendsController: UIViewController, UITableViewDelegate, UITableViewDataSource { +class TestInviteFriendsController: UIViewController, UITableViewDelegate, UITableViewDataSource, PartyServiceManagerDelegate { var usr: [UserParseData] = [] var frnds: [FriendData] = [] var requestData: [FriendData] = [] var isFriendSelected: [Bool] = [] + var isInvitable: [Bool] = [] var partyData: PartyServiceManager! = nil @IBOutlet weak var table: UITableView! @IBAction func cancelInvites(sender: UIBarButtonItem) { //println("Browser service deinitialized and browser deinitialized") + self.partyData.stopBrowsing() + self.partyData.serviceBrowser = nil + self.parentViewController?.dismissViewControllerAnimated(true, completion: nil) } @@ -50,14 +54,36 @@ class TestInviteFriendsController: UIViewController, UITableViewDelegate, UITabl for i in 0..