// // EditCommentViewController.swift // GMERemittance // // Created by FMI-12 on 1/21/18. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved. // import UIKit class EditCommentViewController: UIViewController, UITextViewDelegate { @IBOutlet weak var labelInitial: UILabel! @IBOutlet weak var imageViewUserImage: UIImageView! @IBOutlet weak var textViewEditComment: UITextView! @IBOutlet weak var viewEdit: UIView! @IBOutlet weak var textViewEditCommentConstraint: NSLayoutConstraint! var feedIndex: Int? var commentIndex: Int? var socialfeedviewmodel: SocialFeedViewModel? var commentInputText: String? private var commentToEdit: Comment? private var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView() override func viewDidLoad() { super.viewDidLoad() hideKeyboardWhenTappedAround() setUpNavBar(id: 5, title: "") labelInitial.isHidden = false labelInitial.backgroundColor = UIColor(hex: 0x2e3192) labelInitial.layer.cornerRadius = labelInitial.frame.height / 2 labelInitial.text = getFirstName().prefix(1).uppercased() let userDpString = UserDefaults.standard.object(forKey: "com.gmeremit.dpUrl") as? String if let userDpUrl = URL(string: userDpString!) { imageViewUserImage.isHidden = false imageViewUserImage.sd_setImage(with: userDpUrl, placeholderImage: nil, options: [.progressiveDownload,.scaleDownLargeImages], completed: nil) imageViewUserImage.layer.cornerRadius = imageViewUserImage.frame.height/2 labelInitial.isHidden = true } guard socialfeedviewmodel != nil, commentIndex != 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) self.popUpMessage(value: 20) } setUpListener() setUpAnotherLoginListener(genericviewmodel: socialfeedviewmodel!) commentToEdit = socialfeedviewmodel!.getCommentAt(index: commentIndex!) textViewEditComment.delegate = self imageViewUserImage.layer.cornerRadius = imageViewUserImage.frame.height / 2 if let userDpString = commentToEdit!.userDpUrl { if let userDpUrl = URL(string: userDpString) { imageViewUserImage.sd_setImage(with: userDpUrl, placeholderImage: #imageLiteral(resourceName: "gme-logo"), options: [.progressiveDownload,.scaleDownLargeImages], completed: nil) } } if commentToEdit!.userComment != nil { socialfeedviewmodel!.updateCommentText(text: commentToEdit!.userComment) textViewEditComment.text = commentToEdit!.userComment } textViewEditComment.translatesAutoresizingMaskIntoConstraints = true // textViewEditComment.sizeToFit() // textViewEditComment.contentMode = .scaleToFill var frame = self.textViewEditComment.frame frame.size.height = self.textViewEditComment.contentSize.height self.textViewEditComment.frame = frame textViewEditComment.isScrollEnabled = true } func setUpListener() { socialfeedviewmodel!.socialFeedsRxValue.bind { [weak self] in guard $0 != nil else { return } self?.enableUserInteractions() if self?.activityIndicator != nil { self?.dismissActivityIndicator(activityIndicator: (self?.activityIndicator)!) } guard $0 != 0 else { self?.popUpMessageError(value: 10, message: (self?.socialfeedviewmodel!.getErrorMessage())!) self?.socialfeedviewmodel!.socialFeedsRxValue.value = nil return } switch $0 { case socialWallCode.createUpdateComment.rawValue?: self?.navigationController?.popViewController(animated: true) default: return } self?.socialfeedviewmodel!.socialFeedsRxValue.value = nil } } @IBAction func updateCommentButton(_ sender: Any) { disableUserInteractions() showActivityIndicator(activityIndicator: activityIndicator) if feedIndex != nil { let feed = socialfeedviewmodel!.getSocialFeedAt(index: feedIndex!) socialfeedviewmodel!.updateCommentFor(feedId: feed.id, commentId: commentToEdit!.commentId, commentIndex: commentIndex!) } else { let feed = socialfeedviewmodel!.getParticularFeed() socialfeedviewmodel!.updateCommentFor(feedId: feed.id, commentId: commentToEdit!.commentId, commentIndex: commentIndex!) } } @IBAction func cancelButton(_ sender: Any) { navigationController?.popViewController(animated: true) } func textViewDidBeginEditing(_ textFieldPost: UITextView) { } func textViewDidEndEditing(_ textFieldPost: UITextView) { } // func textViewDidChange(_ textView: UITextView) { // // let size = textView.sizeThatFits(CGSize(width: textView.frame.size.width, height: CGFloat.greatestFiniteMagnitude)) // if size.height != textViewEditCommentConstraint.constant && size.height > textView.frame.size.height || size.height < textView.frame.size.height{ // textViewEditCommentConstraint.constant = size.height + 8 // textView.setContentOffset(CGPoint.zero, animated: false) // } // } func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { commentInputText = (textView.text! as NSString).replacingCharacters(in: range, with: text) socialfeedviewmodel?.updateCommentText(text: commentInputText!) return true } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } // func textViewDidChangeSelection(_ textView: UITextView) { // let minLocation = 3 // let currentRange = textView.selectedRange // if (currentRange.location < minLocation) { // let lengthDelta = (minLocation - currentRange.location) // //Minus the number of characters moved so the end point of the selection does not change. // let newRange = NSMakeRange(minLocation, currentRange.length - lengthDelta); // //Should use UITextInput protocol // textView.selectedRange = newRange; // } // }