tryMakeUploadingFeed beforeUploadingFeedAction

This commit is contained in:
nixzhu
2016-01-05 13:40:14 +08:00
parent c4f7f7dd9f
commit 2fe398dbca
3 changed files with 62 additions and 5 deletions
+5
View File
@@ -1276,6 +1276,11 @@ struct DiscoveredUser: Hashable {
return false
}
static func fromUser(user: User) -> DiscoveredUser {
return DiscoveredUser(id: user.userID, username: user.username, nickname: user.nickname, introduction: user.introduction, avatarURLString: user.avatarURLString, badge: user.badge, createdUnixTime: user.createdUnixTime, lastSignInUnixTime: user.lastSignInUnixTime, longitude: user.longitude, latitude: user.latitude, distance: 0, masterSkills: [], learningSkills: [], socialAccountProviders: [], recently_updated_provider: nil)
}
}
func ==(lhs: DiscoveredUser, rhs: DiscoveredUser) -> Bool {
@@ -631,6 +631,20 @@ class FeedsViewController: BaseViewController {
return
}
let beforeUploadingFeedAction: DiscoveredFeed -> Void = { [weak self] feed in
dispatch_async(dispatch_get_main_queue()) {
if let strongSelf = self {
strongSelf.uploadingFeeds.insert(feed, atIndex: 0)
let indexPath = NSIndexPath(forRow: 0, inSection: Section.UploadingFeed.rawValue)
strongSelf.feedsTableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
}
}
}
let afterCreatedFeedAction: DiscoveredFeed -> Void = { [weak self] feed in
dispatch_async(dispatch_get_main_queue()) {
@@ -745,6 +759,7 @@ class FeedsViewController: BaseViewController {
vc.preparedSkill = skill
vc.beforeUploadingFeedAction = beforeUploadingFeedAction
vc.afterCreatedFeedAction = afterCreatedFeedAction
case "presentNewFeedVoiceRecord":
@@ -49,6 +49,7 @@ class NewFeedViewController: SegueViewController {
var attachment: Attachment = .Default
var beforeUploadingFeedAction: ((feed: DiscoveredFeed) -> Void)?
var afterCreatedFeedAction: ((feed: DiscoveredFeed) -> Void)?
var preparedSkill: Skill?
@@ -530,12 +531,42 @@ class NewFeedViewController: SegueViewController {
self.dismissViewControllerAnimated(true, completion: nil)
}
private struct UploadImageInfo {
let s3UploadParams: S3UploadParams
let metaDataString: String?
// private struct UploadImageInfo {
//
// let s3UploadParams: S3UploadParams
// let metaDataString: String?
// }
func tryMakeUploadingFeed() -> DiscoveredFeed? {
guard let
myUserID = YepUserDefaults.userID.value,
realm = try? Realm(),
me = userWithUserID(myUserID, inRealm: realm) else {
return nil
}
let creator = DiscoveredUser.fromUser(me)
var kind: FeedKind = .Text
let createdUnixTime = NSDate().timeIntervalSince1970
let updatedUnixTime = createdUnixTime
let message = messageTextView.text.trimming(.WhitespaceAndNewline)
switch attachment {
case .Default:
if !mediaImages.isEmpty {
kind = .Image
}
default:
break
}
return DiscoveredFeed(id: "", allowComment: true, kind: kind, createdUnixTime: createdUnixTime, updatedUnixTime: updatedUnixTime, creator: creator, body: message, attachment: nil, distance: 0, skill: nil, groupID: "", messagesCount: 0)
}
@objc private func post(sender: UIBarButtonItem) {
let messageLength = (messageTextView.text as NSString).length
@@ -546,6 +577,12 @@ class NewFeedViewController: SegueViewController {
return
}
if let feed = tryMakeUploadingFeed() {
beforeUploadingFeedAction?(feed: feed)
}
dismissViewControllerAnimated(true, completion: nil)
uploadState = .Uploading