mirror of
https://github.com/wahyd4/Yep.git
synced 2026-08-09 12:56:15 +10:00
tryMakeUploadingFeed beforeUploadingFeedAction
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user