Use navigation bar for image editor buttons.

pull/2/head
Matthew Chen 6 years ago
parent a630974e76
commit e47ceab41c

@ -272,15 +272,24 @@ public class AttachmentApprovalViewController: UIPageViewController, UIPageViewC
// MARK: - Navigation Bar // MARK: - Navigation Bar
public func updateNavigationBar() { public func updateNavigationBar() {
var navigationBarItems = [UIBarButtonItem]() var navigationBarItems = [UIView]()
if let viewControllers = viewControllers, if let viewControllers = viewControllers,
viewControllers.count == 1, viewControllers.count == 1,
let firstViewController = viewControllers.first as? AttachmentPrepViewController { let firstViewController = viewControllers.first as? AttachmentPrepViewController {
navigationBarItems = firstViewController.navigationBarItems() navigationBarItems = firstViewController.navigationBarItems()
} }
guard navigationBarItems.count > 0 else {
self.navigationItem.rightBarButtonItems = []
return
}
self.navigationItem.rightBarButtonItems = navigationBarItems let stackView = UIStackView(arrangedSubviews: navigationBarItems)
stackView.axis = .horizontal
stackView.spacing = 8
stackView.alignment = .center
self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: stackView)
} }
// MARK: - View Helpers // MARK: - View Helpers
@ -753,8 +762,7 @@ public class AttachmentPrepViewController: OWSViewController, PlayerProgressBarD
mediaMessageView.autoPinEdgesToSuperviewEdges() mediaMessageView.autoPinEdgesToSuperviewEdges()
#if DEBUG #if DEBUG
if let imageEditorModel = attachmentItem.imageEditorModel, if let imageEditorModel = attachmentItem.imageEditorModel {
let imageMediaView = mediaMessageView.contentView {
let imageEditorView = ImageEditorView(model: imageEditorModel, delegate: self) let imageEditorView = ImageEditorView(model: imageEditorModel, delegate: self)
if imageEditorView.configureSubviews() { if imageEditorView.configureSubviews() {
@ -762,13 +770,8 @@ public class AttachmentPrepViewController: OWSViewController, PlayerProgressBarD
mediaMessageView.isHidden = true mediaMessageView.isHidden = true
// TODO: Is this necessary? view.addSubview(imageEditorView)
imageMediaView.isUserInteractionEnabled = true imageEditorView.autoPinEdgesToSuperviewEdges()
contentContainer.addSubview(imageEditorView)
imageEditorView.autoPin(toTopLayoutGuideOf: self, withInset: 0)
autoPinView(toBottomOfViewControllerOrKeyboard: imageEditorView, avoidNotch: true)
imageEditorView.autoPinWidthToSuperview()
imageEditorView.addControls(to: imageEditorView, imageEditorView.addControls(to: imageEditorView,
viewController: self) viewController: self)
@ -870,7 +873,7 @@ public class AttachmentPrepViewController: OWSViewController, PlayerProgressBarD
// MARK: - Navigation Bar // MARK: - Navigation Bar
public func navigationBarItems() -> [UIBarButtonItem] { public func navigationBarItems() -> [UIView] {
guard let imageEditorView = imageEditorView else { guard let imageEditorView = imageEditorView else {
return [] return []
} }

@ -241,30 +241,33 @@ public class ImageEditorView: UIView {
// MARK: - Navigation Bar // MARK: - Navigation Bar
private func navigationBarButton(imageName: String, private func navigationBarButton(imageName: String,
selector: Selector) -> UIBarButtonItem { selector: Selector) -> UIView {
let button = UIBarButtonItem(image: UIImage(named: imageName), style: .plain, target: self, action: selector) let button = OWSButton()
button.setImage(imageName: imageName)
button.tintColor = .white button.tintColor = .white
button.addTarget(self, action: selector, for: .touchUpInside)
// button.layer.shadowColor = UIColor.black.cgColor
// button.layer.shadowRadius = 4
// button.layer.shadowOpacity = 0.66
return button return button
} }
public func navigationBarItems() -> [UIBarButtonItem] { public func navigationBarItems() -> [UIView] {
let undoButton = navigationBarButton(imageName: "image_editor_undo", let undoButton = navigationBarButton(imageName: "image_editor_undo",
selector: #selector(didTapUndo(sender:))) selector: #selector(didTapUndo(sender:)))
let brushButton = navigationBarButton(imageName: "image_editor_brush", let brushButton = navigationBarButton(imageName: "image_editor_brush",
selector: #selector(didTapBrush(sender:))) selector: #selector(didTapBrush(sender:)))
let cropButton = navigationBarButton(imageName: "image_editor_crop", let cropButton = navigationBarButton(imageName: "image_editor_crop",
selector: #selector(didTapCrop(sender:))) selector: #selector(didTapCrop(sender:)))
let newTextButton = navigationBarButton(imageName: "image_editor_checkmark_full", let newTextButton = navigationBarButton(imageName: "image_editor_text",
selector: #selector(didTapNewText(sender:))) selector: #selector(didTapNewText(sender:)))
// let doneButton = navigationBarButton(imageName:"image_editor_brush",
// selector: #selector(didTapDone(sender:)))
let captionButton = navigationBarButton(imageName: "image_editor_caption", let captionButton = navigationBarButton(imageName: "image_editor_caption",
selector: #selector(didTapCaption(sender:))) selector: #selector(didTapCaption(sender:)))
if model.canUndo() { if model.canUndo() {
return [undoButton, newTextButton, brushButton, cropButton, captionButton].reversed() return [undoButton, newTextButton, brushButton, cropButton, captionButton]
} else { } else {
return [newTextButton, brushButton, cropButton, captionButton].reversed() return [newTextButton, brushButton, cropButton, captionButton]
} }
} }

Loading…
Cancel
Save