@ -100,7 +100,7 @@ public enum AttachmentApprovalViewControllerMode: UInt {
}
@objc
public class AttachmentApprovalViewController : UIPageViewController , UIPageViewControllerDataSource , UIPageViewControllerDelegate , Captioning ToolbarDelegate {
public class AttachmentApprovalViewController : UIPageViewController , UIPageViewControllerDataSource , UIPageViewControllerDelegate , MediaMessageText ToolbarDelegate {
// MARK: - P r o p e r t i e s
@ -152,8 +152,8 @@ public class AttachmentApprovalViewController: UIPageViewController, UIPageViewC
return bottomToolView . galleryRailView
}
var captioningToolbar: Captioning Toolbar {
return bottomToolView . captioning Toolbar
var mediaMessageTextToolbar: MediaMessageText Toolbar {
return bottomToolView . mediaMessageText Toolbar
}
lazy var bottomToolView : BottomToolView = {
@ -174,7 +174,7 @@ public class AttachmentApprovalViewController: UIPageViewController, UIPageViewC
// B o t t o m T o o l b a r
galleryRailView . delegate = self
captioningToolbar. captioning ToolbarDelegate = self
mediaMessageTextToolbar. mediaMessageText ToolbarDelegate = self
// N a v i g a t i o n
@ -194,7 +194,7 @@ public class AttachmentApprovalViewController: UIPageViewController, UIPageViewC
self . setCurrentItem ( firstItem , direction : . forward , animated : false )
captioningToolbar. caption Text = currentViewController . attachment . captionText
mediaMessageTextToolbar. message Text = currentViewController . attachment . captionText
}
override public func viewWillAppear ( _ animated : Bool ) {
@ -335,11 +335,11 @@ public class AttachmentApprovalViewController: UIPageViewController, UIPageViewC
}
if transitionCompleted {
UIView . transition ( with : self . captioning Toolbar,
UIView . transition ( with : self . mediaMessageText Toolbar,
duration : 0.1 ,
options : . transitionCrossDissolve ,
animations : {
self . captioningToolbar. caption Text = self . currentViewController . attachment . captionText
self . mediaMessageTextToolbar. message Text = self . currentViewController . attachment . captionText
} ,
completion : nil )
previousPage . zoomOut ( animated : false )
@ -484,38 +484,38 @@ public class AttachmentApprovalViewController: UIPageViewController, UIPageViewC
self . approvalDelegate ? . attachmentApproval ( self , didCancelAttachments : attachments )
}
// MARK: - Ca p t i o n i n g T o o l b a r D e l e g a t e
// MARK: - Me d i a M e s s a g e T e x t T o o l b a r D e l e g a t e
var currentPageController : AttachmentPrepViewController {
return viewControllers ! . first as ! AttachmentPrepViewController
}
func captioningToolbarDidBeginEditing( _ captioningToolbar : Captioning Toolbar) {
func mediaMessageTextToolbarDidBeginEditing( _ mediaMessageTextToolbar : MediaMessageText Toolbar) {
currentPageController . setAttachmentViewScale ( . compact , animated : true )
}
func captioningToolbarDidEndEditing( _ captioningToolbar : Captioning Toolbar) {
func mediaMessageTextToolbarDidEndEditing( _ mediaMessageTextToolbar : MediaMessageText Toolbar) {
currentPageController . setAttachmentViewScale ( . fullsize , animated : true )
}
func captioningToolbarDidTapSend( _ captioningToolbar : Captioning Toolbar) {
func mediaMessageTextToolbarDidTapSend( _ mediaMessageTextToolbar : MediaMessageText Toolbar) {
// T o o l b a r f l i c k e r s i n a n d o u t i f t h e r e a r e e r r o r s
// a n d r e m a i n s v i s i b l e m o m e n t a r i l y a f t e r s h a r e e x t e n s i o n i s d i s m i s s e d .
// I t ' s e a s i e s t t o j u s t h i d e i t a t t h i s p o i n t s i n c e w e ' r e d o n e w i t h i t .
currentViewController . shouldAllowAttachmentViewResizing = false
captioning Toolbar. isUserInteractionEnabled = false
captioning Toolbar. isHidden = true
mediaMessageText Toolbar. isUserInteractionEnabled = false
mediaMessageText Toolbar. isHidden = true
approvalDelegate ? . attachmentApproval ( self , didApproveAttachments : attachments )
}
func captioningToolbar( _ captioningToolbar : Captioning Toolbar, textViewDidChange textView : UITextView ) {
func mediaMessageTextToolbar( _ mediaMessageTextToolbar : MediaMessageText Toolbar, textViewDidChange textView : UITextView ) {
currentItem . attachment . captionText = textView . text
self . approvalDelegate ? . attachmentApproval ? ( self , changedCaptionOfAttachment : currentItem . attachment )
}
func captioningToolbarDidAddMore( _ captioningToolbar : Captioning Toolbar) {
func mediaMessageTextToolbarDidAddMore( _ mediaMessageTextToolbar : MediaMessageText Toolbar) {
self . approvalDelegate ? . attachmentApproval ? ( self , addMoreToAttachments : attachments )
}
}
@ -932,13 +932,13 @@ extension AttachmentPrepViewController: UIScrollViewDelegate {
}
class BottomToolView : UIView {
let captioningToolbar: Captioning Toolbar
let mediaMessageTextToolbar: MediaMessageText Toolbar
let galleryRailView : GalleryRailView
let kGalleryRailViewHeight : CGFloat = 72
required init ( isAddMoreVisible : Bool ) {
captioningToolbar = Captioning Toolbar( isAddMoreVisible : isAddMoreVisible )
mediaMessageTextToolbar = MediaMessageText Toolbar( isAddMoreVisible : isAddMoreVisible )
galleryRailView = GalleryRailView ( )
galleryRailView . scrollFocusMode = . keepWithinBounds
@ -954,7 +954,7 @@ class BottomToolView: UIView {
backgroundColor = UIColor . black . withAlphaComponent ( 0.6 )
preservesSuperviewLayoutMargins = true
let stackView = UIStackView ( arrangedSubviews : [ self . galleryRailView , self . captioning Toolbar] )
let stackView = UIStackView ( arrangedSubviews : [ self . galleryRailView , self . mediaMessageText Toolbar] )
stackView . axis = . vertical
addSubview ( stackView )
@ -979,22 +979,22 @@ class BottomToolView: UIView {
}
}
protocol Captioning ToolbarDelegate: class {
func captioningToolbarDidTapSend( _ captioningToolbar : Captioning Toolbar)
func captioningToolbarDidBeginEditing( _ captioningToolbar : Captioning Toolbar)
func captioningToolbarDidEndEditing( _ captioningToolbar : Captioning Toolbar)
func captioningToolbar( _ captioningToolbar : Captioning Toolbar, textViewDidChange : UITextView )
func captioningToolbarDidAddMore( _ captioningToolbar : Captioning Toolbar)
protocol MediaMessageText ToolbarDelegate: class {
func mediaMessageTextToolbarDidTapSend( _ mediaMessageTextToolbar : MediaMessageText Toolbar)
func mediaMessageTextToolbarDidBeginEditing( _ mediaMessageTextToolbar : MediaMessageText Toolbar)
func mediaMessageTextToolbarDidEndEditing( _ mediaMessageTextToolbar : MediaMessageText Toolbar)
func mediaMessageTextToolbar( _ mediaMessageTextToolbar : MediaMessageText Toolbar, textViewDidChange : UITextView )
func mediaMessageTextToolbarDidAddMore( _ mediaMessageTextToolbar : MediaMessageText Toolbar)
}
class Captioning Toolbar: UIView , UITextViewDelegate {
class MediaMessageText Toolbar: UIView , UITextViewDelegate {
weak var captioningToolbarDelegate: Captioning ToolbarDelegate?
weak var mediaMessageTextToolbarDelegate: MediaMessageText ToolbarDelegate?
private let addMoreButton : UIButton
private let sendButton : UIButton
private let textView : UITextView
var caption Text: String ? {
var message Text: String ? {
get { return self . textView . text }
set { self . textView . text = newValue }
}
@ -1145,18 +1145,18 @@ class CaptioningToolbar: UIView, UITextViewDelegate {
// MARK: -
@objc func didTapSend ( ) {
self . captioningToolbarDelegate? . captioning ToolbarDidTapSend( self )
self . mediaMessageTextToolbarDelegate? . mediaMessageText ToolbarDidTapSend( self )
}
@objc func didTapAddMore ( ) {
self . captioningToolbarDelegate? . captioning ToolbarDidAddMore( self )
self . mediaMessageTextToolbarDelegate? . mediaMessageText ToolbarDidAddMore( self )
}
// MARK: - U I T e x t V i e w D e l e g a t e
public func textViewDidChange ( _ textView : UITextView ) {
updateHeight ( textView : textView )
self . captioningToolbarDelegate? . captioning Toolbar( self , textViewDidChange : textView )
self . mediaMessageTextToolbarDelegate? . mediaMessageText Toolbar( self , textViewDidChange : textView )
}
public func textView ( _ textView : UITextView , shouldChangeTextIn range : NSRange , replacementText text : String ) -> Bool {
@ -1195,11 +1195,11 @@ class CaptioningToolbar: UIView, UITextViewDelegate {
}
public func textViewDidBeginEditing ( _ textView : UITextView ) {
self . captioningToolbarDelegate? . captioning ToolbarDidBeginEditing( self )
self . mediaMessageTextToolbarDelegate? . mediaMessageText ToolbarDidBeginEditing( self )
}
public func textViewDidEndEditing ( _ textView : UITextView ) {
self . captioningToolbarDelegate? . captioning ToolbarDidEndEditing( self )
self . mediaMessageTextToolbarDelegate? . mediaMessageText ToolbarDidEndEditing( self )
}
// MARK: - H e l p e r s