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.
 
 
 
 

202 lines
7.1 KiB

//
// 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;
// }
// }