From a7e960683347e49c31b47e05002e35be8fe50dc1 Mon Sep 17 00:00:00 2001 From: ryanzhao Date: Tue, 31 Aug 2021 10:28:45 +1000 Subject: [PATCH] add copy link option when clicking a link --- .../ConversationVC+Interaction.swift | 42 ++++++++++++------- .../Translations/de.lproj/Localizable.strings | 1 + .../Translations/en.lproj/Localizable.strings | 1 + .../Translations/es.lproj/Localizable.strings | 1 + .../Translations/fa.lproj/Localizable.strings | 1 + .../Translations/fi.lproj/Localizable.strings | 1 + .../Translations/fr.lproj/Localizable.strings | 1 + .../Translations/hi.lproj/Localizable.strings | 1 + .../Translations/hr.lproj/Localizable.strings | 1 + .../id-ID.lproj/Localizable.strings | 1 + .../Translations/it.lproj/Localizable.strings | 1 + .../Translations/ja.lproj/Localizable.strings | 1 + .../Translations/nl.lproj/Localizable.strings | 1 + .../Translations/pl.lproj/Localizable.strings | 1 + .../pt_BR.lproj/Localizable.strings | 1 + .../Translations/ru.lproj/Localizable.strings | 1 + .../Translations/sk.lproj/Localizable.strings | 1 + .../Translations/sv.lproj/Localizable.strings | 1 + .../Translations/th.lproj/Localizable.strings | 1 + .../vi-VN.lproj/Localizable.strings | 1 + .../zh-Hant.lproj/Localizable.strings | 1 + .../zh_CN.lproj/Localizable.strings | 1 + 22 files changed, 49 insertions(+), 14 deletions(-) diff --git a/Session/Conversations/ConversationVC+Interaction.swift b/Session/Conversations/ConversationVC+Interaction.swift index 2a1bf39bc..4be698a05 100644 --- a/Session/Conversations/ConversationVC+Interaction.swift +++ b/Session/Conversations/ConversationVC+Interaction.swift @@ -359,6 +359,13 @@ extension ConversationVC : InputViewDelegate, MessageCellDelegate, ContextMenuAc snInputView.hideMentionsUI() self.oldText = newText } + + func showInputAccessoryView() { + UIView.animate(withDuration: 0.25, animations: { + self.inputAccessoryView?.isHidden = false + self.inputAccessoryView?.alpha = 1 + }) + } // MARK: View Item Interaction func handleViewItemLongPressed(_ viewItem: ConversationViewItem) { @@ -560,19 +567,12 @@ extension ConversationVC : InputViewDelegate, MessageCellDelegate, ContextMenuAc return } - func showInputAccessoryView() { - UIView.animate(withDuration: 0.25, animations: { - self.inputAccessoryView?.isHidden = false - self.inputAccessoryView?.alpha = 1 - }) - } - if viewItem.interaction.interactionType() == .outgoingMessage, let message = viewItem.interaction as? TSMessage, message.serverHash != nil { let alertVC = UIAlertController.init(title: nil, message: nil, preferredStyle: .actionSheet) let deleteLocallyAction = UIAlertAction.init(title: NSLocalizedString("delete_message_for_me", comment: ""), style: .destructive) { _ in self.deleteLocally(viewItem) - showInputAccessoryView() + self.showInputAccessoryView() } alertVC.addAction(deleteLocallyAction) @@ -582,12 +582,12 @@ extension ConversationVC : InputViewDelegate, MessageCellDelegate, ContextMenuAc } let deleteRemotelyAction = UIAlertAction.init(title: title, style: .destructive) { _ in self.deleteForEveryone(viewItem) - showInputAccessoryView() + self.showInputAccessoryView() } alertVC.addAction(deleteRemotelyAction) let cancelAction = UIAlertAction.init(title: NSLocalizedString("TXT_CANCEL_TITLE", comment: ""), style: .cancel) {_ in - showInputAccessoryView() + self.showInputAccessoryView() } alertVC.addAction(cancelAction) @@ -674,10 +674,24 @@ extension ConversationVC : InputViewDelegate, MessageCellDelegate, ContextMenuAc func openURL(_ url: URL) { // URLs can be unsafe, so always ask the user whether they want to open one - let urlModal = URLModal(url: url) - urlModal.modalPresentationStyle = .overFullScreen - urlModal.modalTransitionStyle = .crossDissolve - present(urlModal, animated: true, completion: nil) + let title = NSLocalizedString("modal_open_url_title", comment: "") + let message = String(format: NSLocalizedString("modal_open_url_explanation", comment: ""), url.absoluteString) + let alertVC = UIAlertController.init(title: title, message: message, preferredStyle: .actionSheet) + let openAction = UIAlertAction.init(title: NSLocalizedString("modal_open_url_button_title", comment: ""), style: .default) { _ in + UIApplication.shared.open(url, options: [:], completionHandler: nil) + self.showInputAccessoryView() + } + alertVC.addAction(openAction) + let copyAction = UIAlertAction.init(title: NSLocalizedString("modal_copy_url_button_title", comment: ""), style: .default) { _ in + UIPasteboard.general.string = url.absoluteString + self.showInputAccessoryView() + } + alertVC.addAction(copyAction) + let cancelAction = UIAlertAction.init(title: NSLocalizedString("cancel", comment: ""), style: .cancel) {_ in + self.showInputAccessoryView() + } + alertVC.addAction(cancelAction) + self.presentAlert(alertVC) } func joinOpenGroup(name: String, url: String) { diff --git a/Session/Meta/Translations/de.lproj/Localizable.strings b/Session/Meta/Translations/de.lproj/Localizable.strings index 3db0bf36c..e63e229d4 100644 --- a/Session/Meta/Translations/de.lproj/Localizable.strings +++ b/Session/Meta/Translations/de.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "URL öffnen?"; "modal_open_url_explanation" = "Möchten Sie %@ wirklich öffnen?"; "modal_open_url_button_title" = "Öffnen"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "%@ entsperren?"; "modal_blocked_explanation" = "Sind Sie sicher, dass Sie %@ entsperren möchten?"; "modal_blocked_button_title" = "Entsperren"; diff --git a/Session/Meta/Translations/en.lproj/Localizable.strings b/Session/Meta/Translations/en.lproj/Localizable.strings index 7de331a6d..fafe02bc9 100644 --- a/Session/Meta/Translations/en.lproj/Localizable.strings +++ b/Session/Meta/Translations/en.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "Open URL?"; "modal_open_url_explanation" = "Are you sure you want to open %@?"; "modal_open_url_button_title" = "Open"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "Unblock %@?"; "modal_blocked_explanation" = "Are you sure you want to unblock %@?"; "modal_blocked_button_title" = "Unblock"; diff --git a/Session/Meta/Translations/es.lproj/Localizable.strings b/Session/Meta/Translations/es.lproj/Localizable.strings index 34dce14f6..4a291409e 100644 --- a/Session/Meta/Translations/es.lproj/Localizable.strings +++ b/Session/Meta/Translations/es.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "¿Abrir URL?"; "modal_open_url_explanation" = "¿Estás seguro de que quieres abrir %@?"; "modal_open_url_button_title" = "Abrir"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "¿Desbloquear a %@?"; "modal_blocked_explanation" = "¿Estás seguro de que quieres desbloquear a %@?"; "modal_blocked_button_title" = "Desbloquear"; diff --git a/Session/Meta/Translations/fa.lproj/Localizable.strings b/Session/Meta/Translations/fa.lproj/Localizable.strings index 8cb43a537..8980aea86 100644 --- a/Session/Meta/Translations/fa.lproj/Localizable.strings +++ b/Session/Meta/Translations/fa.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "URL باز شود؟"; "modal_open_url_explanation" = "آیا مطمئن هستید که میخواهید %@ را باز کنید؟"; "modal_open_url_button_title" = "باز کن"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "Unblock %@?"; "modal_blocked_explanation" = "Are you sure you want to unblock %@?"; "modal_blocked_button_title" = "رفع مسدودی"; diff --git a/Session/Meta/Translations/fi.lproj/Localizable.strings b/Session/Meta/Translations/fi.lproj/Localizable.strings index c68cc6d28..b0e6e5e63 100644 --- a/Session/Meta/Translations/fi.lproj/Localizable.strings +++ b/Session/Meta/Translations/fi.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "Avataanko URL?"; "modal_open_url_explanation" = "Oletko varma, että haluat avata linkin %@?"; "modal_open_url_button_title" = "Avaa"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "Poista esto henkilöltä %@?"; "modal_blocked_explanation" = "Oletko varma, että haluat poistaa eston henkilöltä %@?"; "modal_blocked_button_title" = "Poista esto"; diff --git a/Session/Meta/Translations/fr.lproj/Localizable.strings b/Session/Meta/Translations/fr.lproj/Localizable.strings index d91844903..f060c6e28 100644 --- a/Session/Meta/Translations/fr.lproj/Localizable.strings +++ b/Session/Meta/Translations/fr.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "Ouvrir l'URL?"; "modal_open_url_explanation" = "Êtes-vous sûr de vouloir ouvrir %@?"; "modal_open_url_button_title" = "Ouvrir"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "Débloquer %@ ?"; "modal_blocked_explanation" = "Confirmez-vous le déblocage de %@ ?"; "modal_blocked_button_title" = "Débloquer"; diff --git a/Session/Meta/Translations/hi.lproj/Localizable.strings b/Session/Meta/Translations/hi.lproj/Localizable.strings index f750e97f4..db6d2cfab 100644 --- a/Session/Meta/Translations/hi.lproj/Localizable.strings +++ b/Session/Meta/Translations/hi.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "यूआरएल खोलें"; "modal_open_url_explanation" = "क्या आप वाकई %@ खोलना चाहते हैं?"; "modal_open_url_button_title" = "खोलें"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "%@ अनब्लॉक करें?"; "modal_blocked_explanation" = "क्या आप वाकई %@ को अनब्लॉक करना चाहते हैं?"; "modal_blocked_button_title" = "अनब्लॉक करें"; diff --git a/Session/Meta/Translations/hr.lproj/Localizable.strings b/Session/Meta/Translations/hr.lproj/Localizable.strings index 9d32a4823..437d90817 100644 --- a/Session/Meta/Translations/hr.lproj/Localizable.strings +++ b/Session/Meta/Translations/hr.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "Otvori poveznicu?"; "modal_open_url_explanation" = "Jeste li sigurni da želite otvoriti %@?"; "modal_open_url_button_title" = "Otvori"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "Deblokiraj %@?"; "modal_blocked_explanation" = "Jeste li sigurni da želite deblokirati %@?"; "modal_blocked_button_title" = "Deblokiraj"; diff --git a/Session/Meta/Translations/id-ID.lproj/Localizable.strings b/Session/Meta/Translations/id-ID.lproj/Localizable.strings index b3ec9fb89..b09799f22 100644 --- a/Session/Meta/Translations/id-ID.lproj/Localizable.strings +++ b/Session/Meta/Translations/id-ID.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "Open URL?"; "modal_open_url_explanation" = "Are you sure you want to open %@?"; "modal_open_url_button_title" = "Open"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "Unblock %@?"; "modal_blocked_explanation" = "Are you sure you want to unblock %@?"; "modal_blocked_button_title" = "Unblock"; diff --git a/Session/Meta/Translations/it.lproj/Localizable.strings b/Session/Meta/Translations/it.lproj/Localizable.strings index c2301da20..fe374ac9c 100644 --- a/Session/Meta/Translations/it.lproj/Localizable.strings +++ b/Session/Meta/Translations/it.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "Aprire URL?"; "modal_open_url_explanation" = "Sei sicuro di voler aprire %@?"; "modal_open_url_button_title" = "Apri"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "Sbloccare %@?"; "modal_blocked_explanation" = "Sei sicuro di voler sbloccare %@?"; "modal_blocked_button_title" = "Sblocca"; diff --git a/Session/Meta/Translations/ja.lproj/Localizable.strings b/Session/Meta/Translations/ja.lproj/Localizable.strings index 4c6af761a..ffade96b2 100644 --- a/Session/Meta/Translations/ja.lproj/Localizable.strings +++ b/Session/Meta/Translations/ja.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "URLを開きますか?"; "modal_open_url_explanation" = "%@を本当に開いてもよろしいですか?"; "modal_open_url_button_title" = "開く"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "%@のブロックを解除しますか?"; "modal_blocked_explanation" = "%@のブロックを解除してもよろしいですか?"; "modal_blocked_button_title" = "ブロックを解除する"; diff --git a/Session/Meta/Translations/nl.lproj/Localizable.strings b/Session/Meta/Translations/nl.lproj/Localizable.strings index 61311680a..ef1eb532e 100644 --- a/Session/Meta/Translations/nl.lproj/Localizable.strings +++ b/Session/Meta/Translations/nl.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "URL openen?"; "modal_open_url_explanation" = "Weet u zeker dat u %@ wilt openen?"; "modal_open_url_button_title" = "Openen"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "Blokkering opheffen voor %@?"; "modal_blocked_explanation" = "Weet je zeker dat je %@ weer wilt toelaten?"; "modal_blocked_button_title" = "Deblokkeren"; diff --git a/Session/Meta/Translations/pl.lproj/Localizable.strings b/Session/Meta/Translations/pl.lproj/Localizable.strings index 487c99a88..2c4c8d9e6 100644 --- a/Session/Meta/Translations/pl.lproj/Localizable.strings +++ b/Session/Meta/Translations/pl.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "Otworzyć URL?"; "modal_open_url_explanation" = "Czy na pewno chcesz otworzyć %@?"; "modal_open_url_button_title" = "Otwórz"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "Odblokować %@?"; "modal_blocked_explanation" = "Czy na pewno chcesz odblokować %@?"; "modal_blocked_button_title" = "Odblokuj"; diff --git a/Session/Meta/Translations/pt_BR.lproj/Localizable.strings b/Session/Meta/Translations/pt_BR.lproj/Localizable.strings index 7248083fa..07d303ece 100644 --- a/Session/Meta/Translations/pt_BR.lproj/Localizable.strings +++ b/Session/Meta/Translations/pt_BR.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "Abrir URL?"; "modal_open_url_explanation" = "Você tem certeza que deseja abrir %@/?"; "modal_open_url_button_title" = "Abrir"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "Desbloquear %@?"; "modal_blocked_explanation" = "Você tem certeza que deseja desbloquear %@?"; "modal_blocked_button_title" = "Desbloquear"; diff --git a/Session/Meta/Translations/ru.lproj/Localizable.strings b/Session/Meta/Translations/ru.lproj/Localizable.strings index d5fcd1c2d..b51f0d475 100644 --- a/Session/Meta/Translations/ru.lproj/Localizable.strings +++ b/Session/Meta/Translations/ru.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "Открыть ссылку?"; "modal_open_url_explanation" = "Вы уверены, что хотите открыть %@?"; "modal_open_url_button_title" = "Открыть"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "Разблокировать %@?"; "modal_blocked_explanation" = "Вы уверены, что хотите разблокировать %@?"; "modal_blocked_button_title" = "Разблокировать"; diff --git a/Session/Meta/Translations/sk.lproj/Localizable.strings b/Session/Meta/Translations/sk.lproj/Localizable.strings index ec5306e3e..8e905f1e9 100644 --- a/Session/Meta/Translations/sk.lproj/Localizable.strings +++ b/Session/Meta/Translations/sk.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "Otvoriť URL?"; "modal_open_url_explanation" = "Ste si istý, že chcete otvoriť %@?"; "modal_open_url_button_title" = "Otvoriť"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "Odblokovať %@?"; "modal_blocked_explanation" = "Ste si istý/á, že chcete odblokovať %@?"; "modal_blocked_button_title" = "Odblokovať"; diff --git a/Session/Meta/Translations/sv.lproj/Localizable.strings b/Session/Meta/Translations/sv.lproj/Localizable.strings index 311db3616..9035c2970 100644 --- a/Session/Meta/Translations/sv.lproj/Localizable.strings +++ b/Session/Meta/Translations/sv.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "Öppna URL?"; "modal_open_url_explanation" = "Är du säker på att du vill öppna %@?"; "modal_open_url_button_title" = "Öppna"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "Avblockera %@?"; "modal_blocked_explanation" = "Är du säker på att du vill avblockera %@?"; "modal_blocked_button_title" = "Avblockera"; diff --git a/Session/Meta/Translations/th.lproj/Localizable.strings b/Session/Meta/Translations/th.lproj/Localizable.strings index c10829003..d6b2137f6 100644 --- a/Session/Meta/Translations/th.lproj/Localizable.strings +++ b/Session/Meta/Translations/th.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "เปิดลิงค์ URL ไหม"; "modal_open_url_explanation" = "แน่ใจไหมว่าคุณต้องกาเปิดดู %@"; "modal_open_url_button_title" = "เปิด"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "เลิกบล็อก %@ ไหม"; "modal_blocked_explanation" = "แน่ใจไหมว่าคุณต้องการเลิกบล็อก %@"; "modal_blocked_button_title" = "เลิกบล็อก"; diff --git a/Session/Meta/Translations/vi-VN.lproj/Localizable.strings b/Session/Meta/Translations/vi-VN.lproj/Localizable.strings index 665f93fd8..af2ab31c3 100644 --- a/Session/Meta/Translations/vi-VN.lproj/Localizable.strings +++ b/Session/Meta/Translations/vi-VN.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "Open URL?"; "modal_open_url_explanation" = "Are you sure you want to open %@?"; "modal_open_url_button_title" = "Open"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "Unblock %@?"; "modal_blocked_explanation" = "Are you sure you want to unblock %@?"; "modal_blocked_button_title" = "Unblock"; diff --git a/Session/Meta/Translations/zh-Hant.lproj/Localizable.strings b/Session/Meta/Translations/zh-Hant.lproj/Localizable.strings index 1f25b7e6d..0e8cb4773 100644 --- a/Session/Meta/Translations/zh-Hant.lproj/Localizable.strings +++ b/Session/Meta/Translations/zh-Hant.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "打開連結?"; "modal_open_url_explanation" = "您確定要打開 %@ 嗎?"; "modal_open_url_button_title" = "打開"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "解除封鎖 %@ 嗎?"; "modal_blocked_explanation" = "您確定要解除封鎖 %@ 嗎?"; "modal_blocked_button_title" = "解除封鎖"; diff --git a/Session/Meta/Translations/zh_CN.lproj/Localizable.strings b/Session/Meta/Translations/zh_CN.lproj/Localizable.strings index e11098fae..a7a52671f 100644 --- a/Session/Meta/Translations/zh_CN.lproj/Localizable.strings +++ b/Session/Meta/Translations/zh_CN.lproj/Localizable.strings @@ -531,6 +531,7 @@ "modal_open_url_title" = "打开链接?"; "modal_open_url_explanation" = "确定要打开 %@ 吗?"; "modal_open_url_button_title" = "打开"; +"modal_copy_url_button_title" = "Copy Link"; "modal_blocked_title" = "从黑名单中移除 %@ 吗?"; "modal_blocked_explanation" = "确定解除屏蔽%@吗?"; "modal_blocked_button_title" = "解除屏蔽";