forked from mirrors/linphone-iphone
Fix QLPreviewController
This commit is contained in:
parent
e7f9c24309
commit
346e84615f
6 changed files with 67 additions and 18 deletions
|
|
@ -20,6 +20,9 @@ class ChatConversationTableViewModel: ControlsViewModel {
|
|||
|
||||
var refreshIndexPath = MutableLiveData<Int>(0)
|
||||
|
||||
var onClickIndexPath = MutableLiveData<Int>(0)
|
||||
var onClickMessageIndexPath = 0
|
||||
|
||||
override init() {
|
||||
super.init()
|
||||
}
|
||||
|
|
@ -72,4 +75,9 @@ class ChatConversationTableViewModel: ControlsViewModel {
|
|||
func reloadCollectionViewCell(){
|
||||
refreshIndexPath.value! += 1
|
||||
}
|
||||
|
||||
func onGridClick(indexMessage: Int, index :Int){
|
||||
onClickMessageIndexPath = indexMessage
|
||||
onClickIndexPath.value! = index
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ class ChatConversationTableViewSwift: UIViewController, UICollectionViewDataSour
|
|||
var floatingScrollBackground : UIButton?
|
||||
|
||||
var previewItems : [QLPreviewItem?] = []
|
||||
var afterPreviewIndex = -1
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
|
@ -52,6 +53,10 @@ class ChatConversationTableViewSwift: UIViewController, UICollectionViewDataSour
|
|||
self.collectionView.reloadData()
|
||||
}
|
||||
|
||||
ChatConversationTableViewModel.sharedModel.onClickIndexPath.observe { index in
|
||||
self.onGridClick(indexMessage: ChatConversationTableViewModel.sharedModel.onClickMessageIndexPath, index: index!)
|
||||
}
|
||||
|
||||
|
||||
collectionView.isUserInteractionEnabled = true
|
||||
}
|
||||
|
|
@ -204,22 +209,6 @@ class ChatConversationTableViewSwift: UIViewController, UICollectionViewDataSour
|
|||
self.onImageClick(chatMessage: event.chatMessage!)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
if (!cell.collectionViewImagesGrid.isHidden){
|
||||
cell.onClick {
|
||||
let previewController = QLPreviewController()
|
||||
self.previewItems = []
|
||||
event.chatMessage?.contents.forEach({ content in
|
||||
self.previewItems.append(self.getPreviewItem(filePath: (content.filePath)))
|
||||
})
|
||||
|
||||
previewController.currentPreviewItemIndex = 0
|
||||
previewController.dataSource = self
|
||||
self.present(previewController, animated: true, completion: nil)
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -445,13 +434,21 @@ class ChatConversationTableViewSwift: UIViewController, UICollectionViewDataSour
|
|||
return (previewItems[index] as QLPreviewItem?)!
|
||||
}
|
||||
|
||||
func previewControllerDidDismiss(_ controller: QLPreviewController) {
|
||||
print("ChatConversationTableViewSwift controller \(afterPreviewIndex)")
|
||||
if afterPreviewIndex > -1 {
|
||||
collectionView.scrollToItem(at: IndexPath(row: afterPreviewIndex, section: 0), at: .centeredVertically, animated: false)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
func onImageClick(chatMessage: ChatMessage) {
|
||||
|
||||
let state = chatMessage.state
|
||||
if (state.rawValue == LinphoneChatMessageStateNotDelivered.rawValue) {
|
||||
print("Messsage not delivered")
|
||||
} else {
|
||||
if VFSUtil.vfsEnabled(groupName: kLinphoneMsgNotificationAppGroupId){
|
||||
if (VFSUtil.vfsEnabled(groupName: kLinphoneMsgNotificationAppGroupId) || ConfigManager.instance().lpConfigBoolForKey(key: "use_in_app_file_viewer_for_non_encrypted_files", section: "app")){
|
||||
let view: ImageView = VIEW(ImageView.compositeViewDescription())
|
||||
let image = UIImage(contentsOfFile: chatMessage.contents.first!.filePath)
|
||||
PhoneMainView.instance().changeCurrentView(view.compositeViewDescription())
|
||||
|
|
@ -461,10 +458,43 @@ class ChatConversationTableViewSwift: UIViewController, UICollectionViewDataSour
|
|||
self.previewItems = []
|
||||
self.previewItems.append(self.getPreviewItem(filePath: (chatMessage.contents.first?.filePath)!))
|
||||
|
||||
afterPreviewIndex = 0
|
||||
|
||||
previewController.currentPreviewItemIndex = 0
|
||||
previewController.dataSource = self
|
||||
self.present(previewController, animated: true, completion: nil)
|
||||
previewController.delegate = self
|
||||
previewController.reloadData()
|
||||
PhoneMainView.instance().mainViewController.present(previewController, animated: true, completion: nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func onGridClick(indexMessage: Int, index: Int) {
|
||||
let chatMessage = ChatConversationTableViewModel.sharedModel.getMessage(index: indexMessage)?.chatMessage
|
||||
let state = chatMessage!.state
|
||||
if (state.rawValue == LinphoneChatMessageStateNotDelivered.rawValue) {
|
||||
print("Messsage not delivered")
|
||||
} else {
|
||||
if (VFSUtil.vfsEnabled(groupName: kLinphoneMsgNotificationAppGroupId) || ConfigManager.instance().lpConfigBoolForKey(key: "use_in_app_file_viewer_for_non_encrypted_files", section: "app")){
|
||||
let view: ImageView = VIEW(ImageView.compositeViewDescription())
|
||||
let image = UIImage(contentsOfFile: chatMessage!.contents[index].filePath)
|
||||
PhoneMainView.instance().changeCurrentView(view.compositeViewDescription())
|
||||
view.image = image
|
||||
} else {
|
||||
let previewController = QLPreviewController()
|
||||
self.previewItems = []
|
||||
chatMessage?.contents.forEach({ content in
|
||||
self.previewItems.append(self.getPreviewItem(filePath: (content.filePath)))
|
||||
})
|
||||
|
||||
afterPreviewIndex = indexMessage
|
||||
|
||||
previewController.dataSource = self
|
||||
previewController.currentPreviewItemIndex = index
|
||||
previewController.delegate = self
|
||||
PhoneMainView.instance().mainViewController.present(previewController, animated: true, completion: nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,6 +132,8 @@ class MultilineMessageCell: UICollectionViewCell, UICollectionViewDataSource, UI
|
|||
var indexTransferProgress: Int = -1
|
||||
var indexUploadTransferProgress: Int = -1
|
||||
|
||||
var selfIndexMessage: Int = -1
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
|
||||
|
|
@ -561,6 +563,7 @@ class MultilineMessageCell: UICollectionViewCell, UICollectionViewDataSource, UI
|
|||
}
|
||||
|
||||
func configure(event: EventLog, selfIndexPathConfigure: IndexPath) {
|
||||
selfIndexMessage = selfIndexPathConfigure.row
|
||||
chatMessage = event.chatMessage
|
||||
addMessageDelegate()
|
||||
if event.chatMessage != nil {
|
||||
|
|
@ -1126,6 +1129,11 @@ class MultilineMessageCell: UICollectionViewCell, UICollectionViewDataSource, UI
|
|||
uploadContentCollection.append(uploadView)
|
||||
uploadView.content = chatMessage?.contents[indexPath.row]
|
||||
uploadView.size(w: 138, h: 138).done()
|
||||
|
||||
viewCell.onClick {
|
||||
ChatConversationTableViewModel.sharedModel.onGridClick(indexMessage: self.selfIndexMessage, index: indexPath.row)
|
||||
}
|
||||
|
||||
viewCell.addSubview(uploadView)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ auto_download_incoming_files_max_size=0
|
|||
lime_migration_done=0
|
||||
use_rls_presence=1
|
||||
use_callkit=1
|
||||
use_in_app_file_viewer_for_non_encrypted_files=0
|
||||
unexpected_pushkit=0
|
||||
force_lime_chat_rooms=0
|
||||
disable_chat_feature=0
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ publish_presence=0
|
|||
backgroundmode_preference=1
|
||||
use_rls_presence=1
|
||||
use_callkit=1
|
||||
use_in_app_file_viewer_for_non_encrypted_files=0
|
||||
|
||||
accept_early_media=0
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ stun_preference=stun.linphone.org
|
|||
voiceproc_preference=1
|
||||
repeat_call_notification=1
|
||||
use_callkit=1
|
||||
use_in_app_file_viewer_for_non_encrypted_files=0
|
||||
unexpected_pushkit=0
|
||||
|
||||
[default_values]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue