From 794241963ef0b1a07b87c4eb303c3b957190743c Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Mon, 17 Dec 2018 14:34:58 -0500 Subject: [PATCH] Clean up ahead of PR. --- Signal.xcodeproj/project.pbxproj | 8 ++++---- .../AttachmentApprovalViewController.swift | 1 + .../Views/ImageEditor/ImageEditorGestureRecognizer.swift | 5 +++++ .../{ImageEditor.swift => ImageEditorModel.swift} | 3 +++ SignalMessaging/Views/ImageEditor/ImageEditorView.swift | 2 ++ 5 files changed, 15 insertions(+), 4 deletions(-) rename SignalMessaging/Views/ImageEditor/{ImageEditor.swift => ImageEditorModel.swift} (99%) diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index 555f3b496..9246570e0 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -235,7 +235,7 @@ 34BECE2B1F74C12700D7438D /* DebugUIStress.m in Sources */ = {isa = PBXBuildFile; fileRef = 34BECE2A1F74C12700D7438D /* DebugUIStress.m */; }; 34BECE2E1F7ABCE000D7438D /* GifPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BECE2D1F7ABCE000D7438D /* GifPickerViewController.swift */; }; 34BECE301F7ABCF800D7438D /* GifPickerLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BECE2F1F7ABCF800D7438D /* GifPickerLayout.swift */; }; - 34BEDB0E21C405B0007B0EAE /* ImageEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BEDB0D21C405B0007B0EAE /* ImageEditor.swift */; }; + 34BEDB0E21C405B0007B0EAE /* ImageEditorModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BEDB0D21C405B0007B0EAE /* ImageEditorModel.swift */; }; 34BEDB1121C41E71007B0EAE /* ImageEditorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BEDB1021C41E71007B0EAE /* ImageEditorTest.swift */; }; 34BEDB1321C43F6A007B0EAE /* ImageEditorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BEDB1221C43F69007B0EAE /* ImageEditorView.swift */; }; 34BEDB1621C80BCA007B0EAE /* OWSAnyTouchGestureRecognizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 34BEDB1421C80BC9007B0EAE /* OWSAnyTouchGestureRecognizer.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -911,7 +911,7 @@ 34BECE2A1F74C12700D7438D /* DebugUIStress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DebugUIStress.m; sourceTree = ""; }; 34BECE2D1F7ABCE000D7438D /* GifPickerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GifPickerViewController.swift; sourceTree = ""; }; 34BECE2F1F7ABCF800D7438D /* GifPickerLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GifPickerLayout.swift; sourceTree = ""; }; - 34BEDB0D21C405B0007B0EAE /* ImageEditor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditor.swift; sourceTree = ""; }; + 34BEDB0D21C405B0007B0EAE /* ImageEditorModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditorModel.swift; sourceTree = ""; }; 34BEDB1021C41E71007B0EAE /* ImageEditorTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditorTest.swift; sourceTree = ""; }; 34BEDB1221C43F69007B0EAE /* ImageEditorView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditorView.swift; sourceTree = ""; }; 34BEDB1421C80BC9007B0EAE /* OWSAnyTouchGestureRecognizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSAnyTouchGestureRecognizer.h; sourceTree = ""; }; @@ -1873,8 +1873,8 @@ 34BEDB0C21C405B0007B0EAE /* ImageEditor */ = { isa = PBXGroup; children = ( - 34BEDB0D21C405B0007B0EAE /* ImageEditor.swift */, 34BEDB1821C82AC5007B0EAE /* ImageEditorGestureRecognizer.swift */, + 34BEDB0D21C405B0007B0EAE /* ImageEditorModel.swift */, 34BEDB1221C43F69007B0EAE /* ImageEditorView.swift */, ); path = ImageEditor; @@ -3356,7 +3356,7 @@ 34AC09E9211B39B100997B47 /* OWSTableViewController.m in Sources */, 346129F51FD5F31400532771 /* OWS102MoveLoggingPreferenceToUserDefaults.m in Sources */, 45194F8F1FD71FF500333B2C /* ThreadUtil.m in Sources */, - 34BEDB0E21C405B0007B0EAE /* ImageEditor.swift in Sources */, + 34BEDB0E21C405B0007B0EAE /* ImageEditorModel.swift in Sources */, 451F8A3B1FD71297005CB9DA /* UIUtil.m in Sources */, 450C800F20AD1AB900F3A091 /* OWSWindowManager.m in Sources */, 454A965A1FD6017E008D2A0E /* SignalAttachment.swift in Sources */, diff --git a/SignalMessaging/ViewControllers/AttachmentApprovalViewController.swift b/SignalMessaging/ViewControllers/AttachmentApprovalViewController.swift index ac78a48e5..0b0d6c762 100644 --- a/SignalMessaging/ViewControllers/AttachmentApprovalViewController.swift +++ b/SignalMessaging/ViewControllers/AttachmentApprovalViewController.swift @@ -60,6 +60,7 @@ class SignalAttachmentItem: Hashable { let attachment: SignalAttachment + // This might be nil if the attachment is not a valid image. var imageEditorModel: ImageEditorModel? init(attachment: SignalAttachment) { diff --git a/SignalMessaging/Views/ImageEditor/ImageEditorGestureRecognizer.swift b/SignalMessaging/Views/ImageEditor/ImageEditorGestureRecognizer.swift index eefc4717c..a4e92d3a5 100644 --- a/SignalMessaging/Views/ImageEditor/ImageEditorGestureRecognizer.swift +++ b/SignalMessaging/Views/ImageEditor/ImageEditorGestureRecognizer.swift @@ -34,6 +34,7 @@ class ImageEditorGestureRecognizer: UIGestureRecognizer { if state == .possible, touchType(for: touches, with: event) == .valid { + // If a gesture starts with a valid touch, begin stroke. state = .began } else { state = .failed @@ -48,10 +49,13 @@ class ImageEditorGestureRecognizer: UIGestureRecognizer { case .began, .changed: switch touchType(for: touches, with: event) { case .valid: + // If a gesture continues with a valid touch, continue stroke. state = .changed case .invalid: state = .failed case .outside: + // If a gesture continues with a valid touch _outside the canvas_, + // end stroke. state = .ended } default: @@ -67,6 +71,7 @@ class ImageEditorGestureRecognizer: UIGestureRecognizer { case .began, .changed: switch touchType(for: touches, with: event) { case .valid, .outside: + // If a gesture ends with a valid touch, end stroke. state = .ended case .invalid: state = .failed diff --git a/SignalMessaging/Views/ImageEditor/ImageEditor.swift b/SignalMessaging/Views/ImageEditor/ImageEditorModel.swift similarity index 99% rename from SignalMessaging/Views/ImageEditor/ImageEditor.swift rename to SignalMessaging/Views/ImageEditor/ImageEditorModel.swift index 9e7af2ec2..83508967b 100644 --- a/SignalMessaging/Views/ImageEditor/ImageEditor.swift +++ b/SignalMessaging/Views/ImageEditor/ImageEditorModel.swift @@ -114,6 +114,9 @@ public class ImageEditorStrokeItem: ImageEditorItem { // MARK: - +// ImageEditorContents represents a snapshot of canvas +// state. +// // Instances of ImageEditorContents should be treated // as immutable, once configured. public class ImageEditorContents: NSObject { diff --git a/SignalMessaging/Views/ImageEditor/ImageEditorView.swift b/SignalMessaging/Views/ImageEditor/ImageEditorView.swift index f7461a2e1..5fa368833 100644 --- a/SignalMessaging/Views/ImageEditor/ImageEditorView.swift +++ b/SignalMessaging/Views/ImageEditor/ImageEditorView.swift @@ -4,6 +4,8 @@ import UIKit +// A view for editing outgoing image attachments. +// It can also be used to render the final output. @objc public class ImageEditorView: UIView, ImageEditorModelDelegate { private let model: ImageEditorModel