Fix sendButton state in ChatConversationViewSwift

Fix voice recording bubble
This commit is contained in:
Benoit Martins 2023-06-02 14:10:17 +02:00 committed by QuentinArguillere
parent 9a1273a02b
commit f4e4f79bb7
5 changed files with 24 additions and 30 deletions

View file

@ -14,8 +14,6 @@ import SwipeCellKit
class ChatConversationTableViewSwift: UIViewController, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout, QLPreviewControllerDelegate, QLPreviewControllerDataSource, SwipeCollectionViewCellDelegate {
let controlsView = ControlsView(showVideo: true, controlsViewModel: ChatConversationTableViewModel.sharedModel)
static let compositeDescription = UICompositeViewDescription(ChatConversationTableViewSwift.self, statusBar: StatusBarView.self, tabBar: nil, sideMenu: SideMenuView.self, fullscreen: false, isLeftFragment: false,fragmentWith: nil)
static func compositeViewDescription() -> UICompositeViewDescription! { return compositeDescription }

View file

@ -27,8 +27,6 @@ import AVFoundation
class ChatConversationViewSwift: BackActionsNavigationView, PHPickerViewControllerDelegate, UIDocumentPickerDelegate, UICompositeViewDelegate, UICollectionViewDataSource, UICollectionViewDelegate, UIImagePickerControllerDelegate, CoreDelegate & UINavigationControllerDelegate{ // Replaces ChatConversationView
let controlsView = ControlsView(showVideo: true, controlsViewModel: ChatConversationViewModel.sharedModel)
static let compositeDescription = UICompositeViewDescription(ChatConversationViewSwift.self, statusBar: StatusBarView.self, tabBar: nil, sideMenu: SideMenuView.self, fullscreen: false, isLeftFragment: false,fragmentWith: nil)
static func compositeViewDescription() -> UICompositeViewDescription! { return compositeDescription }
@ -1071,11 +1069,7 @@ class ChatConversationViewSwift: BackActionsNavigationView, PHPickerViewControll
if(ChatConversationViewModel.sharedModel.mediaCollectionView.count == 0){
self.messageView.fileContext = false
self.selectionMedia()
if self.messageView.messageText.text.isEmpty{
self.messageView.sendButton.isEnabled = false
} else {
self.messageView.sendButton.isEnabled = true
}
self.setSendButtonState()
}
self.collectionViewMedia.reloadData()
}
@ -1416,7 +1410,7 @@ class ChatConversationViewSwift: BackActionsNavigationView, PHPickerViewControll
}
func setSendButtonState() {
self.messageView.sendButton.isEnabled = !ChatConversationViewModel.sharedModel.isVoiceRecording && ((ChatConversationViewModel.sharedModel.isPendingVoiceRecord && linphone_recorder_get_duration(ChatConversationViewModel.sharedModel.voiceRecorder?.getCobject) > 0) || self.messageView.messageText.text.count > 0 || ChatConversationViewModel.sharedModel.fileContext.count > 0)
self.messageView.sendButton.isEnabled = ((ChatConversationViewModel.sharedModel.isPendingVoiceRecord && linphone_recorder_get_duration(ChatConversationViewModel.sharedModel.voiceRecorder?.getCobject) > 0) || self.messageView.messageText.text.count > 0 || ChatConversationViewModel.sharedModel.fileContext.count > 0)
}
func onvrPlayPauseStop() {

View file

@ -524,7 +524,7 @@ class MultilineMessageCell: SwipeCollectionViewCell, UICollectionViewDataSource,
recordingWaveView.bottomAnchor.constraint(equalTo: contentMediaViewBubble.bottomAnchor, constant: labelInset.bottom),
recordingWaveView.leadingAnchor.constraint(equalTo: contentMediaViewBubble.leadingAnchor, constant: labelInset.left),
recordingWaveView.trailingAnchor.constraint(equalTo: contentMediaViewBubble.trailingAnchor, constant: labelInset.right),
recordingWaveImage.bottomAnchor.constraint(equalTo: recordingWaveView.bottomAnchor, constant: -12)
recordingWaveImage.centerYAnchor.constraint(equalTo: recordingWaveView.centerYAnchor)
]
recordingWaveConstraintsWithMediaGrid = [
@ -532,7 +532,7 @@ class MultilineMessageCell: SwipeCollectionViewCell, UICollectionViewDataSource,
recordingWaveView.bottomAnchor.constraint(equalTo: recordingView.bottomAnchor, constant: -10),
recordingWaveView.leadingAnchor.constraint(equalTo: contentMediaViewBubble.leadingAnchor, constant: labelInset.left),
recordingWaveView.trailingAnchor.constraint(equalTo: contentMediaViewBubble.trailingAnchor, constant: labelInset.right),
recordingWaveImage.bottomAnchor.constraint(equalTo: recordingWaveView.bottomAnchor, constant: -7)
recordingWaveImage.centerYAnchor.constraint(equalTo: recordingWaveView.centerYAnchor)
]
recordingWaveView.progressViewStyle = .bar
@ -1096,7 +1096,7 @@ class MultilineMessageCell: SwipeCollectionViewCell, UICollectionViewDataSource,
}
if imagesGridCollectionView.count == 0 {
imagesGridCollectionView.append(nil)
//imagesGridCollectionView.append(nil)
imagesGridCollectionViewNil += 1
}
@ -1686,7 +1686,7 @@ class MultilineMessageCell: SwipeCollectionViewCell, UICollectionViewDataSource,
if((linphone_core_get_max_size_for_auto_download_incoming_files(LinphoneManager.getLc()) > -1 && self.chatMessage!.isFileTransferInProgress) || self.chatMessage!.isOutgoing){
downloadView.downloadButtonLabel.isHidden = true
}
} else {
} else if imagesGridCollectionView[indexPathWithoutNil] != nil {
downloadContentCollection.append(nil)
let myImageView = UIImageView()
@ -1723,21 +1723,23 @@ class MultilineMessageCell: SwipeCollectionViewCell, UICollectionViewDataSource,
}
}
if(chatMessage?.contents[indexPathWithoutNilWithRecording].type == "video"){
var imagePlay = UIImage()
if #available(iOS 13.0, *) {
imagePlay = (UIImage(named: "vr_play")!.withTintColor(.white))
} else {
imagePlay = UIImage(named: "vr_play")!
if(imagesGridCollectionView[indexPathWithoutNil] != nil){
if(chatMessage?.contents[indexPathWithoutNilWithRecording].type == "video"){
var imagePlay = UIImage()
if #available(iOS 13.0, *) {
imagePlay = (UIImage(named: "vr_play")!.withTintColor(.white))
} else {
imagePlay = UIImage(named: "vr_play")!
}
let myImagePlayView = UIImageView(image: imagePlay)
viewCell.addSubview(myImagePlayView)
myImagePlayView.size(w: viewCell.frame.width/4, h: viewCell.frame.height/4).done()
myImagePlayView.alignHorizontalCenterWith(viewCell).alignVerticalCenterWith(viewCell).done()
}
let myImagePlayView = UIImageView(image: imagePlay)
viewCell.addSubview(myImagePlayView)
myImagePlayView.size(w: viewCell.frame.width/4, h: viewCell.frame.height/4).done()
myImagePlayView.alignHorizontalCenterWith(viewCell).alignVerticalCenterWith(viewCell).done()
}
if chatMessage?.contents[indexPathWithoutNilWithRecording].filePath != "" {
viewCell.onClick {
ChatConversationTableViewModel.sharedModel.onGridClick(indexMessage: self.selfIndexMessage, index: indexPathWithoutNil)
if chatMessage?.contents[indexPathWithoutNilWithRecording].filePath != "" {
viewCell.onClick {
ChatConversationTableViewModel.sharedModel.onGridClick(indexMessage: self.selfIndexMessage, index: indexPathWithoutNil)
}
}
}
}

View file

@ -17,7 +17,7 @@ class UploadMessageCell: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
self.layer.zPosition = 10
addSubview(circularProgressBarView)
circularProgressBarView.isHidden = true
circularProgressBarLabel.text = "0%"

View file

@ -212,7 +212,7 @@ static void file_transfer_progress_indication_send(LinphoneChatMessage *message,
linphone_content_unref(content);
}
BOOL basic = linphone_chat_message_get_chat_room(rootMessage);
BOOL basic = [ChatConversationViewSwift isBasicChatRoom:linphone_chat_message_get_chat_room(rootMessage)];
const LinphoneAccountParams *params = linphone_account_get_params(linphone_core_get_default_account(LC));
BOOL cpimEnabled = linphone_account_params_cpim_in_basic_chat_room_enabled(params);