Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/CatchChat/Yep into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinzhow committed Aug 18, 2015
2 parents f283489 + b067c6d commit 7a605c3
Show file tree
Hide file tree
Showing 28 changed files with 1,387 additions and 24 deletions.
38 changes: 37 additions & 1 deletion Yep.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -219,9 +219,14 @@
50F2B9781B2EDF3D00F840CC /* BorderTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50F2B9771B2EDF3D00F840CC /* BorderTextField.swift */; };
50F2B97B1B2EEAF800F840CC /* NavigationTitleLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50F2B97A1B2EEAF800F840CC /* NavigationTitleLabel.swift */; };
50FA9A441B661698009BF2A0 /* UIViewController+Yep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50FA9A431B661698009BF2A0 /* UIViewController+Yep.swift */; };
8409137D1B7DB173001C89D6 /* FriendRequestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8409137C1B7DB173001C89D6 /* FriendRequestView.swift */; };
840CD23C1B7B59D5000D2680 /* ShowStepViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 840CD23B1B7B59D5000D2680 /* ShowStepViewController.swift */; };
840CD23E1B7B84AA000D2680 /* ShowResources in Resources */ = {isa = PBXBuildFile; fileRef = 840CD23D1B7B84AA000D2680 /* ShowResources */; };
845E1A661B788EF3001E0789 /* EditSkillsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 845E1A651B788EF3001E0789 /* EditSkillsViewController.swift */; };
848806B01B789A2D000C5424 /* EditSkillCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848806AE1B789A2D000C5424 /* EditSkillCell.swift */; };
848806B11B789A2D000C5424 /* EditSkillCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 848806AF1B789A2D000C5424 /* EditSkillCell.xib */; };
848806B41B7B4E2E000C5424 /* Show.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 848806B31B7B4E2E000C5424 /* Show.storyboard */; };
848806B61B7B4F53000C5424 /* ShowViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848806B51B7B4F53000C5424 /* ShowViewController.swift */; };
84C959891B731FD20017D3ED /* ChatBaseCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C959881B731FD20017D3ED /* ChatBaseCell.swift */; };
B00500D7E943DDD27CF9C562 /* Pods_Yep.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3146F0F60F2A38BC6E0FA66 /* Pods_Yep.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
/* End PBXBuildFile section */
Expand Down Expand Up @@ -458,10 +463,15 @@
50F2B9771B2EDF3D00F840CC /* BorderTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BorderTextField.swift; path = Views/TextFields/BorderTextField.swift; sourceTree = "<group>"; };
50F2B97A1B2EEAF800F840CC /* NavigationTitleLabel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = NavigationTitleLabel.swift; path = Views/Labels/NavigationTitleLabel.swift; sourceTree = "<group>"; };
50FA9A431B661698009BF2A0 /* UIViewController+Yep.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "UIViewController+Yep.swift"; path = "Extensions/UIViewController+Yep.swift"; sourceTree = "<group>"; };
8409137C1B7DB173001C89D6 /* FriendRequestView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = FriendRequestView.swift; path = Views/FriendRequest/FriendRequestView.swift; sourceTree = "<group>"; };
840CD23B1B7B59D5000D2680 /* ShowStepViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ShowStepViewController.swift; path = ViewControllers/Show/ShowStepViewController.swift; sourceTree = "<group>"; };
840CD23D1B7B84AA000D2680 /* ShowResources */ = {isa = PBXFileReference; lastKnownFileType = folder; path = ShowResources; sourceTree = "<group>"; };
845E1A651B788EF3001E0789 /* EditSkillsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EditSkillsViewController.swift; path = ViewControllers/EditSkills/EditSkillsViewController.swift; sourceTree = "<group>"; };
848806AE1B789A2D000C5424 /* EditSkillCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EditSkillCell.swift; path = Views/Cells/EditSkill/EditSkillCell.swift; sourceTree = "<group>"; };
848806AF1B789A2D000C5424 /* EditSkillCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = EditSkillCell.xib; path = Views/Cells/EditSkill/EditSkillCell.xib; sourceTree = "<group>"; };
848806B21B7B0230000C5424 /* Yep.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = Yep.entitlements; sourceTree = "<group>"; };
848806B31B7B4E2E000C5424 /* Show.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Show.storyboard; sourceTree = "<group>"; };
848806B51B7B4F53000C5424 /* ShowViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ShowViewController.swift; path = ViewControllers/Show/ShowViewController.swift; sourceTree = "<group>"; };
84C959881B731FD20017D3ED /* ChatBaseCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ChatBaseCell.swift; path = Views/Cells/ChatBaseCell/ChatBaseCell.swift; sourceTree = "<group>"; };
88C96122C478C4D134F634F6 /* Pods-Yep.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Yep.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Yep/Pods-Yep.debug.xcconfig"; sourceTree = "<group>"; };
C3146F0F60F2A38BC6E0FA66 /* Pods_Yep.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Yep.framework; sourceTree = BUILT_PRODUCTS_DIR; };
Expand Down Expand Up @@ -564,6 +574,7 @@
0A8F54AD1AB67D11004AD60E /* Yep */ = {
isa = PBXGroup;
children = (
840CD23D1B7B84AA000D2680 /* ShowResources */,
848806B21B7B0230000C5424 /* Yep.entitlements */,
0A8F54B01AB67D11004AD60E /* AppDelegate.swift */,
0AD7EA581AC3EAF300617758 /* Yep-Bridging-Header.h */,
Expand All @@ -575,8 +586,9 @@
5023DE341AB688F900B3EE96 /* Extensions */,
5023DE391AB6979C00B3EE96 /* Views */,
5023DE271AB6856600B3EE96 /* ViewControllers */,
0A8F54B41AB67D11004AD60E /* Main.storyboard */,
848806B31B7B4E2E000C5424 /* Show.storyboard */,
502AE5171AB70D72005BD199 /* Intro.storyboard */,
0A8F54B41AB67D11004AD60E /* Main.storyboard */,
0A8F54B71AB67D11004AD60E /* Images.xcassets */,
504BDC141B4528A500DBD35D /* Badges.xcassets */,
0A8F54B91AB67D11004AD60E /* LaunchScreen.xib */,
Expand Down Expand Up @@ -737,6 +749,7 @@
508F8FCD1B01C80500461B0B /* SocialWorks */,
0A943A7C1B0F8EB10022DD67 /* Base */,
0AB8F79B1B15D1DF00F4AF09 /* Nav */,
848806B71B7B4F58000C5424 /* Show */,
);
name = ViewControllers;
sourceTree = "<group>";
Expand Down Expand Up @@ -819,6 +832,7 @@
500A0B201B451A7400D49358 /* Badge */,
504F85AD1B4D21E400F909BE /* DiscoverFilter */,
5044BF071B5FA75000930ADC /* BubbleMenu */,
8409137E1B7DB178001C89D6 /* FriendRequest */,
);
name = Views;
sourceTree = "<group>";
Expand Down Expand Up @@ -1565,6 +1579,14 @@
name = Frameworks;
sourceTree = "<group>";
};
8409137E1B7DB178001C89D6 /* FriendRequest */ = {
isa = PBXGroup;
children = (
8409137C1B7DB173001C89D6 /* FriendRequestView.swift */,
);
name = FriendRequest;
sourceTree = "<group>";
};
845E1A671B788EFC001E0789 /* EditSkills */ = {
isa = PBXGroup;
children = (
Expand All @@ -1582,6 +1604,15 @@
name = EditSkill;
sourceTree = "<group>";
};
848806B71B7B4F58000C5424 /* Show */ = {
isa = PBXGroup;
children = (
848806B51B7B4F53000C5424 /* ShowViewController.swift */,
840CD23B1B7B59D5000D2680 /* ShowStepViewController.swift */,
);
name = Show;
sourceTree = "<group>";
};
84C9598A1B7320060017D3ED /* ChatBase */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -1705,6 +1736,7 @@
508D17481ACCF4710092D666 /* ChatLeftAudioCell.xib in Resources */,
0A8F54B61AB67D11004AD60E /* Main.storyboard in Resources */,
5033159D1AC101C80008A209 /* ChatRightTextCell.xib in Resources */,
840CD23E1B7B84AA000D2680 /* ShowResources in Resources */,
50894CFB1AEA54BA000981AF /* SettingsMoreCell.xib in Resources */,
505EC8181ADF8151001D27E0 /* SkillCategoryCell.xib in Resources */,
505EC81D1ADFBE1B001D27E0 /* SkillSelectionCell.xib in Resources */,
Expand All @@ -1731,6 +1763,7 @@
50392CD21B393FF60009D647 /* SkillAddCell.xib in Resources */,
503315981AC1017E0008A209 /* ChatLeftTextCell.xib in Resources */,
50894D031AEA6433000981AF /* EditProfileLessInfoCell.xib in Resources */,
848806B41B7B4E2E000C5424 /* Show.storyboard in Resources */,
0AD7EA771AC3EEB000617758 /* PushConfig.plist in Resources */,
5064F65A1B0B14420089FAD4 /* AddFriendMoreCell.xib in Resources */,
);
Expand Down Expand Up @@ -1857,6 +1890,7 @@
848806B01B789A2D000C5424 /* EditSkillCell.swift in Sources */,
5053AD551AF83B0F00B3CBFA /* ChatRightLocationCell.swift in Sources */,
50A9D4571ACD393A000B2599 /* YepWaverView.swift in Sources */,
8409137D1B7DB173001C89D6 /* FriendRequestView.swift in Sources */,
50A640E51B6F41E00050E4A3 /* DoNotDisturbSwitchCell.swift in Sources */,
50FA9A441B661698009BF2A0 /* UIViewController+Yep.swift in Sources */,
0AC25F061B1105D5009E6E13 /* YepChildScrollView.swift in Sources */,
Expand Down Expand Up @@ -1906,6 +1940,7 @@
505EC8131ADE607D001D27E0 /* SkillCategoryButton.swift in Sources */,
0AC25F031B1100F0009E6E13 /* YepScrollView.swift in Sources */,
5064F6591B0B14420089FAD4 /* AddFriendMoreCell.swift in Sources */,
848806B61B7B4F53000C5424 /* ShowViewController.swift in Sources */,
5099B9C71AB99F7B002F940B /* RegisterPickAvatarViewController.swift in Sources */,
504F41251ACE2D1D00FBB19A /* SampleView.swift in Sources */,
50A640EC1B6F4E420050E4A3 /* DoNotDisturbPeriodViewController.swift in Sources */,
Expand Down Expand Up @@ -1955,6 +1990,7 @@
50894CF51AEA4A01000981AF /* SettingsUserCell.swift in Sources */,
5053AD5A1AF83B4200B3CBFA /* ChatLeftLocationCell.swift in Sources */,
50A640E91B6F45FA0050E4A3 /* DoNotDisturbPeriodCell.swift in Sources */,
840CD23C1B7B59D5000D2680 /* ShowStepViewController.swift in Sources */,
508F8FD01B01D04400461B0B /* GithubRepoCell.swift in Sources */,
50F2B97B1B2EEAF800F840CC /* NavigationTitleLabel.swift in Sources */,
504F415A1AD5028200FBB19A /* SkillCell.swift in Sources */,
Expand Down
25 changes: 14 additions & 11 deletions Yep/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -110,15 +110,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
// 全局的外观自定义
customAppearce()

