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