From 9e636b0fc91797edd42390d5d1a91755f8bfcdd9 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 12 Mar 2019 11:46:12 -0400 Subject: [PATCH] Hide controls during stroke. --- .../ImageEditorBrushViewController.swift | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/SignalMessaging/Views/ImageEditor/ImageEditorBrushViewController.swift b/SignalMessaging/Views/ImageEditor/ImageEditorBrushViewController.swift index 63a7590a7..af56c8db1 100644 --- a/SignalMessaging/Views/ImageEditor/ImageEditorBrushViewController.swift +++ b/SignalMessaging/Views/ImageEditor/ImageEditorBrushViewController.swift @@ -84,11 +84,18 @@ public class ImageEditorBrushViewController: OWSViewController { self.view.layoutSubviews() } - public func updateNavigationBar() { + private func updateNavigationBar() { + // Hide controls during stroke. + let hasStroke = currentStroke != nil + guard !hasStroke else { + updateNavigationBar(navigationBarItems: []) + return + } + let undoButton = navigationBarButton(imageName: "image_editor_undo", selector: #selector(didTapUndo(sender:))) let doneButton = navigationBarButton(imageName: "image_editor_checkmark_full", - selector: #selector(didTapDone(sender:))) + selector: #selector(didTapDone(sender:))) // Prevent users from undo any changes made before entering the view. let canUndo = model.canUndo() && firstUndoOperationId != model.currentUndoOperationId() @@ -101,6 +108,12 @@ public class ImageEditorBrushViewController: OWSViewController { updateNavigationBar(navigationBarItems: navigationBarItems) } + private func updateControls() { + // Hide controls during stroke. + let hasStroke = currentStroke != nil + paletteView.isHidden = hasStroke + } + // MARK: - Actions @objc func didTapUndo(sender: UIButton) { @@ -129,7 +142,12 @@ public class ImageEditorBrushViewController: OWSViewController { // MARK: - Brush // These properties are non-empty while drawing a stroke. - private var currentStroke: ImageEditorStrokeItem? + private var currentStroke: ImageEditorStrokeItem? { + didSet { + updateControls() + updateNavigationBar() + } + } private var currentStrokeSamples = [ImageEditorStrokeItem.StrokeSample]() @objc