fix code review note

This commit is contained in:
Ivan Smolin 2016-12-22 12:09:56 +03:00
parent dc384ef57b
commit 39d339a278
5 changed files with 49 additions and 62 deletions

View File

@ -19,6 +19,7 @@
7827C9391DE4ADB2009DA4E6 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7827C9331DE4ADB2009DA4E6 /* RxSwift.framework */; };
7834236A1DB8D0E100A79643 /* StoryboardProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 783423691DB8D0E100A79643 /* StoryboardProtocol.swift */; };
7837F60F1CBCF5C0000D74C1 /* EstimatedViewHeightProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7837F60E1CBCF5C0000D74C1 /* EstimatedViewHeightProtocol.swift */; };
7845A15A1E0BCD9A00B527BB /* KeyboardNotificationValues.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7845A1591E0BCD9A00B527BB /* KeyboardNotificationValues.swift */; };
786D78E81D53C378006B2CEA /* AlamofireRequest+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 786D78E71D53C378006B2CEA /* AlamofireRequest+Extensions.swift */; };
786D78EC1D53C46E006B2CEA /* AlamofireManager+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 786D78EB1D53C46E006B2CEA /* AlamofireManager+Extensions.swift */; };
78753E241DE58A5D006BC0FB /* CursorError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78753E231DE58A5D006BC0FB /* CursorError.swift */; };
@ -36,7 +37,6 @@
789F5A121DFECD11004A3694 /* KeyboardDidNotificationValues.swift in Sources */ = {isa = PBXBuildFile; fileRef = 789F5A111DFECD11004A3694 /* KeyboardDidNotificationValues.swift */; };
789F5A141DFECD54004A3694 /* KeyboardNotificationValuesError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 789F5A131DFECD54004A3694 /* KeyboardNotificationValuesError.swift */; };
789F5A161DFECD82004A3694 /* KeyboardWillNotificationValues.swift in Sources */ = {isa = PBXBuildFile; fileRef = 789F5A151DFECD82004A3694 /* KeyboardWillNotificationValues.swift */; };
789F5A1B1DFECF2B004A3694 /* Notification+UIKeyboardInfoValues.swift in Sources */ = {isa = PBXBuildFile; fileRef = 789F5A1A1DFECF2B004A3694 /* Notification+UIKeyboardInfoValues.swift */; };
789F5A1E1DFECF5F004A3694 /* NotificationCenter+RxKeyboardExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 789F5A1D1DFECF5F004A3694 /* NotificationCenter+RxKeyboardExtensions.swift */; };
789F5A201DFECF9F004A3694 /* KeyboardNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 789F5A1F1DFECF9F004A3694 /* KeyboardNotification.swift */; };
78A0FCC71DC366A10070B5E1 /* StoryboardProtocol+DefaultBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78A0FCC51DC366A10070B5E1 /* StoryboardProtocol+DefaultBundle.swift */; };
@ -95,6 +95,7 @@
7827C9331DE4ADB2009DA4E6 /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = ../../../Carthage/Build/iOS/RxSwift.framework; sourceTree = "<group>"; };
783423691DB8D0E100A79643 /* StoryboardProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoryboardProtocol.swift; sourceTree = "<group>"; };
7837F60E1CBCF5C0000D74C1 /* EstimatedViewHeightProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EstimatedViewHeightProtocol.swift; sourceTree = "<group>"; };
7845A1591E0BCD9A00B527BB /* KeyboardNotificationValues.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardNotificationValues.swift; sourceTree = "<group>"; };
786D78E71D53C378006B2CEA /* AlamofireRequest+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AlamofireRequest+Extensions.swift"; sourceTree = "<group>"; };
786D78EB1D53C46E006B2CEA /* AlamofireManager+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AlamofireManager+Extensions.swift"; sourceTree = "<group>"; };
78753E231DE58A5D006BC0FB /* CursorError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CursorError.swift; sourceTree = "<group>"; };
@ -112,7 +113,6 @@
789F5A111DFECD11004A3694 /* KeyboardDidNotificationValues.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardDidNotificationValues.swift; sourceTree = "<group>"; };
789F5A131DFECD54004A3694 /* KeyboardNotificationValuesError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardNotificationValuesError.swift; sourceTree = "<group>"; };
789F5A151DFECD82004A3694 /* KeyboardWillNotificationValues.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardWillNotificationValues.swift; sourceTree = "<group>"; };
789F5A1A1DFECF2B004A3694 /* Notification+UIKeyboardInfoValues.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Notification+UIKeyboardInfoValues.swift"; sourceTree = "<group>"; };
789F5A1D1DFECF5F004A3694 /* NotificationCenter+RxKeyboardExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NotificationCenter+RxKeyboardExtensions.swift"; sourceTree = "<group>"; };
789F5A1F1DFECF9F004A3694 /* KeyboardNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardNotification.swift; sourceTree = "<group>"; };
78A0FCC51DC366A10070B5E1 /* StoryboardProtocol+DefaultBundle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "StoryboardProtocol+DefaultBundle.swift"; sourceTree = "<group>"; };
@ -302,18 +302,11 @@
children = (
789F5A111DFECD11004A3694 /* KeyboardDidNotificationValues.swift */,
789F5A151DFECD82004A3694 /* KeyboardWillNotificationValues.swift */,
7845A1591E0BCD9A00B527BB /* KeyboardNotificationValues.swift */,
);
path = KeyboardNotificationValues;
sourceTree = "<group>";
};
789F5A191DFECF2B004A3694 /* Notification */ = {
isa = PBXGroup;
children = (
789F5A1A1DFECF2B004A3694 /* Notification+UIKeyboardInfoValues.swift */,
);
path = Notification;
sourceTree = "<group>";
};
789F5A1C1DFECF44004A3694 /* NotificationCenter */ = {
isa = PBXGroup;
children = (
@ -429,7 +422,6 @@
7884DB9A1DC1432B00E52A63 /* UserDefaults */,
789CC6091DE584C000F789D3 /* CursorType */,
789F5A0A1DFECB52004A3694 /* UIViewAnimationCurve */,
789F5A191DFECF2B004A3694 /* Notification */,
789F5A1C1DFECF44004A3694 /* NotificationCenter */,
);
path = Extensions;
@ -695,6 +687,7 @@
78011A641D47ABC500EA16A2 /* UIView+DefaultReuseIdentifier.swift in Sources */,
786D78EC1D53C46E006B2CEA /* AlamofireManager+Extensions.swift in Sources */,
78B0FC811C6B2CD500358B64 /* App.swift in Sources */,
7845A15A1E0BCD9A00B527BB /* KeyboardNotificationValues.swift in Sources */,
78B036491DA562C30021D5CC /* CGImage+Template.swift in Sources */,
789F5A1E1DFECF5F004A3694 /* NotificationCenter+RxKeyboardExtensions.swift in Sources */,
78753E301DE594B4006BC0FB /* MapCursor.swift in Sources */,
@ -710,7 +703,6 @@
786D78E81D53C378006B2CEA /* AlamofireRequest+Extensions.swift in Sources */,
78C36F811D8021DD00E7EBEA /* UIColor+Hex.swift in Sources */,
78CFEE5B1C5C45E500F50370 /* ViewModelProtocol.swift in Sources */,
789F5A1B1DFECF2B004A3694 /* Notification+UIKeyboardInfoValues.swift in Sources */,
789F5A121DFECD11004A3694 /* KeyboardDidNotificationValues.swift in Sources */,
EF5FB5691E0141610030E4BE /* UIView+Rotation.swift in Sources */,
780D23431DA412470084620D /* CGImage+Alpha.swift in Sources */,

View File

@ -1,42 +0,0 @@
//
// Notification+UIKeyboardInfoValues.swift
// LeadKit
//
// Created by Ivan Smolin on 12/12/16.
// Copyright © 2016 Touch Instinct. All rights reserved.
//
import Foundation
public extension Notification {
/// CGRect value for UIKeyboardFrameBeginUserInfoKey or nil
var keyboardFrameBegin: CGRect? {
return (userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue
}
/// CGRect value for UIKeyboardFrameEndUserInfoKey or nil
var keyboardFrameEnd: CGRect? {
return (userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue
}
/// TimeInterval value for UIKeyboardAnimationDurationUserInfoKey or nil
var keyboardAnimationDuration: TimeInterval? {
return (userInfo?[UIKeyboardAnimationDurationUserInfoKey] as? NSNumber)?.doubleValue
}
/// UIViewAnimationCurve value for UIKeyboardAnimationDurationUserInfoKey or nil
var keyboardAnimationCurve: UIViewAnimationCurve? {
if let rawValue = (userInfo?[UIKeyboardAnimationDurationUserInfoKey] as? NSNumber)?.intValue {
return UIViewAnimationCurve(rawValue: rawValue)
}
return nil
}
/// Bool value for UIKeyboardIsLocalUserInfoKey or nil
var keyboardIsLocal: Bool? {
return (userInfo?[UIKeyboardIsLocalUserInfoKey] as? NSNumber)?.boolValue
}
}

View File

@ -23,9 +23,11 @@ public struct KeyboardDidNotificationValues {
public extension KeyboardDidNotificationValues {
init(notification: Notification) throws {
guard let sizeBegin = notification.keyboardFrameBegin?.size,
let sizeEnd = notification.keyboardFrameEnd?.size,
let isLocal = notification.keyboardIsLocal else {
let notificationValues = KeyboardNotificationValues(notification: notification)
guard let sizeBegin = notificationValues.frameBegin?.size,
let sizeEnd = notificationValues.frameEnd?.size,
let isLocal = notificationValues.isLocal else {
throw KeyboardNotificationValuesError.failedToInit(fromNotification: notification)
}

View File

@ -0,0 +1,33 @@
//
// KeyboardNotificationValues.swift
// LeadKit
//
// Created by Ivan Smolin on 22/12/16.
// Copyright © 2016 Touch Instinct. All rights reserved.
//
import UIKit
internal struct KeyboardNotificationValues {
let frameBegin: CGRect?
let frameEnd: CGRect?
let animationDuration: TimeInterval?
let animationCurve: UIViewAnimationCurve?
let isLocal: Bool?
init(notification: Notification) {
frameBegin = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue
frameEnd = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue
animationDuration = (notification.userInfo?[UIKeyboardAnimationDurationUserInfoKey] as? NSNumber)?.doubleValue
if let rawValue = (notification.userInfo?[UIKeyboardAnimationDurationUserInfoKey] as? NSNumber)?.intValue {
animationCurve = UIViewAnimationCurve(rawValue: rawValue)
} else {
animationCurve = nil
}
isLocal = (notification.userInfo?[UIKeyboardIsLocalUserInfoKey] as? NSNumber)?.boolValue
}
}

View File

@ -23,11 +23,13 @@ public struct KeyboardWillNotificationValues {
public extension KeyboardWillNotificationValues {
init(notification: Notification) throws {
guard let sizeBegin = notification.keyboardFrameBegin?.size,
let sizeEnd = notification.keyboardFrameEnd?.size,
let animationDuration = notification.keyboardAnimationDuration,
let animationCurve = notification.keyboardAnimationCurve,
let isLocal = notification.keyboardIsLocal else {
let notificationValues = KeyboardNotificationValues(notification: notification)
guard let sizeBegin = notificationValues.frameBegin?.size,
let sizeEnd = notificationValues.frameEnd?.size,
let animationDuration = notificationValues.animationDuration,
let animationCurve = notificationValues.animationCurve,
let isLocal = notificationValues.isLocal else {
throw KeyboardNotificationValuesError.failedToInit(fromNotification: notification)
}