forked from mirrors/linphone-iphone
Add emoji button and change emoji picket lib (Now use MCEmojiPicker)
This commit is contained in:
parent
68a908d19a
commit
c711911184
4 changed files with 28 additions and 43 deletions
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
4
Podfile
4
Podfile
|
|
@ -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
BIN
Resources/images/emoji.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 817 B |
Loading…
Add table
Reference in a new issue