Add emoji button and change emoji picket lib (Now use MCEmojiPicker)

This commit is contained in:
Benoit Martins 2023-06-01 15:32:49 +02:00 committed by QuentinArguillere
parent 68a908d19a
commit c711911184
4 changed files with 28 additions and 43 deletions

View file

@ -24,15 +24,9 @@ import linphonesw
import DropDown
import PhotosUI
import AVFoundation
import EmojiPicker
import MCEmojiPicker
class ChatConversationViewSwift: BackActionsNavigationView, PHPickerViewControllerDelegate, UIDocumentPickerDelegate, UICompositeViewDelegate, UICollectionViewDataSource, UICollectionViewDelegate, UIImagePickerControllerDelegate, EmojiPickerDelegate, CoreDelegate & UINavigationControllerDelegate{
// Replaces ChatConversationView
func didGetEmoji(emoji: String) {
//emojiButton.setTitle(emoji, for: .normal)
messageView.voiceRecordButton.setTitle(emoji, for: .normal)
}
class ChatConversationViewSwift: BackActionsNavigationView, PHPickerViewControllerDelegate, UIDocumentPickerDelegate, UICompositeViewDelegate, UICollectionViewDataSource, UICollectionViewDelegate, UIImagePickerControllerDelegate, MCEmojiPickerDelegate, CoreDelegate & UINavigationControllerDelegate{ // Replaces ChatConversationView
static let compositeDescription = UICompositeViewDescription(ChatConversationViewSwift.self, statusBar: StatusBarView.self, tabBar: nil, sideMenu: SideMenuView.self, fullscreen: false, isLeftFragment: false,fragmentWith: nil)
@ -249,9 +243,9 @@ class ChatConversationViewSwift: BackActionsNavigationView, PHPickerViewControll
messageView.sendButton.onClickAction = onSendClick
messageView.pictureButton.onClickAction = alertAction
messageView.voiceRecordButton.addTarget(self,action:#selector(openEmojiPickerModule),
for:.touchUpInside)
//messageView.voiceRecordButton.onClickAction = openEmojiPickerModule
messageView.voiceRecordButton.onClickAction = onVrStart
messageView.emojisButton.addTarget(self,action:#selector(openEmojiPickerModule),
for:.touchUpInside)
recordingDeleteButton.onClickAction = cancelVoiceRecording
recordingPlayButton.onClickAction = onvrPlayPauseStop
recordingStopButton.onClickAction = onvrPlayPauseStop
@ -1347,7 +1341,6 @@ class ChatConversationViewSwift: BackActionsNavigationView, PHPickerViewControll
}
func onVrStart() {
/*
self.recordingWaveImageMask.isHidden = false
recordingWaveView.progress = 0.0
recordingWaveView.setProgress(recordingWaveView.progress, animated: false)
@ -1357,19 +1350,19 @@ class ChatConversationViewSwift: BackActionsNavigationView, PHPickerViewControll
} else {
startVoiceRecording()
}
*/
messageView.messageText.emojiPIcker = true
messageView.messageText.becomeFirstResponder()
messageView.messageText.emojiPIcker = false
}
@objc private func openEmojiPickerModule(sender: UIButton) {
let viewController = EmojiPickerViewController()
messageView.messageText.resignFirstResponder()
let viewController = MCEmojiPickerViewController()
viewController.delegate = self
viewController.sourceView = sender
present(viewController, animated: true)
viewController.isDismissAfterChoosing = false
present(viewController, animated: true, completion: nil)
}
func didGetEmoji(emoji: String) {
messageView.messageText.text = messageView.messageText.text + emoji
}
func startVoiceRecording() {

View file

@ -32,8 +32,10 @@ class MessageView: UIView, UITextViewDelegate {
let pictureButton = CallControlButton(buttonTheme:VoipTheme.nav_button(""))
let voiceRecordButton = CallControlButton(buttonTheme:VoipTheme.nav_button("vr_off"))
let sendButton = CallControlButton(buttonTheme:VoipTheme.nav_button(""))
let emojisButton = CallControlButton(buttonTheme:VoipTheme.nav_button("emoji"))
let messageTextView = UIView()
let messageText = EmojiTextField()
let messageWithEmojiView = UIView()
let messageText = UITextView()
let ephemeralIndicator = UIImageView(image: UIImage(named: "ephemeral_messages_color_A.png"))
var fileContext = false
var isComposing = false
@ -79,13 +81,21 @@ class MessageView: UIView, UITextViewDelegate {
addSubview(messageTextView)
messageTextView.toRightOf(voiceRecordButton, withLeftMargin: 5).toLeftOf(sendButton).matchParentHeight().done()
messageTextView.addSubview(messageText)
messageText.matchParentDimmensions(insetedByDx: 10).done()
messageTextView.addSubview(messageWithEmojiView)
messageWithEmojiView.matchParentDimmensions(insetedByDx: 10).done()
messageWithEmojiView.backgroundColor = VoipTheme.backgroundWhiteBlack.get()
messageWithEmojiView.addSubview(messageText)
messageText.matchParentHeight().alignParentLeft().alignParentRight(withMargin: 40).done()
messageText.font = UIFont.systemFont(ofSize: 18)
messageText.delegate = self
messageWithEmojiView.addSubview(emojisButton)
emojisButton.alignParentRight().matchParentHeight().done()
UIDeviceBridge.displayModeSwitched.readCurrentAndObserve { _ in
self.backgroundColor = VoipTheme.voipToolbarBackgroundColor.get()
self.messageWithEmojiView.backgroundColor = VoipTheme.backgroundWhiteBlack.get()
}
}
@ -106,21 +116,3 @@ class MessageView: UIView, UITextViewDelegate {
}
}
}
class EmojiTextField: UITextView {
var emojiPIcker = false
// required for iOS 13
override var textInputContextIdentifier: String? { "" } // return non-nil to show the Emoji keyboard ¯\_()_/¯
override var textInputMode: UITextInputMode? {
for mode in UITextInputMode.activeInputModes {
if !emojiPIcker {
return mode
} else if mode.primaryLanguage == "emoji" {
return mode
}
}
return nil
}
}

View file

@ -29,8 +29,8 @@ target 'linphone' do
pod 'SnapKit', '~> 5.6.0'
pod 'DropDown'
pod 'IQKeyboardManager'
pod 'SwipeCellKit' # License: https://github.com/SwipeCellKit/SwipeCellKit/blob/develop/LICENSE
pod 'EmojiPicker', :git => 'https://github.com/htmlprogrammist/EmojiPicker'
pod 'SwipeCellKit' #License: https://github.com/SwipeCellKit/SwipeCellKit/blob/develop/LICENSE
pod 'MCEmojiPicker' #License: https://github.com/izyumkin/MCEmojiPicker/blob/main/LICENSE
all_pods
end

BIN
Resources/images/emoji.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 B