You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
675 lines
26 KiB
675 lines
26 KiB
//
|
|
// CommentsViewController.swift
|
|
// GMERemittance
|
|
//
|
|
// Created by Fm-user on 1/16/18.
|
|
// Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
//import ReadMoreTextView
|
|
|
|
class CommentsViewController: UIViewController {
|
|
|
|
private var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
|
|
|
|
var socialfeedviewmodel: SocialFeedViewModel?
|
|
var tappedIndex: Int?
|
|
var feedIdFromNotification: String?
|
|
|
|
var tappedCommentIndex: Int! //To keep track of comment that will be selected to edit or delete
|
|
var commentInputText: String!
|
|
|
|
var fromNotification: Int?
|
|
|
|
private var checkDialog = 0
|
|
|
|
@IBOutlet weak var commentButton: UIButton!
|
|
|
|
@IBOutlet weak var contentView: UIView!
|
|
|
|
@IBOutlet weak var tableViewComments: UITableView!{
|
|
didSet {
|
|
tableViewComments.estimatedRowHeight = 100
|
|
tableViewComments.rowHeight = UITableViewAutomaticDimension
|
|
}
|
|
}
|
|
|
|
@IBOutlet weak var imageViewUserImageComment: UIImageView!
|
|
|
|
@IBOutlet weak var viewCommentEdit: UIView!
|
|
|
|
@IBOutlet weak var textFieldAddComment: UITextField!
|
|
|
|
@IBOutlet weak var buttomConstraint: NSLayoutConstraint!
|
|
|
|
private var movement: CGFloat = 0.0
|
|
private var expandedCells = Set<Int>()
|
|
private var cell:CommentsTableViewCell?
|
|
private var comments:String?
|
|
private var feed: SocialFeed!
|
|
|
|
private var newCommentsWillBeAppended: Bool = false
|
|
private var arrayIndexPath = [IndexPath] ()
|
|
|
|
|
|
@IBOutlet weak var imageViewUserBottom: UIImageView!
|
|
@IBOutlet weak var labelInitialBottom: UILabel!
|
|
|
|
|
|
override func viewWillAppear(_ animated: Bool) {
|
|
|
|
guard socialfeedviewmodel != nil else {
|
|
return
|
|
}
|
|
|
|
setUpNetworkListener()
|
|
setUpListener()
|
|
setUpAnotherLoginListener(genericviewmodel: socialfeedviewmodel!)
|
|
|
|
self.tableViewComments.reloadSections(NSIndexSet(index: 1) as IndexSet, with: .none)
|
|
if tappedCommentIndex != nil {
|
|
self.tableViewComments.scrollToRow(at: IndexPath(row: tappedCommentIndex!, section:
|
|
1), at: UITableViewScrollPosition.bottom, animated: true)
|
|
}
|
|
|
|
}
|
|
|
|
|
|
override func viewWillDisappear(_ animated: Bool) {
|
|
// socialfeedviewmodel?.resetCommentsArray()
|
|
}
|
|
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
guard socialfeedviewmodel != nil else {
|
|
return
|
|
}
|
|
|
|
socialfeedviewmodel?.socialFeedConnectionTimeOut.value = nil
|
|
/**
|
|
connection timeout
|
|
*/
|
|
|
|
socialfeedviewmodel?.socialFeedConnectionTimeOut.bind { [unowned self] in
|
|
guard $0 != nil else {
|
|
return
|
|
}
|
|
self.enableUserInteractions()
|
|
self.dismissActivityIndicator(activityIndicator: self.activityIndicator)
|
|
if self.fromNotification != 0{
|
|
if self.fromNotification != 0{
|
|
if self.checkDialog == 0{
|
|
self.checkDialog = self.checkDialog+1
|
|
self.popUpMessage(value: 20)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
socialfeedviewmodel?.resetCommentsArray()
|
|
|
|
if tappedIndex != nil {
|
|
|
|
setUpNavBar(id: 5, title: "")
|
|
feed = socialfeedviewmodel!.getSocialFeedAt(index: tappedIndex!)
|
|
|
|
disableUserInteractions()
|
|
showActivityIndicator(activityIndicator: activityIndicator)
|
|
|
|
socialfeedviewmodel!.fetchAllCommentsFor(feedId: feed.id, loadMore: false)
|
|
|
|
} else if feedIdFromNotification != nil {
|
|
setUpNavBar(id: 300, title: "Comments")
|
|
if !Reachability.isConnectedToNetwork() {
|
|
commentButton.isUserInteractionEnabled = false
|
|
self.popUpMessage(value: 15)
|
|
|
|
} else {
|
|
disableUserInteractions()
|
|
showActivityIndicator(activityIndicator: self.activityIndicator)
|
|
|
|
socialfeedviewmodel!.fetchFeedWithId(feedId: feedIdFromNotification!)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
textFieldAddComment.delegate = self
|
|
|
|
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
|
|
|
|
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
|
|
|
|
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(clearKeyboard))
|
|
|
|
view.addGestureRecognizer(tap)
|
|
self.tableViewComments.tableFooterView = UIView()
|
|
|
|
labelInitialBottom.isHidden = false
|
|
labelInitialBottom.backgroundColor = UIColor(hex: 0x2e3192)
|
|
labelInitialBottom.layer.cornerRadius = labelInitialBottom.frame.height / 2
|
|
labelInitialBottom.text = getFirstName().prefix(1).uppercased()
|
|
|
|
|
|
let userDpString = UserDefaults.standard.object(forKey: "com.gmeremit.dpUrl") as? String
|
|
if let userDpUrl = URL(string: userDpString!) {
|
|
|
|
imageViewUserBottom.isHidden = false
|
|
|
|
imageViewUserBottom.sd_setImage(with: userDpUrl, placeholderImage: nil, options: [.progressiveDownload,.scaleDownLargeImages], completed: nil)
|
|
|
|
imageViewUserBottom.layer.cornerRadius = imageViewUserBottom.frame.height/2
|
|
|
|
labelInitialBottom.isHidden = true
|
|
}
|
|
|
|
|
|
}
|
|
|
|
func setUpNetworkListener() {
|
|
socialfeedviewmodel!.internetConnection.value = nil
|
|
|
|
socialfeedviewmodel!.internetConnection.bind { [unowned self] in
|
|
guard $0 != nil else {
|
|
return
|
|
}
|
|
print("%%%%%%%%%%%")
|
|
self.enableUserInteractions()
|
|
self.dismissActivityIndicator(activityIndicator: self.activityIndicator)
|
|
self.popUpMessage(value: 15)
|
|
}
|
|
}
|
|
|
|
func setUpListener() {
|
|
|
|
socialfeedviewmodel!.socialFeedsRxValue.bind { [weak self] in
|
|
guard $0 != nil else {
|
|
return
|
|
}
|
|
|
|
self?.enableUserInteractions()
|
|
|
|
if self?.activityIndicator != nil {
|
|
|
|
if (self?.activityIndicator)!.isAnimating {
|
|
self?.dismissActivityIndicator(activityIndicator: (self?.activityIndicator)!)
|
|
}
|
|
}
|
|
|
|
guard $0 != 0 else {
|
|
if self?.checkDialog == 0{
|
|
self?.checkDialog = (self?.checkDialog)!+1
|
|
//self?.popUpMessageError(value: 19, message: (self?.socialfeedviewmodel!.getErrorMessage())!)
|
|
}
|
|
self?.socialfeedviewmodel!.socialFeedsRxValue.value = nil
|
|
self?.commentButton.isUserInteractionEnabled = false
|
|
self?.textFieldAddComment.isUserInteractionEnabled = false
|
|
return
|
|
}
|
|
|
|
switch $0 {
|
|
|
|
case socialWallCode.likeUnlikePost.rawValue?:
|
|
|
|
if self?.tappedIndex != nil {
|
|
self?.socialfeedviewmodel!.updateSocialFeedArrayLikeNumber(atIndex: (self?.tappedIndex)!)
|
|
} else {
|
|
self?.socialfeedviewmodel!.updateParticularFeedWithUpdatedLikeNumber()
|
|
}
|
|
|
|
self?.tableViewComments.reloadSections(NSIndexSet(index: 0) as IndexSet, with: .none)
|
|
|
|
|
|
case socialWallCode.fetchComments.rawValue?:
|
|
// self?.tableViewComments.reloadSections(NSIndexSet(index: 1) as IndexSet, with: .none)
|
|
// self?.tableViewComments.reloadSections(NSIndexSet(index: 2) as IndexSet, with: .none)
|
|
|
|
let count = self?.socialfeedviewmodel!.getCommentsCount()
|
|
|
|
if count! > 0 {
|
|
if (self?.newCommentsWillBeAppended)! {
|
|
|
|
self?.arrayIndexPath.removeAll()
|
|
|
|
self?.tableViewComments.beginUpdates()
|
|
let currentCount = self?.socialfeedviewmodel!.getCurrentlyFetchedCommentCount()
|
|
|
|
for i in 0...(self?.socialfeedviewmodel!.getCurrentlyFetchedCommentCount())!-1 {
|
|
self?.arrayIndexPath.append(IndexPath.init(row: count! - currentCount! + i, section: 1))
|
|
}
|
|
|
|
self?.tableViewComments.insertRows(at: (self?.arrayIndexPath)!, with: .automatic)
|
|
|
|
self?.tableViewComments.endUpdates()
|
|
|
|
} else {
|
|
|
|
self?.tableViewComments.reloadSections(NSIndexSet(index: 1) as IndexSet, with: .none)
|
|
self?.tableViewComments.reloadSections(NSIndexSet(index: 2) as IndexSet, with: .none)
|
|
}
|
|
}
|
|
|
|
|
|
case socialWallCode.deleteComment.rawValue?:
|
|
|
|
self?.socialfeedviewmodel!.removeComment(atIndex: (self?.tappedCommentIndex)!)
|
|
if self?.tappedIndex != nil {
|
|
self?.socialfeedviewmodel!.updateSocialFeedArrayCommentNumber(atIndex: (self?.tappedIndex)!, increase: false)
|
|
} else {
|
|
self?.socialfeedviewmodel!.updateParticularFeedWithDecreasedCommentNumber()
|
|
}
|
|
self?.tableViewComments.deleteRows(at: [IndexPath(item: (self?.tappedCommentIndex)!, section: 1)], with: .automatic)
|
|
self?.tableViewComments.reloadSections(NSIndexSet(index: 0) as IndexSet, with: .none)
|
|
|
|
|
|
|
|
case socialWallCode.createUpdateComment.rawValue?:
|
|
if self?.tappedIndex != nil {
|
|
self?.socialfeedviewmodel!.updateSocialFeedArrayCommentNumber(atIndex: (self?.tappedIndex)!, increase: true)
|
|
} else {
|
|
self?.socialfeedviewmodel!.updateParticularFeedWithIncreasedCommentNumber()
|
|
}
|
|
self?.textFieldAddComment.text = ""
|
|
|
|
self?.tableViewComments.beginUpdates()
|
|
self?.tableViewComments.insertRows(at: [IndexPath.init(row: 0, section: 1)], with: .automatic)
|
|
self?.tableViewComments.endUpdates()
|
|
|
|
self?.tableViewComments.reloadSections(NSIndexSet(index: 0) as IndexSet, with: .none)
|
|
|
|
self?.tableViewComments.scrollToRow(at: IndexPath(row: 0, section:
|
|
1), at: UITableViewScrollPosition.bottom, animated: true)
|
|
|
|
|
|
|
|
case socialWallCode.fetchParticularPost.rawValue?:
|
|
self?.feed = self?.socialfeedviewmodel!.getParticularFeed()
|
|
self?.tableViewComments.reloadData()
|
|
self?.socialfeedviewmodel!.fetchAllCommentsFor(feedId: (self?.feed.id)!, loadMore: false)
|
|
|
|
|
|
default:
|
|
return
|
|
}
|
|
|
|
self?.socialfeedviewmodel!.socialFeedsRxValue.value = nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@objc func keyboardWillShow(notification: NSNotification) {
|
|
let userInfo = notification.userInfo
|
|
var keyboardFrame:CGRect = (userInfo![UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
|
|
keyboardFrame = self.view.convert(keyboardFrame, from: nil)
|
|
movement = (keyboardFrame.size.height)
|
|
|
|
UIView.animate(withDuration: 0.3, animations: {
|
|
self.viewCommentEdit.frame = self.viewCommentEdit.frame.offsetBy(dx: 0, dy: self.movement * -1.0)
|
|
// self.tableViewComments.frame = self.tableViewComments.frame.offsetBy(dx: 0, dy: self.movement * -1.0)
|
|
|
|
self.tableViewComments.contentInset = UIEdgeInsetsMake(0.0, 0.0, self.movement, 0.0)
|
|
})
|
|
|
|
}
|
|
|
|
@objc func keyboardWillHide(notification: NSNotification){
|
|
|
|
UIView.animate(withDuration: 0.3, animations: {
|
|
self.viewCommentEdit.frame = self.viewCommentEdit.frame.offsetBy(dx: 0, dy: self.movement)
|
|
// self.tableViewComments.frame = self.tableViewComments.frame.offsetBy(dx: 0, dy: self.movement)
|
|
self.tableViewComments.contentInset = UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0)
|
|
})
|
|
}
|
|
|
|
@IBAction func commentAddButton(_ sender: Any) {
|
|
disableUserInteractions()
|
|
showActivityIndicator(activityIndicator: activityIndicator)
|
|
textFieldAddComment.resignFirstResponder()
|
|
socialfeedviewmodel!.createCommentFor(feedId: feed.id)
|
|
}
|
|
|
|
@objc func clearKeyboard() {
|
|
textFieldAddComment?.resignFirstResponder()
|
|
}
|
|
|
|
override func didReceiveMemoryWarning() {
|
|
super.didReceiveMemoryWarning()
|
|
}
|
|
|
|
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
|
|
switch segue.identifier {
|
|
case "editComment"?:
|
|
let editCommentViewController = segue.destination as! EditCommentViewController
|
|
editCommentViewController.commentIndex = tappedCommentIndex
|
|
editCommentViewController.socialfeedviewmodel = socialfeedviewmodel!
|
|
if tappedIndex != nil {
|
|
editCommentViewController.feedIndex = tappedIndex!
|
|
}
|
|
case "showLikedByFromComments"?:
|
|
let likedByViewController = segue.destination as! LikesViewController
|
|
likedByViewController.socialfeedviewmodel = socialfeedviewmodel
|
|
if tappedIndex != nil {
|
|
likedByViewController.tappedIndex = tappedIndex
|
|
}
|
|
default:
|
|
return
|
|
}
|
|
}
|
|
}
|
|
|
|
extension CommentsViewController: UITextFieldDelegate {
|
|
|
|
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
|
|
|
|
commentInputText = (textField.text! as NSString).replacingCharacters(in: range, with: string)
|
|
socialfeedviewmodel?.updateCommentText(text: commentInputText)
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
extension CommentsViewController: UITableViewDelegate, UITableViewDataSource {
|
|
|
|
func numberOfSections(in tableView: UITableView) -> Int {
|
|
return 3
|
|
}
|
|
|
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
|
switch section {
|
|
case 0:
|
|
if feed != nil {
|
|
return 1
|
|
}
|
|
return 0
|
|
case 1:
|
|
if (socialfeedviewmodel?.getAllComments().count)! > 0{
|
|
return socialfeedviewmodel!.getAllComments().count
|
|
}
|
|
return 0
|
|
case 2:
|
|
return 1
|
|
|
|
default:
|
|
return 0
|
|
}
|
|
}
|
|
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
|
|
|
switch indexPath.section {
|
|
case 0:
|
|
cell = tableView.dequeueReusableCell(withIdentifier: "statusCell", for: indexPath) as? CommentsTableViewCell
|
|
cell!.imageViewUser.layer.cornerRadius = cell!.imageViewUser.frame.height / 2
|
|
|
|
/* To show changes in comment number and likes when likes/comments are updated*/
|
|
if tappedIndex != nil {
|
|
feed = socialfeedviewmodel!.getSocialFeedAt(index: tappedIndex!)
|
|
} else {
|
|
feed = socialfeedviewmodel!.getParticularFeed()
|
|
}
|
|
|
|
cell?.labelInitialTop.isHidden = false
|
|
cell?.labelInitialTop.backgroundColor = UIColor(hex: 0x2e3192)
|
|
cell?.labelInitialTop.layer.cornerRadius = cell!.labelInitialTop.frame.height / 2
|
|
cell?.labelInitialTop.text = feed.firstName.prefix(1).uppercased()
|
|
|
|
if let userDpString = feed.userDpUrl {
|
|
if let userDpUrl = URL(string: userDpString) {
|
|
|
|
cell?.imageViewUser.isHidden = false
|
|
|
|
cell?.imageViewUser.sd_setImage(with: userDpUrl, placeholderImage: #imageLiteral(resourceName: "gme-logo"), options: [.progressiveDownload,.scaleDownLargeImages], completed: nil)
|
|
|
|
cell?.labelInitialTop.isHidden = true
|
|
}
|
|
}
|
|
|
|
cell?.labelUserName.text = socialfeedviewmodel!.getFullName(feed: feed)
|
|
cell?.labelTimeAgo.text = feed.agoDate
|
|
|
|
if let feedText = feed.feedText {
|
|
cell?.labelFeedContent.text = feedText
|
|
}
|
|
|
|
if let feedImageString = feed.feedImage {
|
|
if let feedImageUrl = URL(string: feedImageString) {
|
|
cell?.imageViewFeed.sd_setImage(with: feedImageUrl, placeholderImage: #imageLiteral(resourceName: "gme-logo"), options: [.progressiveDownload,.scaleDownLargeImages], completed: nil)
|
|
cell?.imageHeightConstraint.constant = view.frame.width
|
|
}
|
|
} else {
|
|
cell?.imageHeightConstraint.constant = 0
|
|
}
|
|
|
|
if feed.liked {
|
|
cell?.buttonLikeStatus.setImage(UIImage(named:"ic_heartfull"), for: UIControlState.normal)
|
|
}
|
|
else {
|
|
cell?.buttonLikeStatus.setImage(UIImage(named:"ic_heart"), for: UIControlState.normal)
|
|
}
|
|
|
|
cell?.buttonLikeStatus?.addTarget(self, action: #selector(toggleLike(_:)), for: .touchUpInside)
|
|
|
|
//Display total number of LIKES
|
|
|
|
|
|
if feed.totalLike > 1 {
|
|
cell?.buttonLikes.setTitle("\(feed.totalLike) Likes", for:UIControlState.normal)
|
|
}
|
|
else {
|
|
cell?.buttonLikes.setTitle("\(feed.totalLike) Like", for:UIControlState.normal)
|
|
}
|
|
|
|
if feed.totalLike > 0 {
|
|
|
|
cell?.buttonLikes?.addTarget(self, action: #selector(showLikes(_:)), for: .touchUpInside)
|
|
}
|
|
|
|
if feed.totalComment > 1 {
|
|
cell?.buttonComments.setTitle(" \(feed.totalComment) Comments", for:UIControlState.normal)
|
|
}
|
|
else {
|
|
cell?.buttonComments.setTitle(" \(feed.totalComment) Comment", for:UIControlState.normal)
|
|
}
|
|
|
|
return cell!
|
|
|
|
case 1:
|
|
cell = tableView.dequeueReusableCell(withIdentifier: "commentCell", for: indexPath) as? CommentsTableViewCell
|
|
|
|
let comment = socialfeedviewmodel!.getCommentAt(index: indexPath.row)
|
|
|
|
cell!.labelName.text = comment.userName
|
|
|
|
cell!.labelComment.text = comment.userComment
|
|
|
|
cell!.labelTime.text = comment.agoDate
|
|
|
|
cell!.imageViewComment.layer.cornerRadius = cell!.imageViewComment.frame.height / 2
|
|
|
|
|
|
cell!.labelUserNameInitial.isHidden = false
|
|
cell!.labelUserNameInitial.backgroundColor = UIColor(hex: 0x2e3192)
|
|
cell!.labelUserNameInitial.layer.cornerRadius = cell!.labelUserNameInitial.frame.height / 2
|
|
cell!.labelUserNameInitial.text = comment.userName.prefix(1).uppercased()
|
|
|
|
if let userDpString = comment.userDpUrl {
|
|
if let userDpUrl = URL(string: userDpString) {
|
|
cell!.imageViewComment.isHidden = false
|
|
|
|
cell!.imageViewComment.sd_setImage(with: userDpUrl, placeholderImage: nil, options: [.progressiveDownload,.scaleDownLargeImages], completed: nil)
|
|
}
|
|
cell!.labelUserNameInitial.isHidden = true
|
|
}
|
|
|
|
// if let userimageUrl = socialfeedviewmodel!.getCommentAt(index: indexPath.row).userDpUrl {
|
|
// cell?.imageViewComment.sd_setImage(with: URL(string: userimageUrl), placeholderImage: #imageLiteral(resourceName: "gme-logo"), options: [.progressiveDownload,.scaleDownLargeImages], completed: nil)
|
|
// }
|
|
|
|
return cell!
|
|
|
|
case 2:
|
|
cell = (tableView.dequeueReusableCell(withIdentifier: "loadMoreCell", for: indexPath) as! CommentsTableViewCell)
|
|
cell!.buttonLoadMore.addTarget(self, action: #selector(loadMore(_:)), for: .touchUpInside)
|
|
|
|
if !socialfeedviewmodel!.commentsRemaining() {
|
|
cell!.buttonLoadMore.isHidden = true
|
|
} else {
|
|
cell!.buttonLoadMore.isHidden = false
|
|
}
|
|
|
|
return cell!
|
|
|
|
default:
|
|
return cell!
|
|
}
|
|
|
|
}
|
|
|
|
@objc func loadMore(_ sender: TableViewCell) {
|
|
disableUserInteractions()
|
|
showActivityIndicator(activityIndicator: activityIndicator)
|
|
newCommentsWillBeAppended = true
|
|
socialfeedviewmodel!.fetchAllCommentsFor(feedId: feed.id, loadMore: true)
|
|
}
|
|
|
|
@objc func showLikes(_ sender: CommentsTableViewCell) {
|
|
textFieldAddComment.resignFirstResponder()
|
|
|
|
guard Reachability.isConnectedToNetwork() else {
|
|
self.popUpMessage(value: 15)
|
|
return
|
|
}
|
|
|
|
self.performSegue(withIdentifier: "showLikedByFromComments", sender: nil)
|
|
}
|
|
|
|
/* LIKE OR DISLIKE A POST WHEN TAPPPED */
|
|
@objc func toggleLike(_ sender: TableViewCell) {
|
|
|
|
if tappedIndex != nil {
|
|
// feed = socialfeedviewmodel?.getSocialFeedAt(index: tappedIndex!)
|
|
socialfeedviewmodel!.likeDislikePost(feedId: feed.id, liked: feed.liked)
|
|
} else {
|
|
// feed = socialfeedviewmodel?.getParticularFeed()
|
|
socialfeedviewmodel!.likeDislikePost(feedId: feed.id, liked: feed.liked)
|
|
}
|
|
}
|
|
|
|
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
|
|
|
|
switch indexPath.section {
|
|
case 1:
|
|
|
|
let delete = UITableViewRowAction(style: .destructive, title: "Delete") { (action, indexPath) in
|
|
|
|
let alert = UIAlertController(title: "Are you sure you want to delete?",
|
|
message: "",
|
|
preferredStyle: .alert)
|
|
|
|
let cancelAction = UIAlertAction(title: "No", style: .destructive) { (action) -> Void in
|
|
alert.dismiss(animated: true, completion: nil)
|
|
}
|
|
|
|
let deleteAction = UIAlertAction(title: "Yes", style: .destructive) { (action) -> Void in
|
|
alert.dismiss(animated: true, completion: nil)
|
|
|
|
let feedId = self.feed.id //self.socialfeedviewmodel!.getSocialFeedAt(index: self.tappedIndex!).id
|
|
let commentId = self.socialfeedviewmodel!.getCommentAt(index: indexPath.row).commentId
|
|
|
|
self.tappedCommentIndex = indexPath.row
|
|
|
|
self.disableUserInteractions()
|
|
self.showActivityIndicator(activityIndicator: self.activityIndicator)
|
|
|
|
self.socialfeedviewmodel!.removeComment(feedId: feedId, commentId: commentId!)
|
|
}
|
|
|
|
alert.addAction(cancelAction)
|
|
alert.addAction(deleteAction)
|
|
|
|
self.present(alert, animated: true, completion: nil)
|
|
}
|
|
|
|
let edit = UITableViewRowAction(style: .normal, title: "Edit") { (action, indexPath) in
|
|
self.tappedCommentIndex = indexPath.row
|
|
self.performSegue(withIdentifier: "editComment", sender: nil)
|
|
}
|
|
|
|
let cancel = UITableViewRowAction(style: .normal, title: "Cancel") {_,_ in
|
|
|
|
}
|
|
|
|
if tappedIndex != nil {
|
|
if socialfeedviewmodel!.postBelongsToMe(postIndex: tappedIndex!) {
|
|
if socialfeedviewmodel!.commentBelongsToMe(commentIndex: indexPath.row) {
|
|
return [edit, delete]
|
|
} else {
|
|
return [delete, cancel]
|
|
}
|
|
} else if socialfeedviewmodel!.commentBelongsToMe(commentIndex: indexPath.row) {
|
|
return [edit, delete]
|
|
}
|
|
} else {
|
|
|
|
if socialfeedviewmodel!.particularPostBelongsToMe() {
|
|
if socialfeedviewmodel!.commentBelongsToMe(commentIndex: indexPath.row) {
|
|
return [edit, delete]
|
|
} else {
|
|
return [delete, cancel]
|
|
}
|
|
} else if socialfeedviewmodel!.commentBelongsToMe(commentIndex: indexPath.row) {
|
|
return [edit, delete]
|
|
}
|
|
}
|
|
|
|
default:
|
|
return []
|
|
}
|
|
return []
|
|
}
|
|
|
|
// private func tableView(_ tableView: UITableView, willDisplay cell: CommentsTableViewCell, forRowAt indexPath: IndexPath) {
|
|
//
|
|
// switch indexPath.section {
|
|
// case 1:
|
|
// let readMoreTextView = cell.contentView.viewWithTag(1) as? ReadMoreTextView
|
|
// readMoreTextView?.onSizeChange = { [unowned tableView, unowned self] r in
|
|
// let point = tableView.convert(r.bounds.origin, from: r)
|
|
// guard let indexPath = tableView.indexPathForRow(at: point) else { return }
|
|
// if r.shouldTrim {
|
|
// self.expandedCells.remove(indexPath.row)
|
|
// } else {
|
|
// self.expandedCells.insert(indexPath.row)
|
|
// }
|
|
// self.tableViewComments.reloadData()
|
|
// }
|
|
// default:
|
|
// break
|
|
// }
|
|
//
|
|
// }
|
|
|
|
// func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
|
//
|
|
// switch indexPath.section {
|
|
// case 0:
|
|
// print("section")
|
|
// case 1:
|
|
// print("coment")
|
|
// let cell = tableView.cellForRow(at: indexPath)!
|
|
// let readMoreTextView = cell.contentView.viewWithTag(1) as? ReadMoreTextView
|
|
// readMoreTextView?.shouldTrim = !(readMoreTextView?.shouldTrim)!
|
|
// default: break
|
|
// }
|
|
//
|
|
// }
|
|
|
|
}
|