let isLogined: Bool
if let v1AccessToken = YepUserDefaults.v1AccessToken.value {
isLogined = true
} else {
isLogined = false
}
let isLogined = YepUserDefaults.isLogined

if !isLogined {
startIntroStory()
//startIntroStory()

startShowStory()
}

// let storyboard = UIStoryboard(name: "Intro", bundle: nil)
Expand All @@ -129,7 +126,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
// let rootViewController = storyboard.instantiateViewControllerWithIdentifier("RegisterPickAvatarViewController") as! RegisterPickAvatarViewController
// window?.rootViewController = UINavigationController(rootViewController: rootViewController)

if let token = YepUserDefaults.v1AccessToken.value {
if isLogined {
sync()

startFaye()
Expand Down Expand Up @@ -160,13 +157,13 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
if !isColdLaunch {
isColdLaunch = false

if let token = YepUserDefaults.v1AccessToken.value {
if YepUserDefaults.isLogined {
syncUnreadMessages() {
}
}
}

if let token = YepUserDefaults.v1AccessToken.value {
if YepUserDefaults.isLogined {
syncMessagesReadStatus()
}
}
Expand Down Expand Up @@ -203,7 +200,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {

println("didReceiveRemoteNotification: \(userInfo)")

if let v1AccessToken = YepUserDefaults.v1AccessToken.value {
if YepUserDefaults.isLogined {

if let type = userInfo["type"] as? String {

Expand Down Expand Up @@ -246,6 +243,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate {

// MARK: Public

func startShowStory() {
let storyboard = UIStoryboard(name: "Show", bundle: nil)
let rootViewController = storyboard.instantiateViewControllerWithIdentifier("ShowViewController") as! ShowViewController
window?.rootViewController = rootViewController
}

func startIntroStory() {
let storyboard = UIStoryboard(name: "Intro", bundle: nil)
let rootViewController = storyboard.instantiateViewControllerWithIdentifier("IntroNavigationController") as! UINavigationController
Expand Down
9 changes: 9 additions & 0 deletions Yep/Helpers/YepUserDefaults.swift
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,15 @@ class YepUserDefaults {

static let defaults = NSUserDefaults(suiteName: YepConfig.appGroupID)!

static var isLogined: Bool {

if let _ = YepUserDefaults.v1AccessToken.value {
return true
} else {
return false
}
}

// MARK: ReLogin

class func cleanAllUserDefaults() {
Expand Down
151 changes: 151 additions & 0 deletions Yep/Services/YepService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -705,6 +705,157 @@ func reportProfileUser(profileUser: ProfileUser, forReason reason: ReportReason,
}
}

// MARK: - Friend Requests

struct FriendRequest {
enum State: String {
case None = "none"
case Pending = "pending"
case Accepted = "accepted"
case Rejected = "rejected"
case Blocked = "blocked"
}
}

func sendFriendRequestToUser(user: User, #failureHandler: ((Reason, String?) -> Void)?, #completion: FriendRequest.State -> Void) {

let requestParameters = [
"friend_id": user.userID,
]

let parse: JSONDictionary -> FriendRequest.State? = { data in
//println("sendFriendRequestToUser: \(data)")

if let state = data["state"] as? String {
return FriendRequest.State(rawValue: state)
}

return nil
}

let resource = authJsonResource(path: "/api/v1/friend_requests", method: .POST, requestParameters: requestParameters, parse: parse)

if let failureHandler = failureHandler {
apiRequest({_ in}, baseURL, resource, failureHandler, completion)
} else {
apiRequest({_ in}, baseURL, resource, defaultFailureHandler, completion)
}
}

func stateOfFriendRequestWithUser(user: User, #failureHandler: ((Reason, String?) -> Void)?, #completion: (receivedFriendRequestSate: FriendRequest.State, receivedFriendRequestID: String, sentFriendRequestState: FriendRequest.State) -> Void) {

let requestParameters = [
"user_id": user.userID,
]

let parse: JSONDictionary -> (FriendRequest.State, String, FriendRequest.State)? = { data in
println("stateOfFriendRequestWithUser: \(data)")

var receivedFriendRequestState = FriendRequest.State.None
var receivedFriendRequestID = ""
var sentFriendRequestState = FriendRequest.State.None

if let
receivedInfo = data["received"] as? JSONDictionary,
state = receivedInfo["state"] as? String,
ID = receivedInfo["id"] as? String {
if let state = FriendRequest.State(rawValue: state) {
receivedFriendRequestState = state
}

receivedFriendRequestID = ID
}

if let blocked = data["current_user_blocked_by_specified_user"] as? Bool {
if blocked {
receivedFriendRequestState = .Blocked
}
}

if let
sendInfo = data["sent"] as? JSONDictionary,
state = sendInfo["state"] as? String {
if let state = FriendRequest.State(rawValue: state) {
sentFriendRequestState = state
}
}

if let blocked = data["current_user_blocked_by_specified_user"] as? Bool {
if blocked {
sentFriendRequestState = .Blocked
}
}

return (receivedFriendRequestState, receivedFriendRequestID, sentFriendRequestState)
}

let resource = authJsonResource(path: "/api/v1/friend_requests/with_user/\(user.userID)", method: .GET, requestParameters: requestParameters, parse: parse)

if let failureHandler = failureHandler {
apiRequest({_ in}, baseURL, resource, failureHandler, completion)
} else {
apiRequest({_ in}, baseURL, resource, defaultFailureHandler, completion)
}
}

func acceptFriendRequestWithID(friendRequestID: String, #failureHandler: ((Reason, String?) -> Void)?, #completion: Bool -> Void) {

let requestParameters = [
"id": friendRequestID,
]

let parse: JSONDictionary -> Bool? = { data in
println("acceptFriendRequestWithID: \(data)")

if let state = data["state"] as? String {
if let state = FriendRequest.State(rawValue: state) {
if state == .Accepted {
return true
}
}
}

return false
}

let resource = authJsonResource(path: "/api/v1/friend_requests/received/\(friendRequestID)/accept", method: .PATCH, requestParameters: requestParameters, parse: parse)

if let failureHandler = failureHandler {
apiRequest({_ in}, baseURL, resource, failureHandler, completion)
} else {
apiRequest({_ in}, baseURL, resource, defaultFailureHandler, completion)
}
}

func rejectFriendRequestWithID(friendRequestID: String, #failureHandler: ((Reason, String?) -> Void)?, #completion: Bool -> Void) {

let requestParameters = [
"id": friendRequestID,
]

let parse: JSONDictionary -> Bool? = { data in
println("rejectFriendRequestWithID: \(data)")

if let state = data["state"] as? String {
if let state = FriendRequest.State(rawValue: state) {
if state == .Rejected {
return true
}
}
}

return false
}

let resource = authJsonResource(path: "/api/v1/friend_requests/received/\(friendRequestID)/reject", method: .PATCH, requestParameters: requestParameters, parse: parse)

if let failureHandler = failureHandler {
apiRequest({_ in}, baseURL, resource, failureHandler, completion)
} else {
apiRequest({_ in}, baseURL, resource, defaultFailureHandler, completion)
}
}

// MARK: - Friendships

private func headFriendships(#completion: JSONDictionary -> Void) {
Expand Down
Loading

0 comments on commit 7a605c3

Please sign in to comment.