add copy link option when clicking a link

pull/500/head
ryanzhao 4 years ago
parent 42d4e07724
commit a7e9606833

@ -359,6 +359,13 @@ extension ConversationVC : InputViewDelegate, MessageCellDelegate, ContextMenuAc
snInputView.hideMentionsUI() snInputView.hideMentionsUI()
self.oldText = newText self.oldText = newText
} }
func showInputAccessoryView() {
UIView.animate(withDuration: 0.25, animations: {
self.inputAccessoryView?.isHidden = false
self.inputAccessoryView?.alpha = 1
})
}
// MARK: View Item Interaction // MARK: View Item Interaction
func handleViewItemLongPressed(_ viewItem: ConversationViewItem) { func handleViewItemLongPressed(_ viewItem: ConversationViewItem) {
@ -560,19 +567,12 @@ extension ConversationVC : InputViewDelegate, MessageCellDelegate, ContextMenuAc
return return
} }
func showInputAccessoryView() {
UIView.animate(withDuration: 0.25, animations: {
self.inputAccessoryView?.isHidden = false
self.inputAccessoryView?.alpha = 1
})
}
if viewItem.interaction.interactionType() == .outgoingMessage, if viewItem.interaction.interactionType() == .outgoingMessage,
let message = viewItem.interaction as? TSMessage, message.serverHash != nil { let message = viewItem.interaction as? TSMessage, message.serverHash != nil {
let alertVC = UIAlertController.init(title: nil, message: nil, preferredStyle: .actionSheet) let alertVC = UIAlertController.init(title: nil, message: nil, preferredStyle: .actionSheet)
let deleteLocallyAction = UIAlertAction.init(title: NSLocalizedString("delete_message_for_me", comment: ""), style: .destructive) { _ in let deleteLocallyAction = UIAlertAction.init(title: NSLocalizedString("delete_message_for_me", comment: ""), style: .destructive) { _ in
self.deleteLocally(viewItem) self.deleteLocally(viewItem)
showInputAccessoryView() self.showInputAccessoryView()
} }
alertVC.addAction(deleteLocallyAction) alertVC.addAction(deleteLocallyAction)
@ -582,12 +582,12 @@ extension ConversationVC : InputViewDelegate, MessageCellDelegate, ContextMenuAc
} }
let deleteRemotelyAction = UIAlertAction.init(title: title, style: .destructive) { _ in let deleteRemotelyAction = UIAlertAction.init(title: title, style: .destructive) { _ in
self.deleteForEveryone(viewItem) self.deleteForEveryone(viewItem)
showInputAccessoryView() self.showInputAccessoryView()
} }
alertVC.addAction(deleteRemotelyAction) alertVC.addAction(deleteRemotelyAction)
let cancelAction = UIAlertAction.init(title: NSLocalizedString("TXT_CANCEL_TITLE", comment: ""), style: .cancel) {_ in let cancelAction = UIAlertAction.init(title: NSLocalizedString("TXT_CANCEL_TITLE", comment: ""), style: .cancel) {_ in
showInputAccessoryView() self.showInputAccessoryView()
} }
alertVC.addAction(cancelAction) alertVC.addAction(cancelAction)
@ -674,10 +674,24 @@ extension ConversationVC : InputViewDelegate, MessageCellDelegate, ContextMenuAc
func openURL(_ url: URL) { func openURL(_ url: URL) {
// URLs can be unsafe, so always ask the user whether they want to open one // URLs can be unsafe, so always ask the user whether they want to open one
let urlModal = URLModal(url: url) let title = NSLocalizedString("modal_open_url_title", comment: "")
urlModal.modalPresentationStyle = .overFullScreen let message = String(format: NSLocalizedString("modal_open_url_explanation", comment: ""), url.absoluteString)
urlModal.modalTransitionStyle = .crossDissolve let alertVC = UIAlertController.init(title: title, message: message, preferredStyle: .actionSheet)
present(urlModal, animated: true, completion: nil) 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) { func joinOpenGroup(name: String, url: String) {

@ -531,6 +531,7 @@
"modal_open_url_title" = "URL öffnen?"; "modal_open_url_title" = "URL öffnen?";
"modal_open_url_explanation" = "Möchten Sie %@ wirklich öffnen?"; "modal_open_url_explanation" = "Möchten Sie %@ wirklich öffnen?";
"modal_open_url_button_title" = "Öffnen"; "modal_open_url_button_title" = "Öffnen";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "%@ entsperren?"; "modal_blocked_title" = "%@ entsperren?";
"modal_blocked_explanation" = "Sind Sie sicher, dass Sie %@ entsperren möchten?"; "modal_blocked_explanation" = "Sind Sie sicher, dass Sie %@ entsperren möchten?";
"modal_blocked_button_title" = "Entsperren"; "modal_blocked_button_title" = "Entsperren";

@ -531,6 +531,7 @@
"modal_open_url_title" = "Open URL?"; "modal_open_url_title" = "Open URL?";
"modal_open_url_explanation" = "Are you sure you want to open %@?"; "modal_open_url_explanation" = "Are you sure you want to open %@?";
"modal_open_url_button_title" = "Open"; "modal_open_url_button_title" = "Open";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Unblock %@?"; "modal_blocked_title" = "Unblock %@?";
"modal_blocked_explanation" = "Are you sure you want to unblock %@?"; "modal_blocked_explanation" = "Are you sure you want to unblock %@?";
"modal_blocked_button_title" = "Unblock"; "modal_blocked_button_title" = "Unblock";

@ -531,6 +531,7 @@
"modal_open_url_title" = "¿Abrir URL?"; "modal_open_url_title" = "¿Abrir URL?";
"modal_open_url_explanation" = "¿Estás seguro de que quieres abrir %@?"; "modal_open_url_explanation" = "¿Estás seguro de que quieres abrir %@?";
"modal_open_url_button_title" = "Abrir"; "modal_open_url_button_title" = "Abrir";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "¿Desbloquear a %@?"; "modal_blocked_title" = "¿Desbloquear a %@?";
"modal_blocked_explanation" = "¿Estás seguro de que quieres desbloquear a %@?"; "modal_blocked_explanation" = "¿Estás seguro de que quieres desbloquear a %@?";
"modal_blocked_button_title" = "Desbloquear"; "modal_blocked_button_title" = "Desbloquear";

@ -531,6 +531,7 @@
"modal_open_url_title" = "URL باز شود؟"; "modal_open_url_title" = "URL باز شود؟";
"modal_open_url_explanation" = "آیا مطمئن هستید که میخواهید %@ را باز کنید؟"; "modal_open_url_explanation" = "آیا مطمئن هستید که میخواهید %@ را باز کنید؟";
"modal_open_url_button_title" = "باز کن"; "modal_open_url_button_title" = "باز کن";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Unblock %@?"; "modal_blocked_title" = "Unblock %@?";
"modal_blocked_explanation" = "Are you sure you want to unblock %@?"; "modal_blocked_explanation" = "Are you sure you want to unblock %@?";
"modal_blocked_button_title" = "رفع مسدودی"; "modal_blocked_button_title" = "رفع مسدودی";

@ -531,6 +531,7 @@
"modal_open_url_title" = "Avataanko URL?"; "modal_open_url_title" = "Avataanko URL?";
"modal_open_url_explanation" = "Oletko varma, että haluat avata linkin %@?"; "modal_open_url_explanation" = "Oletko varma, että haluat avata linkin %@?";
"modal_open_url_button_title" = "Avaa"; "modal_open_url_button_title" = "Avaa";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Poista esto henkilöltä %@?"; "modal_blocked_title" = "Poista esto henkilöltä %@?";
"modal_blocked_explanation" = "Oletko varma, että haluat poistaa eston henkilöltä %@?"; "modal_blocked_explanation" = "Oletko varma, että haluat poistaa eston henkilöltä %@?";
"modal_blocked_button_title" = "Poista esto"; "modal_blocked_button_title" = "Poista esto";

@ -531,6 +531,7 @@
"modal_open_url_title" = "Ouvrir l'URL?"; "modal_open_url_title" = "Ouvrir l'URL?";
"modal_open_url_explanation" = "Êtes-vous sûr de vouloir ouvrir %@?"; "modal_open_url_explanation" = "Êtes-vous sûr de vouloir ouvrir %@?";
"modal_open_url_button_title" = "Ouvrir"; "modal_open_url_button_title" = "Ouvrir";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Débloquer %@?"; "modal_blocked_title" = "Débloquer %@?";
"modal_blocked_explanation" = "Confirmez-vous le déblocage de %@ ?"; "modal_blocked_explanation" = "Confirmez-vous le déblocage de %@ ?";
"modal_blocked_button_title" = "Débloquer"; "modal_blocked_button_title" = "Débloquer";

@ -531,6 +531,7 @@
"modal_open_url_title" = "यूआरएल खोलें"; "modal_open_url_title" = "यूआरएल खोलें";
"modal_open_url_explanation" = "क्या आप वाकई %@ खोलना चाहते हैं?"; "modal_open_url_explanation" = "क्या आप वाकई %@ खोलना चाहते हैं?";
"modal_open_url_button_title" = "खोलें"; "modal_open_url_button_title" = "खोलें";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "%@ अनब्लॉक करें?"; "modal_blocked_title" = "%@ अनब्लॉक करें?";
"modal_blocked_explanation" = "क्या आप वाकई %@ को अनब्लॉक करना चाहते हैं?"; "modal_blocked_explanation" = "क्या आप वाकई %@ को अनब्लॉक करना चाहते हैं?";
"modal_blocked_button_title" = "अनब्लॉक करें"; "modal_blocked_button_title" = "अनब्लॉक करें";

@ -531,6 +531,7 @@
"modal_open_url_title" = "Otvori poveznicu?"; "modal_open_url_title" = "Otvori poveznicu?";
"modal_open_url_explanation" = "Jeste li sigurni da želite otvoriti %@?"; "modal_open_url_explanation" = "Jeste li sigurni da želite otvoriti %@?";
"modal_open_url_button_title" = "Otvori"; "modal_open_url_button_title" = "Otvori";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Deblokiraj %@?"; "modal_blocked_title" = "Deblokiraj %@?";
"modal_blocked_explanation" = "Jeste li sigurni da želite deblokirati %@?"; "modal_blocked_explanation" = "Jeste li sigurni da želite deblokirati %@?";
"modal_blocked_button_title" = "Deblokiraj"; "modal_blocked_button_title" = "Deblokiraj";

@ -531,6 +531,7 @@
"modal_open_url_title" = "Open URL?"; "modal_open_url_title" = "Open URL?";
"modal_open_url_explanation" = "Are you sure you want to open %@?"; "modal_open_url_explanation" = "Are you sure you want to open %@?";
"modal_open_url_button_title" = "Open"; "modal_open_url_button_title" = "Open";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Unblock %@?"; "modal_blocked_title" = "Unblock %@?";
"modal_blocked_explanation" = "Are you sure you want to unblock %@?"; "modal_blocked_explanation" = "Are you sure you want to unblock %@?";
"modal_blocked_button_title" = "Unblock"; "modal_blocked_button_title" = "Unblock";

@ -531,6 +531,7 @@
"modal_open_url_title" = "Aprire URL?"; "modal_open_url_title" = "Aprire URL?";
"modal_open_url_explanation" = "Sei sicuro di voler aprire %@?"; "modal_open_url_explanation" = "Sei sicuro di voler aprire %@?";
"modal_open_url_button_title" = "Apri"; "modal_open_url_button_title" = "Apri";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Sbloccare %@?"; "modal_blocked_title" = "Sbloccare %@?";
"modal_blocked_explanation" = "Sei sicuro di voler sbloccare %@?"; "modal_blocked_explanation" = "Sei sicuro di voler sbloccare %@?";
"modal_blocked_button_title" = "Sblocca"; "modal_blocked_button_title" = "Sblocca";

@ -531,6 +531,7 @@
"modal_open_url_title" = "URLを開きますか"; "modal_open_url_title" = "URLを開きますか";
"modal_open_url_explanation" = "%@を本当に開いてもよろしいですか?"; "modal_open_url_explanation" = "%@を本当に開いてもよろしいですか?";
"modal_open_url_button_title" = "開く"; "modal_open_url_button_title" = "開く";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "%@のブロックを解除しますか?"; "modal_blocked_title" = "%@のブロックを解除しますか?";
"modal_blocked_explanation" = "%@のブロックを解除してもよろしいですか?"; "modal_blocked_explanation" = "%@のブロックを解除してもよろしいですか?";
"modal_blocked_button_title" = "ブロックを解除する"; "modal_blocked_button_title" = "ブロックを解除する";

@ -531,6 +531,7 @@
"modal_open_url_title" = "URL openen?"; "modal_open_url_title" = "URL openen?";
"modal_open_url_explanation" = "Weet u zeker dat u %@ wilt openen?"; "modal_open_url_explanation" = "Weet u zeker dat u %@ wilt openen?";
"modal_open_url_button_title" = "Openen"; "modal_open_url_button_title" = "Openen";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Blokkering opheffen voor %@?"; "modal_blocked_title" = "Blokkering opheffen voor %@?";
"modal_blocked_explanation" = "Weet je zeker dat je %@ weer wilt toelaten?"; "modal_blocked_explanation" = "Weet je zeker dat je %@ weer wilt toelaten?";
"modal_blocked_button_title" = "Deblokkeren"; "modal_blocked_button_title" = "Deblokkeren";

@ -531,6 +531,7 @@
"modal_open_url_title" = "Otworzyć URL?"; "modal_open_url_title" = "Otworzyć URL?";
"modal_open_url_explanation" = "Czy na pewno chcesz otworzyć %@?"; "modal_open_url_explanation" = "Czy na pewno chcesz otworzyć %@?";
"modal_open_url_button_title" = "Otwórz"; "modal_open_url_button_title" = "Otwórz";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Odblokować %@?"; "modal_blocked_title" = "Odblokować %@?";
"modal_blocked_explanation" = "Czy na pewno chcesz odblokować %@?"; "modal_blocked_explanation" = "Czy na pewno chcesz odblokować %@?";
"modal_blocked_button_title" = "Odblokuj"; "modal_blocked_button_title" = "Odblokuj";

@ -531,6 +531,7 @@
"modal_open_url_title" = "Abrir URL?"; "modal_open_url_title" = "Abrir URL?";
"modal_open_url_explanation" = "Você tem certeza que deseja abrir %@/?"; "modal_open_url_explanation" = "Você tem certeza que deseja abrir %@/?";
"modal_open_url_button_title" = "Abrir"; "modal_open_url_button_title" = "Abrir";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Desbloquear %@?"; "modal_blocked_title" = "Desbloquear %@?";
"modal_blocked_explanation" = "Você tem certeza que deseja desbloquear %@?"; "modal_blocked_explanation" = "Você tem certeza que deseja desbloquear %@?";
"modal_blocked_button_title" = "Desbloquear"; "modal_blocked_button_title" = "Desbloquear";

@ -531,6 +531,7 @@
"modal_open_url_title" = "Открыть ссылку?"; "modal_open_url_title" = "Открыть ссылку?";
"modal_open_url_explanation" = "Вы уверены, что хотите открыть %@?"; "modal_open_url_explanation" = "Вы уверены, что хотите открыть %@?";
"modal_open_url_button_title" = "Открыть"; "modal_open_url_button_title" = "Открыть";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Разблокировать %@?"; "modal_blocked_title" = "Разблокировать %@?";
"modal_blocked_explanation" = "Вы уверены, что хотите разблокировать %@?"; "modal_blocked_explanation" = "Вы уверены, что хотите разблокировать %@?";
"modal_blocked_button_title" = "Разблокировать"; "modal_blocked_button_title" = "Разблокировать";

@ -531,6 +531,7 @@
"modal_open_url_title" = "Otvoriť URL?"; "modal_open_url_title" = "Otvoriť URL?";
"modal_open_url_explanation" = "Ste si istý, že chcete otvoriť %@?"; "modal_open_url_explanation" = "Ste si istý, že chcete otvoriť %@?";
"modal_open_url_button_title" = "Otvoriť"; "modal_open_url_button_title" = "Otvoriť";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Odblokovať %@?"; "modal_blocked_title" = "Odblokovať %@?";
"modal_blocked_explanation" = "Ste si istý/á, že chcete odblokovať %@?"; "modal_blocked_explanation" = "Ste si istý/á, že chcete odblokovať %@?";
"modal_blocked_button_title" = "Odblokovať"; "modal_blocked_button_title" = "Odblokovať";

@ -531,6 +531,7 @@
"modal_open_url_title" = "Öppna URL?"; "modal_open_url_title" = "Öppna URL?";
"modal_open_url_explanation" = "Är du säker på att du vill öppna %@?"; "modal_open_url_explanation" = "Är du säker på att du vill öppna %@?";
"modal_open_url_button_title" = "Öppna"; "modal_open_url_button_title" = "Öppna";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Avblockera %@?"; "modal_blocked_title" = "Avblockera %@?";
"modal_blocked_explanation" = "Är du säker på att du vill avblockera %@?"; "modal_blocked_explanation" = "Är du säker på att du vill avblockera %@?";
"modal_blocked_button_title" = "Avblockera"; "modal_blocked_button_title" = "Avblockera";

@ -531,6 +531,7 @@
"modal_open_url_title" = "เปิดลิงค์ URL ไหม"; "modal_open_url_title" = "เปิดลิงค์ URL ไหม";
"modal_open_url_explanation" = "แน่ใจไหมว่าคุณต้องกาเปิดดู %@"; "modal_open_url_explanation" = "แน่ใจไหมว่าคุณต้องกาเปิดดู %@";
"modal_open_url_button_title" = "เปิด"; "modal_open_url_button_title" = "เปิด";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "เลิกบล็อก %@ ไหม"; "modal_blocked_title" = "เลิกบล็อก %@ ไหม";
"modal_blocked_explanation" = "แน่ใจไหมว่าคุณต้องการเลิกบล็อก %@"; "modal_blocked_explanation" = "แน่ใจไหมว่าคุณต้องการเลิกบล็อก %@";
"modal_blocked_button_title" = "เลิกบล็อก"; "modal_blocked_button_title" = "เลิกบล็อก";

@ -531,6 +531,7 @@
"modal_open_url_title" = "Open URL?"; "modal_open_url_title" = "Open URL?";
"modal_open_url_explanation" = "Are you sure you want to open %@?"; "modal_open_url_explanation" = "Are you sure you want to open %@?";
"modal_open_url_button_title" = "Open"; "modal_open_url_button_title" = "Open";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "Unblock %@?"; "modal_blocked_title" = "Unblock %@?";
"modal_blocked_explanation" = "Are you sure you want to unblock %@?"; "modal_blocked_explanation" = "Are you sure you want to unblock %@?";
"modal_blocked_button_title" = "Unblock"; "modal_blocked_button_title" = "Unblock";

@ -531,6 +531,7 @@
"modal_open_url_title" = "打開連結?"; "modal_open_url_title" = "打開連結?";
"modal_open_url_explanation" = "您確定要打開 %@ 嗎?"; "modal_open_url_explanation" = "您確定要打開 %@ 嗎?";
"modal_open_url_button_title" = "打開"; "modal_open_url_button_title" = "打開";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "解除封鎖 %@ 嗎?"; "modal_blocked_title" = "解除封鎖 %@ 嗎?";
"modal_blocked_explanation" = "您確定要解除封鎖 %@ 嗎?"; "modal_blocked_explanation" = "您確定要解除封鎖 %@ 嗎?";
"modal_blocked_button_title" = "解除封鎖"; "modal_blocked_button_title" = "解除封鎖";

@ -531,6 +531,7 @@
"modal_open_url_title" = "打开链接?"; "modal_open_url_title" = "打开链接?";
"modal_open_url_explanation" = "确定要打开 %@ 吗?"; "modal_open_url_explanation" = "确定要打开 %@ 吗?";
"modal_open_url_button_title" = "打开"; "modal_open_url_button_title" = "打开";
"modal_copy_url_button_title" = "Copy Link";
"modal_blocked_title" = "从黑名单中移除 %@ 吗?"; "modal_blocked_title" = "从黑名单中移除 %@ 吗?";
"modal_blocked_explanation" = "确定解除屏蔽%@吗?"; "modal_blocked_explanation" = "确定解除屏蔽%@吗?";
"modal_blocked_button_title" = "解除屏蔽"; "modal_blocked_button_title" = "解除屏蔽";

Loading…
Cancel
Save