forked from mirrors/linphone-iphone
First View of ChatConversationSwift
This commit is contained in:
parent
7af4ac2633
commit
cd5e186e26
3 changed files with 75 additions and 2 deletions
64
Classes/Swift/Chat/Views/MessageView.swift
Normal file
64
Classes/Swift/Chat/Views/MessageView.swift
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
//
|
||||
// MessageView.swift
|
||||
// linphone
|
||||
//
|
||||
// Created by Benoît Martins on 07/12/2022.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
|
||||
class MessageView: UIView {
|
||||
|
||||
let top_bar_height = 66.0
|
||||
let side_buttons_margin = 10
|
||||
|
||||
var backAction : (() -> Void)? = nil
|
||||
var action1 : (() -> Void)? = nil
|
||||
var action2 : (() -> Void)? = nil
|
||||
|
||||
let pictureButton = CallControlButton(buttonTheme:VoipTheme.nav_button(""))
|
||||
let voiceRecordButton = CallControlButton(buttonTheme:VoipTheme.nav_button("vr_off"))
|
||||
let sendButton = CallControlButton(buttonTheme:VoipTheme.nav_button(""))
|
||||
let messageTextView = UIView()
|
||||
let messageText = UITextView()
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
setupView()
|
||||
}
|
||||
|
||||
required init?(coder aDecoder: NSCoder) {
|
||||
super.init(coder: aDecoder)
|
||||
setupView()
|
||||
}
|
||||
|
||||
private func setupView() {
|
||||
backgroundColor = VoipTheme.voipToolbarBackgroundColor.get()
|
||||
|
||||
addSubview(pictureButton)
|
||||
pictureButton.alignParentLeft(withMargin: side_buttons_margin).matchParentHeight().done()
|
||||
pictureButton.setImage(UIImage(named:"chat_attachment_default.png"), for: UIControl.State.normal)
|
||||
pictureButton.setImage(UIImage(named:"chat_attachment_over.png"), for: UIControl.State.highlighted)
|
||||
pictureButton.onClickAction = backAction
|
||||
|
||||
addSubview(voiceRecordButton)
|
||||
voiceRecordButton.toRightOf(pictureButton, withLeftMargin: 10).matchParentHeight().done()
|
||||
voiceRecordButton.size(w: 30, h: 30).done()
|
||||
voiceRecordButton.onClickAction = action2
|
||||
|
||||
addSubview(sendButton)
|
||||
sendButton.alignParentRight(withMargin: side_buttons_margin).matchParentHeight().done()
|
||||
sendButton.setImage(UIImage(named:"chat_send_default.png"), for: UIControl.State.normal)
|
||||
sendButton.setImage(UIImage(named:"chat_send_over.png"), for: UIControl.State.highlighted)
|
||||
sendButton.onClickAction = action1
|
||||
|
||||
addSubview(messageTextView)
|
||||
messageTextView.toRightOf(voiceRecordButton, withLeftMargin: 5).toLeftOf(sendButton).matchParentHeight().done()
|
||||
|
||||
messageTextView.addSubview(messageText)
|
||||
messageText.matchParentDimmensions(insetedByDx: 10).done()
|
||||
messageText.font = UIFont.systemFont(ofSize: 18)
|
||||
messageText.backgroundColor = UIColor.white
|
||||
}
|
||||
}
|
||||
|
|
@ -28,7 +28,6 @@ import linphonesw
|
|||
// layout constants
|
||||
let top_bar_height = 66.0
|
||||
let navigation_buttons_padding = 18.0
|
||||
let content_margin_top = 20
|
||||
let side_buttons_margin = 5
|
||||
|
||||
// User by subviews
|
||||
|
|
@ -42,6 +41,7 @@ import linphonesw
|
|||
let topBar = UIView()
|
||||
let scrollView = UIScrollView()
|
||||
let contentView = UIView()
|
||||
let messageView = MessageView()
|
||||
var backAction : (() -> Void)? = nil
|
||||
var action1 : (() -> Void)? = nil
|
||||
var action2 : (() -> Void)? = nil
|
||||
|
|
@ -71,6 +71,7 @@ import linphonesw
|
|||
|
||||
topBar.addSubview(action1Button)
|
||||
action1Button.toLeftOf(action2Button, withRightMargin: 20).matchParentHeight().done()
|
||||
action1Button.size(w: 35, h: 35)
|
||||
action1Button.onClickAction = action1
|
||||
|
||||
topBar.addSubview(titleLabel)
|
||||
|
|
@ -81,9 +82,12 @@ import linphonesw
|
|||
super.viewDidLoad()
|
||||
|
||||
view.addSubview(scrollView)
|
||||
scrollView.alignUnder(view: topBar, withMargin: content_margin_top).alignParentBottom().matchParentSideBorders().done()
|
||||
scrollView.alignUnder(view: topBar).alignParentBottom().matchParentSideBorders().done()
|
||||
scrollView.addSubview(contentView)
|
||||
contentView.matchBordersOf(view: view).alignParentBottom().alignParentTop().done() // don't forget a bottom constraint b/w last element of contentview and contentview
|
||||
|
||||
view.addSubview(messageView)
|
||||
messageView.alignParentBottom().height(top_bar_height).matchParentSideBorders().done()
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -943,6 +943,7 @@
|
|||
D3F83F8E15822ABE00336684 /* PhoneMainView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F83F8D15822ABD00336684 /* PhoneMainView.m */; };
|
||||
D7DA18712A02598700FABA0D /* TextViewer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7DA18702A02598700FABA0D /* TextViewer.swift */; };
|
||||
D7421D9E29228A5200290CAB /* DetailChatRoomFragment.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7421D9D29228A5200290CAB /* DetailChatRoomFragment.swift */; };
|
||||
D7013DB82940AA12004EEAAE /* MessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7013DB72940AA12004EEAAE /* MessageView.swift */; };
|
||||
D7421D9E29228A5200290CAB /* ChatConversationViewSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7421D9D29228A5200290CAB /* ChatConversationViewSwift.swift */; };
|
||||
D74A44912923BAF90017D063 /* BackActionsNavigationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D74A44902923BAF90017D063 /* BackActionsNavigationView.swift */; };
|
||||
D77057F1292E4A340031A970 /* ChatConversationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D77057F0292E4A340031A970 /* ChatConversationViewModel.swift */; };
|
||||
|
|
@ -2176,6 +2177,8 @@
|
|||
D3F83F8D15822ABD00336684 /* PhoneMainView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PhoneMainView.m; sourceTree = "<group>"; };
|
||||
D7DA18702A02598700FABA0D /* TextViewer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextViewer.swift; sourceTree = "<group>"; };
|
||||
D7421D9D29228A5200290CAB /* DetailChatRoomFragment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailChatRoomFragment.swift; sourceTree = "<group>"; };
|
||||
D7421D9D29228A5200290CAB /* DetailChatRoomFragment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailChatRoomFragment.swift; sourceTree = "<group>"; };
|
||||
D7013DB72940AA12004EEAAE /* MessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageView.swift; sourceTree = "<group>"; };
|
||||
D7421D9D29228A5200290CAB /* ChatConversationViewSwift.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatConversationViewSwift.swift; sourceTree = "<group>"; };
|
||||
D74A44902923BAF90017D063 /* BackActionsNavigationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackActionsNavigationView.swift; sourceTree = "<group>"; };
|
||||
D77057F0292E4A340031A970 /* ChatConversationViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatConversationViewModel.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -3832,6 +3835,7 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
D7421D9D29228A5200290CAB /* ChatConversationViewSwift.swift */,
|
||||
D7013DB72940AA12004EEAAE /* MessageView.swift */,
|
||||
);
|
||||
path = Views;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -4978,6 +4982,7 @@
|
|||
8CD99A3C2090B9FA008A7CDA /* ChatConversationImdnView.m in Sources */,
|
||||
1D3623260D0F684500981E51 /* LinphoneAppDelegate.m in Sources */,
|
||||
C63F7264285A24B10066163B /* BouncingCounter.swift in Sources */,
|
||||
D7013DB82940AA12004EEAAE /* MessageView.swift in Sources */,
|
||||
C6B4444826AADA530076C517 /* SwiftUtil.swift in Sources */,
|
||||
C63F7257285A24B10066163B /* ConferenceLayoutPickerView.swift in Sources */,
|
||||
CF15F21E20E4F9A3008B1DE6 /* UIImageViewDeletable.m in Sources */,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue