BaseChatTableViewCell+Poll.swift 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. //
  2. // SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
  3. // SPDX-License-Identifier: GPL-3.0-or-later
  4. //
  5. extension BaseChatTableViewCell {
  6. func setupForPollCell(with message: NCChatMessage) {
  7. if self.pollMessageView == nil {
  8. // Poll message view
  9. let pollMessageView = PollMessageView(frame: .zero)
  10. self.pollMessageView = pollMessageView
  11. pollMessageView.translatesAutoresizingMaskIntoConstraints = false
  12. pollMessageView.layer.cornerRadius = 8.0
  13. pollMessageView.layer.masksToBounds = true
  14. pollMessageView.layer.borderWidth = 1.0
  15. pollMessageView.layer.borderColor = NCAppBranding.placeholderColor().cgColor
  16. self.messageBodyView.addSubview(pollMessageView)
  17. let tapGesture = UITapGestureRecognizer(target: self, action: #selector(pollViewTapped))
  18. pollMessageView.addGestureRecognizer(tapGesture)
  19. pollMessageView.isUserInteractionEnabled = true
  20. NSLayoutConstraint.activate([
  21. pollMessageView.leftAnchor.constraint(equalTo: self.messageBodyView.leftAnchor),
  22. pollMessageView.rightAnchor.constraint(equalTo: self.messageBodyView.rightAnchor),
  23. pollMessageView.topAnchor.constraint(equalTo: self.messageBodyView.topAnchor),
  24. pollMessageView.bottomAnchor.constraint(equalTo: self.messageBodyView.bottomAnchor)
  25. ])
  26. }
  27. guard let pollMessageView = self.pollMessageView else { return }
  28. pollMessageView.pollTitleTextView.text = message.parsedMessage().string
  29. }
  30. func prepareForReusePollCell() {
  31. self.pollMessageView?.pollTitleTextView.text = ""
  32. }
  33. @objc func pollViewTapped() {
  34. guard let poll = message?.poll else {
  35. return
  36. }
  37. self.delegate?.cellWants(toOpenPoll: poll)
  38. }
  39. }