Просмотр исходного кода

open webxdc view on tap on preview image

cyberta 3 лет назад
Родитель
Сommit
29023b18f0

+ 6 - 1
deltachat-ios/Chat/ChatViewController.swift

@@ -1782,7 +1782,12 @@ extension ChatViewController: BaseMessageCellDelegate {
         if handleUIMenu() || handleSelection(indexPath: indexPath) {
             return
         }
-        showMediaGalleryFor(indexPath: indexPath)
+        let message = dcContext.getMessage(id: messageIds[indexPath.row])
+        if message.type == DC_MSG_WEBXDC {
+            showWebxdcViewFor(message: message)
+        } else {
+            showMediaGalleryFor(indexPath: indexPath)
+        }
     }
 
     @objc func avatarTapped(indexPath: IndexPath) {

+ 8 - 0
deltachat-ios/Chat/Views/Cells/WebxdcCell.swift

@@ -21,6 +21,14 @@ public class WebxdcCell: BaseMessageCell {
         mainContentView.addArrangedSubview(spacerView)
         mainContentView.addArrangedSubview(messageLabel)
         mainContentViewHorizontalPadding = 12
+        let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(onImageTapped))
+        webxdcView.imagePreview.addGestureRecognizer(gestureRecognizer)
+    }
+
+    @objc func onImageTapped() {
+        if let tableView = self.superview as? UITableView, let indexPath = tableView.indexPath(for: self) {
+            baseDelegate?.imageTapped(indexPath: indexPath)
+        }
     }
 
     public override func prepareForReuse() {

+ 1 - 0
deltachat-ios/Chat/Views/WebxdcPreview.swift

@@ -9,6 +9,7 @@ public class WebxdcPreview: UIView {
         view.translatesAutoresizingMaskIntoConstraints = false
         view.layer.cornerRadius = 8
         view.clipsToBounds = true
+        view.isUserInteractionEnabled = true
         return view
     }()