Clean up ahead of PR.

This commit is contained in:
Matthew Chen 2018-12-17 14:34:58 -05:00
parent e3d4523bc6
commit 794241963e
5 changed files with 15 additions and 4 deletions

View file

@ -235,7 +235,7 @@
34BECE2B1F74C12700D7438D /* DebugUIStress.m in Sources */ = {isa = PBXBuildFile; fileRef = 34BECE2A1F74C12700D7438D /* DebugUIStress.m */; }; 34BECE2B1F74C12700D7438D /* DebugUIStress.m in Sources */ = {isa = PBXBuildFile; fileRef = 34BECE2A1F74C12700D7438D /* DebugUIStress.m */; };
34BECE2E1F7ABCE000D7438D /* GifPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BECE2D1F7ABCE000D7438D /* GifPickerViewController.swift */; }; 34BECE2E1F7ABCE000D7438D /* GifPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BECE2D1F7ABCE000D7438D /* GifPickerViewController.swift */; };
34BECE301F7ABCF800D7438D /* GifPickerLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BECE2F1F7ABCF800D7438D /* GifPickerLayout.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 */; }; 34BEDB1121C41E71007B0EAE /* ImageEditorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BEDB1021C41E71007B0EAE /* ImageEditorTest.swift */; };
34BEDB1321C43F6A007B0EAE /* ImageEditorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BEDB1221C43F69007B0EAE /* ImageEditorView.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, ); }; }; 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 = "<group>"; }; 34BECE2A1F74C12700D7438D /* DebugUIStress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DebugUIStress.m; sourceTree = "<group>"; };
34BECE2D1F7ABCE000D7438D /* GifPickerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GifPickerViewController.swift; sourceTree = "<group>"; }; 34BECE2D1F7ABCE000D7438D /* GifPickerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GifPickerViewController.swift; sourceTree = "<group>"; };
34BECE2F1F7ABCF800D7438D /* GifPickerLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GifPickerLayout.swift; sourceTree = "<group>"; }; 34BECE2F1F7ABCF800D7438D /* GifPickerLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GifPickerLayout.swift; sourceTree = "<group>"; };
34BEDB0D21C405B0007B0EAE /* ImageEditor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditor.swift; sourceTree = "<group>"; }; 34BEDB0D21C405B0007B0EAE /* ImageEditorModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditorModel.swift; sourceTree = "<group>"; };
34BEDB1021C41E71007B0EAE /* ImageEditorTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditorTest.swift; sourceTree = "<group>"; }; 34BEDB1021C41E71007B0EAE /* ImageEditorTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditorTest.swift; sourceTree = "<group>"; };
34BEDB1221C43F69007B0EAE /* ImageEditorView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditorView.swift; sourceTree = "<group>"; }; 34BEDB1221C43F69007B0EAE /* ImageEditorView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditorView.swift; sourceTree = "<group>"; };
34BEDB1421C80BC9007B0EAE /* OWSAnyTouchGestureRecognizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSAnyTouchGestureRecognizer.h; sourceTree = "<group>"; }; 34BEDB1421C80BC9007B0EAE /* OWSAnyTouchGestureRecognizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSAnyTouchGestureRecognizer.h; sourceTree = "<group>"; };
@ -1873,8 +1873,8 @@
34BEDB0C21C405B0007B0EAE /* ImageEditor */ = { 34BEDB0C21C405B0007B0EAE /* ImageEditor */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
34BEDB0D21C405B0007B0EAE /* ImageEditor.swift */,
34BEDB1821C82AC5007B0EAE /* ImageEditorGestureRecognizer.swift */, 34BEDB1821C82AC5007B0EAE /* ImageEditorGestureRecognizer.swift */,
34BEDB0D21C405B0007B0EAE /* ImageEditorModel.swift */,
34BEDB1221C43F69007B0EAE /* ImageEditorView.swift */, 34BEDB1221C43F69007B0EAE /* ImageEditorView.swift */,
); );
path = ImageEditor; path = ImageEditor;
@ -3356,7 +3356,7 @@
34AC09E9211B39B100997B47 /* OWSTableViewController.m in Sources */, 34AC09E9211B39B100997B47 /* OWSTableViewController.m in Sources */,
346129F51FD5F31400532771 /* OWS102MoveLoggingPreferenceToUserDefaults.m in Sources */, 346129F51FD5F31400532771 /* OWS102MoveLoggingPreferenceToUserDefaults.m in Sources */,
45194F8F1FD71FF500333B2C /* ThreadUtil.m in Sources */, 45194F8F1FD71FF500333B2C /* ThreadUtil.m in Sources */,
34BEDB0E21C405B0007B0EAE /* ImageEditor.swift in Sources */, 34BEDB0E21C405B0007B0EAE /* ImageEditorModel.swift in Sources */,
451F8A3B1FD71297005CB9DA /* UIUtil.m in Sources */, 451F8A3B1FD71297005CB9DA /* UIUtil.m in Sources */,
450C800F20AD1AB900F3A091 /* OWSWindowManager.m in Sources */, 450C800F20AD1AB900F3A091 /* OWSWindowManager.m in Sources */,
454A965A1FD6017E008D2A0E /* SignalAttachment.swift in Sources */, 454A965A1FD6017E008D2A0E /* SignalAttachment.swift in Sources */,

View file

@ -60,6 +60,7 @@ class SignalAttachmentItem: Hashable {
let attachment: SignalAttachment let attachment: SignalAttachment
// This might be nil if the attachment is not a valid image.
var imageEditorModel: ImageEditorModel? var imageEditorModel: ImageEditorModel?
init(attachment: SignalAttachment) { init(attachment: SignalAttachment) {

View file

@ -34,6 +34,7 @@ class ImageEditorGestureRecognizer: UIGestureRecognizer {
if state == .possible, if state == .possible,
touchType(for: touches, with: event) == .valid { touchType(for: touches, with: event) == .valid {
// If a gesture starts with a valid touch, begin stroke.
state = .began state = .began
} else { } else {
state = .failed state = .failed
@ -48,10 +49,13 @@ class ImageEditorGestureRecognizer: UIGestureRecognizer {
case .began, .changed: case .began, .changed:
switch touchType(for: touches, with: event) { switch touchType(for: touches, with: event) {
case .valid: case .valid:
// If a gesture continues with a valid touch, continue stroke.
state = .changed state = .changed
case .invalid: case .invalid:
state = .failed state = .failed
case .outside: case .outside:
// If a gesture continues with a valid touch _outside the canvas_,
// end stroke.
state = .ended state = .ended
} }
default: default:
@ -67,6 +71,7 @@ class ImageEditorGestureRecognizer: UIGestureRecognizer {
case .began, .changed: case .began, .changed:
switch touchType(for: touches, with: event) { switch touchType(for: touches, with: event) {
case .valid, .outside: case .valid, .outside:
// If a gesture ends with a valid touch, end stroke.
state = .ended state = .ended
case .invalid: case .invalid:
state = .failed state = .failed

View file

@ -114,6 +114,9 @@ public class ImageEditorStrokeItem: ImageEditorItem {
// MARK: - // MARK: -
// ImageEditorContents represents a snapshot of canvas
// state.
//
// Instances of ImageEditorContents should be treated // Instances of ImageEditorContents should be treated
// as immutable, once configured. // as immutable, once configured.
public class ImageEditorContents: NSObject { public class ImageEditorContents: NSObject {

View file

@ -4,6 +4,8 @@
import UIKit import UIKit
// A view for editing outgoing image attachments.
// It can also be used to render the final output.
@objc @objc
public class ImageEditorView: UIView, ImageEditorModelDelegate { public class ImageEditorView: UIView, ImageEditorModelDelegate {
private let model: ImageEditorModel private let model: ImageEditorModel