forked from mirrors/linphone-iphone
Hide emojisButton and increase width of messageText when user is writing in MessageView
This commit is contained in:
parent
3d99102426
commit
70d92254f8
2 changed files with 16 additions and 13 deletions
|
|
@ -34,7 +34,7 @@ class MessageView: UIView, UITextViewDelegate {
|
|||
let sendButton = CallControlButton(buttonTheme:VoipTheme.nav_button(""))
|
||||
let emojisButton = CallControlButton(buttonTheme:VoipTheme.nav_button("emoji"))
|
||||
let messageTextView = UIView()
|
||||
let messageWithEmojiView = UIView()
|
||||
let messageWithEmojiView = UIStackView()
|
||||
let messageText = UITextView()
|
||||
let ephemeralIndicator = UIImageView(image: UIImage(named: "ephemeral_messages_color_A.png"))
|
||||
var fileContext = false
|
||||
|
|
@ -86,12 +86,12 @@ class MessageView: UIView, UITextViewDelegate {
|
|||
messageWithEmojiView.matchParentDimmensions(insetedByDx: 10).done()
|
||||
messageWithEmojiView.backgroundColor = VoipTheme.backgroundWhiteBlack.get()
|
||||
|
||||
messageWithEmojiView.addSubview(messageText)
|
||||
messageWithEmojiView.addArrangedSubview(messageText)
|
||||
messageText.matchParentHeight().alignParentLeft().alignParentRight(withMargin: 40).done()
|
||||
messageText.font = UIFont.systemFont(ofSize: 18)
|
||||
messageText.delegate = self
|
||||
|
||||
messageWithEmojiView.addSubview(emojisButton)
|
||||
messageWithEmojiView.addArrangedSubview(emojisButton)
|
||||
emojisButton.alignParentRight().matchParentHeight().done()
|
||||
|
||||
UIDeviceBridge.displayModeSwitched.readCurrentAndObserve { _ in
|
||||
|
|
@ -105,8 +105,7 @@ class MessageView: UIView, UITextViewDelegate {
|
|||
if ((messageText.text.isEmpty && !fileContext) || isLoading) {
|
||||
sendButton.isEnabled = false
|
||||
emojisButton.isHidden = false
|
||||
messageText.setWidth(80)
|
||||
NotificationCenter.default.post(name: Notification.Name("LinphoneTextViewSize"), object: self)
|
||||
NotificationCenter.default.post(name: Notification.Name("LinphoneResetTextViewSize"), object: self)
|
||||
lastNumLines = 0
|
||||
} else {
|
||||
if (messageText.text.trimmingCharacters(in: .whitespacesAndNewlines).unicodeScalars.first?.properties.isEmojiPresentation == true){
|
||||
|
|
@ -118,14 +117,11 @@ class MessageView: UIView, UITextViewDelegate {
|
|||
}
|
||||
if onlyEmojis {
|
||||
emojisButton.isHidden = false
|
||||
messageText.setWidth(100)
|
||||
} else {
|
||||
emojisButton.isHidden = true
|
||||
messageText.setWidth(80)
|
||||
}
|
||||
} else {
|
||||
emojisButton.isHidden = true
|
||||
messageText.setWidth(80)
|
||||
emojisButton.isHidden = true
|
||||
}
|
||||
if !isComposing {
|
||||
chatRoom.compose()
|
||||
|
|
@ -147,17 +143,17 @@ class MessageView: UIView, UITextViewDelegate {
|
|||
}
|
||||
|
||||
extension UIView {
|
||||
func setWidth(_ h:CGFloat, animateTime:TimeInterval?=nil) {
|
||||
func setWidth(_ w:CGFloat, animateTime:TimeInterval?=nil) {
|
||||
if let c = self.constraints.first(where: { $0.firstAttribute == .width && $0.relation == .equal }) {
|
||||
c.constant = CGFloat(h)
|
||||
c.constant = CGFloat(w)
|
||||
|
||||
if let animateTime = animateTime {
|
||||
UIView.animate(withDuration: animateTime, animations:{
|
||||
self.superview?.layoutIfNeeded()
|
||||
self.layoutIfNeeded()
|
||||
})
|
||||
}
|
||||
else {
|
||||
self.superview?.layoutIfNeeded()
|
||||
self.layoutIfNeeded()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -277,6 +277,7 @@ class BackActionsNavigationView: UIViewController {
|
|||
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(self.rotated), name: UIDevice.orientationDidChangeNotification, object: nil)
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(self.changeSizeOfTextView), name: Notification.Name("LinphoneTextViewSize"), object: nil)
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(self.resetSizeOfTextView), name: Notification.Name("LinphoneResetTextViewSize"), object: nil)
|
||||
}
|
||||
|
||||
func resetRecordingProgressBar(){
|
||||
|
|
@ -400,12 +401,18 @@ class BackActionsNavigationView: UIViewController {
|
|||
|
||||
@objc func changeSizeOfTextView(){
|
||||
let numLines = (messageView.messageText.contentSize.height / messageView.messageText.font!.lineHeight)
|
||||
print("changeSizeOfTextViewchangeSizeOfTextView \(numLines)")
|
||||
|
||||
if numLines >= 3 && numLines <= 6 {
|
||||
messageView.setHeight(33*numLines - 33, animateTime: 0.1)
|
||||
} else if numLines < 3 {
|
||||
messageView.setHeight(66, animateTime: 0.1)
|
||||
}
|
||||
}
|
||||
|
||||
@objc func resetSizeOfTextView(){
|
||||
messageView.setHeight(66, animateTime: 0.1)
|
||||
}
|
||||
}
|
||||
|
||||
extension UIView {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue