From bcedb30f7c306e6c2293b1e6e52b3de49c11b186 Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Fri, 25 May 2018 18:26:32 -0300 Subject: [PATCH 01/20] New Prologue Asset --- .../LaunchLogo.imageset/Contents.json | 11 +---------- .../Resources/Images.xcassets/Contents.json | 6 ++++++ .../prologue-hands.imageset/Contents.json | 12 ++++++++++++ .../prologue-hands.imageset/prologue-hands.pdf | Bin 0 -> 13893 bytes 4 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 WooCommerce/Resources/Images.xcassets/Contents.json create mode 100644 WooCommerce/Resources/Images.xcassets/prologue-hands.imageset/Contents.json create mode 100644 WooCommerce/Resources/Images.xcassets/prologue-hands.imageset/prologue-hands.pdf diff --git a/WooCommerce/Resources/Assets.xcassets/LaunchLogo.imageset/Contents.json b/WooCommerce/Resources/Assets.xcassets/LaunchLogo.imageset/Contents.json index 24ead6bf8f6..8dd02e71f66 100644 --- a/WooCommerce/Resources/Assets.xcassets/LaunchLogo.imageset/Contents.json +++ b/WooCommerce/Resources/Assets.xcassets/LaunchLogo.imageset/Contents.json @@ -2,16 +2,7 @@ "images" : [ { "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "WooLaunchLogo@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" + "filename" : "WooLaunchLogo@2x.png" } ], "info" : { diff --git a/WooCommerce/Resources/Images.xcassets/Contents.json b/WooCommerce/Resources/Images.xcassets/Contents.json new file mode 100644 index 00000000000..da4a164c918 --- /dev/null +++ b/WooCommerce/Resources/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/WooCommerce/Resources/Images.xcassets/prologue-hands.imageset/Contents.json b/WooCommerce/Resources/Images.xcassets/prologue-hands.imageset/Contents.json new file mode 100644 index 00000000000..919dc135d00 --- /dev/null +++ b/WooCommerce/Resources/Images.xcassets/prologue-hands.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "prologue-hands.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/WooCommerce/Resources/Images.xcassets/prologue-hands.imageset/prologue-hands.pdf b/WooCommerce/Resources/Images.xcassets/prologue-hands.imageset/prologue-hands.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2c1be05a2d8e9e998600af8034c73fef4c085be2 GIT binary patch literal 13893 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 G*#8B@+P0hk literal 0 HcmV?d00001 From 284bf5743a461c3496d76bbe90f8f5e9cc2f351a Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Fri, 25 May 2018 18:27:19 -0300 Subject: [PATCH 02/20] AppDelegate: Customizing FancyButton's Appearance --- WooCommerce/Classes/AppDelegate.swift | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/WooCommerce/Classes/AppDelegate.swift b/WooCommerce/Classes/AppDelegate.swift index f4483ad685c..7b3e3fce78f 100644 --- a/WooCommerce/Classes/AppDelegate.swift +++ b/WooCommerce/Classes/AppDelegate.swift @@ -1,5 +1,6 @@ import UIKit import CoreData +import WordPressUI // MARK: - Woo's App Delegate! @@ -27,7 +28,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { // Setup the Interface! setupMainWindow() - setupInterfaceAppearance() + setupComponentsAppearance() // Setup Components setupAuthenticationManager() @@ -84,9 +85,16 @@ private extension AppDelegate { window?.makeKeyAndVisible() } + /// Sets up all of the component(s) Appearance. + /// + func setupComponentsAppearance() { + setupWooAppearance() + setupFancyButtonAppearance() + } + /// Sets up WooCommerce's UIAppearance. /// - func setupInterfaceAppearance() { + func setupWooAppearance() { UINavigationBar.appearance().barTintColor = StyleManager.wooCommerceBrandColor UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor.white] UINavigationBar.appearance().isTranslucent = false @@ -94,6 +102,19 @@ private extension AppDelegate { UIApplication.shared.statusBarStyle = .lightContent } + /// Sets up FancyButton's UIAppearance. + /// + func setupFancyButtonAppearance() { + let appearance = FancyButton.appearance() + appearance.titleFont = UIFont.font(forStyle: .headline, weight: .bold) + appearance.primaryNormalBackgroundColor = StyleManager.buttonPrimaryColor + appearance.primaryNormalBorderColor = StyleManager.buttonPrimaryHighlightedColor + appearance.primaryHighlightBackgroundColor = StyleManager.buttonPrimaryHighlightedColor + appearance.primaryHighlightBorderColor = StyleManager.buttonPrimaryHighlightedColor + appearance.disabledBorderColor = StyleManager.buttonPrimaryHighlightedColor + appearance.disabledBackgroundColor = StyleManager.buttonPrimaryHighlightedColor + } + /// Sets up the WordPress Authenticator. /// func setupAuthenticationManager() { From 50d3008eda8d217cf5ddce9d35866566800f4770 Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Fri, 25 May 2018 18:27:41 -0300 Subject: [PATCH 03/20] AuthenticationManager: Renaming Auth public method --- WooCommerce/Classes/AppDelegate.swift | 2 +- .../Classes/Authentication/AuthenticationManager.swift | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/WooCommerce/Classes/AppDelegate.swift b/WooCommerce/Classes/AppDelegate.swift index 7b3e3fce78f..2792d1f7fc8 100644 --- a/WooCommerce/Classes/AppDelegate.swift +++ b/WooCommerce/Classes/AppDelegate.swift @@ -144,7 +144,7 @@ private extension AppDelegate { fatalError() } - authenticationManager.showLogin(from: rootViewController) + authenticationManager.displayAuthentication(from: rootViewController) } /// Indicates if there's a default WordPress.com account. diff --git a/WooCommerce/Classes/Authentication/AuthenticationManager.swift b/WooCommerce/Classes/Authentication/AuthenticationManager.swift index ace61dcfe45..15b5dab484e 100644 --- a/WooCommerce/Classes/Authentication/AuthenticationManager.swift +++ b/WooCommerce/Classes/Authentication/AuthenticationManager.swift @@ -1,5 +1,6 @@ import Foundation import WordPressAuthenticator +import WordPressUI @@ -26,12 +27,10 @@ class AuthenticationManager { /// Displays the Login Flow using the specified UIViewController as presenter. /// - func showLogin(from presenter: UIViewController) { - let loginViewController = WordPressAuthenticator.signinForWordPress() - loginViewController.restrictToWPCom = true - loginViewController.offerSignupOption = false + func displayAuthentication(from presenter: UIViewController) { + let prologueViewController = LoginPrologueViewController() - let navigationController = UINavigationController(rootViewController: loginViewController) + let navigationController = RotationAwareNavigationViewController(rootViewController: prologueViewController) presenter.present(navigationController, animated: true, completion: nil) } From 204573f54c5c76922c08725ee6ff27a2383f4d7d Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Fri, 25 May 2018 18:27:53 -0300 Subject: [PATCH 04/20] Styles: New Button Style --- WooCommerce/Classes/Styles/Style.swift | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/WooCommerce/Classes/Styles/Style.swift b/WooCommerce/Classes/Styles/Style.swift index 3f58e789aa0..8769b4826d9 100644 --- a/WooCommerce/Classes/Styles/Style.swift +++ b/WooCommerce/Classes/Styles/Style.swift @@ -15,6 +15,8 @@ protocol Style { var statusNotIdentifiedBoldColor: UIColor { get } var defaultTextColor: UIColor { get } var sectionTitleColor: UIColor { get } + var buttonPrimaryColor: UIColor { get } + var buttonPrimaryHighlightedColor: UIColor { get } } // MARK: - WooCommerce's Default Style @@ -31,6 +33,8 @@ class DefaultStyle: Style { let statusNotIdentifiedBoldColor = UIColor(red: 226.0/255.0, green: 226.0/255.0, blue: 226.0/255.0, alpha: 1.0) let defaultTextColor = UIColor.black let sectionTitleColor = UIColor.darkGray + let buttonPrimaryColor = UIColor(red: 0x96/255.0, green: 0x58/255.0, blue: 0x8A/255.0, alpha: 0xFF/255.0) + let buttonPrimaryHighlightedColor = UIColor(red: 0x6E/255.0, green: 0x29/255.0, blue: 0x67/255.0, alpha:0xFF/255.0) } @@ -94,4 +98,12 @@ class StyleManager { static var sectionTitleColor: UIColor { return active.sectionTitleColor } + + static var buttonPrimaryColor: UIColor { + return active.buttonPrimaryColor + } + + static var buttonPrimaryHighlightedColor: UIColor { + return active.buttonPrimaryHighlightedColor + } } From 06310de20a4fae66368a898df11e749b44530403 Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Fri, 25 May 2018 18:29:28 -0300 Subject: [PATCH 05/20] Implements UIFont+Helpers --- .../Classes/Extensions/UIFont+Helpers.swift | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/WooCommerce/Classes/Extensions/UIFont+Helpers.swift b/WooCommerce/Classes/Extensions/UIFont+Helpers.swift index bde6913fc98..09e7bd297f3 100644 --- a/WooCommerce/Classes/Extensions/UIFont+Helpers.swift +++ b/WooCommerce/Classes/Extensions/UIFont+Helpers.swift @@ -1,5 +1,8 @@ import UIKit + +/// WooCommerce UIFont Constants +/// extension UIFont { static var largeTitle: UIFont { return .preferredFont(forTextStyle: .largeTitle) @@ -45,3 +48,26 @@ extension UIFont { return .preferredFont(forTextStyle: .caption2) } } + + +/// WooCommerce UIFont Helpers +/// +extension UIFont { + + /// Returns a UIFont instance for the specified Style + Weight. + /// + class func font(forStyle style: UIFontTextStyle, weight: UIFont.Weight) -> UIFont { + let targetSize = pointSize(for: style) + return UIFont.systemFont(ofSize: targetSize, weight: weight) + } + + /// Returns the System's Point Size for the specified Style. + /// + private class func pointSize(for style: UIFontTextStyle) -> CGFloat { + let descriptor = UIFontDescriptor.preferredFontDescriptor(withTextStyle: style) + let initialFont = UIFont(descriptor: descriptor, size: CGFloat(0.0)) + let scaledFont = UIFontMetrics(forTextStyle: style).scaledFont(for: initialFont) + + return scaledFont.pointSize + } +} From 6c9a124669364bf67b0e86d807190228d1ac8bff Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Fri, 25 May 2018 18:30:26 -0300 Subject: [PATCH 06/20] Implements LoginPrologueViewController --- .../LoginPrologueViewController.swift | 78 ++++++++++++++++++ .../Prologue/LoginPrologueViewController.xib | 82 +++++++++++++++++++ .../WooCommerce.xcodeproj/project.pbxproj | 22 ++++- 3 files changed, 181 insertions(+), 1 deletion(-) create mode 100644 WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift create mode 100644 WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.xib diff --git a/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift b/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift new file mode 100644 index 00000000000..b31c5d0d38e --- /dev/null +++ b/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift @@ -0,0 +1,78 @@ +import Foundation +import UIKit +import WordPressAuthenticator + + +/// Displays the WooCommerce Prologue UI. +/// +class LoginPrologueViewController: UIViewController { + + /// Label to be displayed at the top of the Prologue. + /// + @IBOutlet var upperLabel: UILabel! + + /// Default Action Button. + /// + @IBOutlet var loginButton: UIButton! + + + // MARK: - Overriden Properties + + override var supportedInterfaceOrientations: UIInterfaceOrientationMask { + return .portrait + } + + + // MARK: - Overriden Methods + + override func viewDidLoad() { + super.viewDidLoad() + setupMainView() + setupUpperLabel() + setupLoginButton() + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + navigationController?.setNavigationBarHidden(true, animated: animated) + } + + override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + navigationController?.setNavigationBarHidden(false, animated: animated) + } +} + + +// MARK: - Initialization Methods +// +private extension LoginPrologueViewController { + + func setupMainView() { + view.backgroundColor = StyleManager.wooCommerceBrandColor + } + + func setupUpperLabel() { + upperLabel.text = NSLocalizedString("Check your WooCommerce store on\nthe go, fulfill your orders and get\nnotifications of new sales.", comment: "Login Prologue Legend") + upperLabel.font = UIFont.font(forStyle: .subheadline, weight: .bold) + upperLabel.textColor = .white + } + + func setupLoginButton() { + let title = NSLocalizedString("Log in with Jetpack", comment: "Authentication Login Button") + loginButton.setTitle(title, for: .normal) + } +} + + +// MARK: - Action Handlers +// +extension LoginPrologueViewController { + + @IBAction func loginWasPressed() { + let loginViewController = WordPressAuthenticator.signinForWordPress() + loginViewController.restrictToWPCom = true + loginViewController.offerSignupOption = false + navigationController?.pushViewController(loginViewController, animated: true) + } +} diff --git a/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.xib b/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.xib new file mode 100644 index 00000000000..e2258bdb8e7 --- /dev/null +++ b/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.xib @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WooCommerce/WooCommerce.xcodeproj/project.pbxproj b/WooCommerce/WooCommerce.xcodeproj/project.pbxproj index 7ce33899792..6e9db864078 100644 --- a/WooCommerce/WooCommerce.xcodeproj/project.pbxproj +++ b/WooCommerce/WooCommerce.xcodeproj/project.pbxproj @@ -42,6 +42,9 @@ B56DB3D42049BFAA00D4AA8E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B56DB3D32049BFAA00D4AA8E /* Assets.xcassets */; }; B56DB3D72049BFAA00D4AA8E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B56DB3D52049BFAA00D4AA8E /* LaunchScreen.storyboard */; }; B5A8F8A920B84D3F00D211DE /* ApiCredentials.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5A8F8A720B84D3F00D211DE /* ApiCredentials.swift */; }; + B5A8F8AD20B88D9900D211DE /* LoginPrologueViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5A8F8AC20B88D9900D211DE /* LoginPrologueViewController.swift */; }; + B5A8F8AF20B88DCC00D211DE /* LoginPrologueViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = B5A8F8AE20B88DCC00D211DE /* LoginPrologueViewController.xib */; }; + B5A8F8B420B8968400D211DE /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B5A8F8B320B8968400D211DE /* Images.xcassets */; }; B5EE26C020A5EE6600468622 /* Storage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B5EE26BF20A5EE6600468622 /* Storage.framework */; }; B5EE26C120A5EE8100468622 /* Storage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B5EE26BF20A5EE6600468622 /* Storage.framework */; }; B5EE26C220A5EE8100468622 /* Storage.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B5EE26BF20A5EE6600468622 /* Storage.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -139,6 +142,9 @@ B56DB3E32049BFAA00D4AA8E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; B5A8F8A720B84D3F00D211DE /* ApiCredentials.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ApiCredentials.swift; path = DerivedSources/ApiCredentials.swift; sourceTree = SOURCE_ROOT; }; B5A8F8A820B84D3F00D211DE /* InfoPlist.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = InfoPlist.h; path = DerivedSources/InfoPlist.h; sourceTree = SOURCE_ROOT; }; + B5A8F8AC20B88D9900D211DE /* LoginPrologueViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginPrologueViewController.swift; sourceTree = ""; }; + B5A8F8AE20B88DCC00D211DE /* LoginPrologueViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoginPrologueViewController.xib; sourceTree = ""; }; + B5A8F8B320B8968400D211DE /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; B5EE26BF20A5EE6600468622 /* Storage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Storage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CE17C2E020ACA06800AFBD20 /* BillingDetailsTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BillingDetailsTableViewCell.swift; sourceTree = ""; }; CE17C2E120ACA06800AFBD20 /* BillingDetailsTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BillingDetailsTableViewCell.xib; sourceTree = ""; }; @@ -236,6 +242,7 @@ B55D4C0420B6026700D7A50F /* Authentication */ = { isa = PBXGroup; children = ( + B5A8F8AB20B88D8400D211DE /* Prologue */, B55D4C0520B6027100D7A50F /* AuthenticationManager.swift */, ); path = Authentication; @@ -315,10 +322,11 @@ isa = PBXGroup; children = ( B56DB3D32049BFAA00D4AA8E /* Assets.xcassets */, + B5A8F8B320B8968400D211DE /* Images.xcassets */, + CE1CCB4620570A6B000EE3AC /* en.lproj */, B56DB3D82049BFAA00D4AA8E /* Info.plist */, B56DB3D52049BFAA00D4AA8E /* LaunchScreen.storyboard */, B56DB3D02049BFAA00D4AA8E /* WooCommerce.xcdatamodeld */, - CE1CCB4620570A6B000EE3AC /* en.lproj */, CEE005FF2077CA5A0079161F /* fake data */, ); path = Resources; @@ -333,6 +341,15 @@ path = DerivedSources; sourceTree = ""; }; + B5A8F8AB20B88D8400D211DE /* Prologue */ = { + isa = PBXGroup; + children = ( + B5A8F8AC20B88D9900D211DE /* LoginPrologueViewController.swift */, + B5A8F8AE20B88DCC00D211DE /* LoginPrologueViewController.xib */, + ); + path = Prologue; + sourceTree = ""; + }; CE1CCB3E2056F204000EE3AC /* Styles */ = { isa = PBXGroup; children = ( @@ -506,6 +523,7 @@ buildActionMask = 2147483647; files = ( B56DB3D72049BFAA00D4AA8E /* LaunchScreen.storyboard in Resources */, + B5A8F8AF20B88DCC00D211DE /* LoginPrologueViewController.xib in Resources */, CED6021E20B35FDF0032C639 /* NoResultsTableViewCell.xib in Resources */, CEE006012077CA820079161F /* order-915.json in Resources */, B557DA1620979904005962F4 /* CustomerNoteTableViewCell.xib in Resources */, @@ -513,6 +531,7 @@ B559EBAF20A0BF8F00836CD4 /* README.md in Resources */, CEE005F82077C9690079161F /* order-list.json in Resources */, CEE005FC2077CA030079161F /* order-949.json in Resources */, + B5A8F8B420B8968400D211DE /* Images.xcassets in Resources */, CEE005F62076C4040079161F /* Orders.storyboard in Resources */, CE855367209BA6A700938BDC /* ShowHideSectionFooter.xib in Resources */, CEE005FE2077CA2F0079161F /* order-937.json in Resources */, @@ -658,6 +677,7 @@ CE85535D209B5BB700938BDC /* OrderDetailsViewModel.swift in Sources */, CE263DE6206ACD220015A693 /* NotificationsViewController.swift in Sources */, B50911312049E27A007D25DC /* OrdersViewController.swift in Sources */, + B5A8F8AD20B88D9900D211DE /* LoginPrologueViewController.swift in Sources */, B5A8F8A920B84D3F00D211DE /* ApiCredentials.swift in Sources */, CE17C2E220ACA06800AFBD20 /* BillingDetailsTableViewCell.swift in Sources */, B55D4C2720B717C000D7A50F /* UserAgent.swift in Sources */, From f39b978035ccb26e614c95250244541fbaaa6f94 Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Fri, 25 May 2018 18:34:28 -0300 Subject: [PATCH 07/20] Style: Fixing Hound warning --- WooCommerce/Classes/Styles/Style.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WooCommerce/Classes/Styles/Style.swift b/WooCommerce/Classes/Styles/Style.swift index 8769b4826d9..db1c5614449 100644 --- a/WooCommerce/Classes/Styles/Style.swift +++ b/WooCommerce/Classes/Styles/Style.swift @@ -34,7 +34,7 @@ class DefaultStyle: Style { let defaultTextColor = UIColor.black let sectionTitleColor = UIColor.darkGray let buttonPrimaryColor = UIColor(red: 0x96/255.0, green: 0x58/255.0, blue: 0x8A/255.0, alpha: 0xFF/255.0) - let buttonPrimaryHighlightedColor = UIColor(red: 0x6E/255.0, green: 0x29/255.0, blue: 0x67/255.0, alpha:0xFF/255.0) + let buttonPrimaryHighlightedColor = UIColor(red: 0x6E/255.0, green: 0x29/255.0, blue: 0x67/255.0, alpha: 0xFF/255.0) } From 6cf864a4f1788cb29c6bb19af46fb7c596537a9b Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Mon, 28 May 2018 14:01:25 -0300 Subject: [PATCH 08/20] Adding Assets --- .../icon-jetpack-gray.imageset/Contents.json | 12 ++++++++++++ .../icon-jetpack-gray.pdf | Bin 0 -> 3996 bytes .../prologue-hands.imageset/Contents.json | 2 +- .../illustration-hands.pdf | Bin 0 -> 13941 bytes .../prologue-hands.imageset/prologue-hands.pdf | Bin 13893 -> 0 bytes 5 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 WooCommerce/Resources/Images.xcassets/icon-jetpack-gray.imageset/Contents.json create mode 100644 WooCommerce/Resources/Images.xcassets/icon-jetpack-gray.imageset/icon-jetpack-gray.pdf create mode 100644 WooCommerce/Resources/Images.xcassets/prologue-hands.imageset/illustration-hands.pdf delete mode 100644 WooCommerce/Resources/Images.xcassets/prologue-hands.imageset/prologue-hands.pdf diff --git a/WooCommerce/Resources/Images.xcassets/icon-jetpack-gray.imageset/Contents.json b/WooCommerce/Resources/Images.xcassets/icon-jetpack-gray.imageset/Contents.json new file mode 100644 index 00000000000..d7356eb26c2 --- /dev/null +++ b/WooCommerce/Resources/Images.xcassets/icon-jetpack-gray.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "icon-jetpack-gray.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/WooCommerce/Resources/Images.xcassets/icon-jetpack-gray.imageset/icon-jetpack-gray.pdf b/WooCommerce/Resources/Images.xcassets/icon-jetpack-gray.imageset/icon-jetpack-gray.pdf new file mode 100644 index 0000000000000000000000000000000000000000..581669c8bceef5d7fda7f355418a27dcd98928c6 GIT binary patch literal 3996 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

+j5NYqc65^Dr{d>kR=Z}Go5FCJaSdJ#Qc_Ov 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 CeVr5l literal 0 HcmV?d00001 diff --git a/WooCommerce/Resources/Images.xcassets/prologue-hands.imageset/prologue-hands.pdf b/WooCommerce/Resources/Images.xcassets/prologue-hands.imageset/prologue-hands.pdf deleted file mode 100644 index 2c1be05a2d8e9e998600af8034c73fef4c085be2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13893 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 G*#8B@+P0hk From c8707d715ffe504424095d743a029daf4f70b5bf Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Mon, 28 May 2018 14:01:37 -0300 Subject: [PATCH 09/20] UIColor+Woo: New Extension --- WooCommerce/Classes/Extensions/UIColor+Woo.swift | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 WooCommerce/Classes/Extensions/UIColor+Woo.swift diff --git a/WooCommerce/Classes/Extensions/UIColor+Woo.swift b/WooCommerce/Classes/Extensions/UIColor+Woo.swift new file mode 100644 index 00000000000..cf8a4537724 --- /dev/null +++ b/WooCommerce/Classes/Extensions/UIColor+Woo.swift @@ -0,0 +1,14 @@ +import Foundation +import UIKit + + +/// WooCommerce Color Constants +/// +extension UIColor { + + /// Returns Jetpack Green Color + /// + static var jetpackGreen: UIColor { + return UIColor(red: 83.0/255.0, green: 186.0/255.0, blue: 68.0/255.0, alpha: 1.0) + } +} From 8582160b4e38dd304411e343c5c39ddf103d259b Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Mon, 28 May 2018 14:01:44 -0300 Subject: [PATCH 10/20] UIImage+Woo: New Extension --- WooCommerce/Classes/Extensions/UIImage+Woo.swift | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 WooCommerce/Classes/Extensions/UIImage+Woo.swift diff --git a/WooCommerce/Classes/Extensions/UIImage+Woo.swift b/WooCommerce/Classes/Extensions/UIImage+Woo.swift new file mode 100644 index 00000000000..31716b18b8f --- /dev/null +++ b/WooCommerce/Classes/Extensions/UIImage+Woo.swift @@ -0,0 +1,14 @@ +import Foundation +import UIKit + + +/// WooCommerce UIImage Assets +/// +extension UIImage { + + /// Jetpack Logo Image + /// + static var jetpackLogoImage: UIImage { + return UIImage(named: "icon-jetpack-gray")! + } +} From 5e0441dddd495c153902e1d01df3c4b8916d11b7 Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Mon, 28 May 2018 14:02:01 -0300 Subject: [PATCH 11/20] LoginPrologueViewController: Adding new fields --- .../LoginPrologueViewController.swift | 76 ++++++++++++- .../Prologue/LoginPrologueViewController.xib | 107 ++++++++++++------ 2 files changed, 144 insertions(+), 39 deletions(-) diff --git a/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift b/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift index b31c5d0d38e..7d3b46b4e06 100644 --- a/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift +++ b/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift @@ -1,5 +1,6 @@ import Foundation import UIKit +import SafariServices import WordPressAuthenticator @@ -11,6 +12,14 @@ class LoginPrologueViewController: UIViewController { /// @IBOutlet var upperLabel: UILabel! + /// Disclaimer Label + /// + @IBOutlet var disclaimerTextView: UITextView! + + /// Jetpack Logo ImageVIew + /// + @IBOutlet var jetpackImageView: UIImageView! + /// Default Action Button. /// @IBOutlet var loginButton: UIButton! @@ -28,6 +37,8 @@ class LoginPrologueViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() setupMainView() + setupJetpackImage() + setupDisclaimerLabel() setupUpperLabel() setupLoginButton() } @@ -36,11 +47,6 @@ class LoginPrologueViewController: UIViewController { super.viewWillAppear(animated) navigationController?.setNavigationBarHidden(true, animated: animated) } - - override func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - navigationController?.setNavigationBarHidden(false, animated: animated) - } } @@ -53,11 +59,20 @@ private extension LoginPrologueViewController { } func setupUpperLabel() { - upperLabel.text = NSLocalizedString("Check your WooCommerce store on\nthe go, fulfill your orders and get\nnotifications of new sales.", comment: "Login Prologue Legend") + upperLabel.text = NSLocalizedString("Check your WooCommerce store on the go, fulfill your orders and get notifications of new sales.", comment: "Login Prologue Legend") upperLabel.font = UIFont.font(forStyle: .subheadline, weight: .bold) upperLabel.textColor = .white } + func setupJetpackImage() { + jetpackImageView.image = UIImage.jetpackLogoImage.imageWithTintColor(.jetpackGreen) + } + + func setupDisclaimerLabel() { + disclaimerTextView.attributedText = disclaimerAttributedText + disclaimerTextView.textContainerInset = .zero + } + func setupLoginButton() { let title = NSLocalizedString("Log in with Jetpack", comment: "Authentication Login Button") loginButton.setTitle(title, for: .normal) @@ -65,14 +80,63 @@ private extension LoginPrologueViewController { } +// MARK: - UITextViewDeletgate Conformance +// +extension LoginPrologueViewController: UITextViewDelegate { + + func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { + displaySafariViewController(at: URL) + return false + } +} + + // MARK: - Action Handlers // extension LoginPrologueViewController { + /// Opens SafariViewController at the specified URL. + /// + func displaySafariViewController(at url: URL) { + let safariViewController = SFSafariViewController(url: url) + safariViewController.modalPresentationStyle = .pageSheet + present(safariViewController, animated: true, completion: nil) + } + + /// Proceeds with the Login Flow. + /// @IBAction func loginWasPressed() { let loginViewController = WordPressAuthenticator.signinForWordPress() loginViewController.restrictToWPCom = true loginViewController.offerSignupOption = false + navigationController?.pushViewController(loginViewController, animated: true) + navigationController?.setNavigationBarHidden(false, animated: true) + } +} + + +// MARK: - Private Methods +// +private extension LoginPrologueViewController { + + /// Returns the Disclaimer Attributed Text (which contains a link to the Jetpack Setup URL). + /// + var disclaimerAttributedText: NSAttributedString { + let disclaimerText = NSLocalizedString("This app requires Jetpack to be able to connect to your WooCommerce Store.\nFor configuration instructions, ", comment: "Login Disclaimer Text") + let disclaimerAttributes: [NSAttributedStringKey: Any] = [ + .font: UIFont.font(forStyle: .caption1, weight: .thin), + .foregroundColor: UIColor.black + ] + + let readText = NSLocalizedString("read here.", comment: "Login Disclaimer Linked Text") + var readAttributes = disclaimerAttributes + readAttributes[.link] = WooConstants.jetpackSetupUrl + + let readAttrText = NSMutableAttributedString(string: readText, attributes: readAttributes) + let disclaimerAttrText = NSMutableAttributedString(string: disclaimerText, attributes: disclaimerAttributes) + disclaimerAttrText.append(readAttrText) + + return disclaimerAttrText } } diff --git a/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.xib b/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.xib index e2258bdb8e7..bbb7efdfb1b 100644 --- a/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.xib +++ b/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.xib @@ -1,16 +1,19 @@ - + + + + @@ -18,38 +21,72 @@ - + - - + + - - - - + + + + + + + + + + + L1 +L2 +L3 + + + + + + + + + - + + + + + + + + + - - - - - - - - - - + + + - - + - + + From fef9666008e3362f2fa255b65be2c347d2dc5f65 Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Mon, 28 May 2018 14:02:34 -0300 Subject: [PATCH 12/20] Implements WooConstants --- WooCommerce/Classes/System/WooConstants.swift | 15 ++++++++++ .../WooCommerce.xcodeproj/project.pbxproj | 28 ++++++++++++++++--- 2 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 WooCommerce/Classes/System/WooConstants.swift diff --git a/WooCommerce/Classes/System/WooConstants.swift b/WooCommerce/Classes/System/WooConstants.swift new file mode 100644 index 00000000000..efb9c75f985 --- /dev/null +++ b/WooCommerce/Classes/System/WooConstants.swift @@ -0,0 +1,15 @@ +import Foundation + + +/// WooCommerce Constants +/// +struct WooConstants { + + /// Private: No-OP! + /// + private init() {} + + /// Jetpack Setup URL + /// + static let jetpackSetupUrl = URL(string: "https://jetpack.com/support/getting-started-with-jetpack/")! +} diff --git a/WooCommerce/WooCommerce.xcodeproj/project.pbxproj b/WooCommerce/WooCommerce.xcodeproj/project.pbxproj index 6e9db864078..0838e1b9398 100644 --- a/WooCommerce/WooCommerce.xcodeproj/project.pbxproj +++ b/WooCommerce/WooCommerce.xcodeproj/project.pbxproj @@ -44,7 +44,10 @@ B5A8F8A920B84D3F00D211DE /* ApiCredentials.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5A8F8A720B84D3F00D211DE /* ApiCredentials.swift */; }; B5A8F8AD20B88D9900D211DE /* LoginPrologueViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5A8F8AC20B88D9900D211DE /* LoginPrologueViewController.swift */; }; B5A8F8AF20B88DCC00D211DE /* LoginPrologueViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = B5A8F8AE20B88DCC00D211DE /* LoginPrologueViewController.xib */; }; - B5A8F8B420B8968400D211DE /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B5A8F8B320B8968400D211DE /* Images.xcassets */; }; + B5D1AFB420BC445A00DB0E8C /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B5D1AFB320BC445900DB0E8C /* Images.xcassets */; }; + B5D1AFB820BC510200DB0E8C /* UIImage+Woo.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5D1AFB720BC510200DB0E8C /* UIImage+Woo.swift */; }; + B5D1AFBA20BC515600DB0E8C /* UIColor+Woo.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5D1AFB920BC515600DB0E8C /* UIColor+Woo.swift */; }; + B5D1AFC020BC67C200DB0E8C /* WooConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5D1AFBF20BC67C200DB0E8C /* WooConstants.swift */; }; B5EE26C020A5EE6600468622 /* Storage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B5EE26BF20A5EE6600468622 /* Storage.framework */; }; B5EE26C120A5EE8100468622 /* Storage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B5EE26BF20A5EE6600468622 /* Storage.framework */; }; B5EE26C220A5EE8100468622 /* Storage.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B5EE26BF20A5EE6600468622 /* Storage.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -144,7 +147,10 @@ B5A8F8A820B84D3F00D211DE /* InfoPlist.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = InfoPlist.h; path = DerivedSources/InfoPlist.h; sourceTree = SOURCE_ROOT; }; B5A8F8AC20B88D9900D211DE /* LoginPrologueViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginPrologueViewController.swift; sourceTree = ""; }; B5A8F8AE20B88DCC00D211DE /* LoginPrologueViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoginPrologueViewController.xib; sourceTree = ""; }; - B5A8F8B320B8968400D211DE /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + B5D1AFB320BC445900DB0E8C /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + B5D1AFB720BC510200DB0E8C /* UIImage+Woo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Woo.swift"; sourceTree = ""; }; + B5D1AFB920BC515600DB0E8C /* UIColor+Woo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Woo.swift"; sourceTree = ""; }; + B5D1AFBF20BC67C200DB0E8C /* WooConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WooConstants.swift; sourceTree = ""; }; B5EE26BF20A5EE6600468622 /* Storage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Storage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CE17C2E020ACA06800AFBD20 /* BillingDetailsTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BillingDetailsTableViewCell.swift; sourceTree = ""; }; CE17C2E120ACA06800AFBD20 /* BillingDetailsTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BillingDetailsTableViewCell.xib; sourceTree = ""; }; @@ -310,6 +316,7 @@ B55D4C0420B6026700D7A50F /* Authentication */, CE1CCB4C20572444000EE3AC /* Extensions */, CE1CCB3E2056F204000EE3AC /* Styles */, + B5D1AFBE20BC67B500DB0E8C /* System */, B509112B2049CFDF007D25DC /* Model */, CE85535B209B5B6A00938BDC /* ViewModels */, B56DB3EF2049C06D00D4AA8E /* ViewRelated */, @@ -322,7 +329,7 @@ isa = PBXGroup; children = ( B56DB3D32049BFAA00D4AA8E /* Assets.xcassets */, - B5A8F8B320B8968400D211DE /* Images.xcassets */, + B5D1AFB320BC445900DB0E8C /* Images.xcassets */, CE1CCB4620570A6B000EE3AC /* en.lproj */, B56DB3D82049BFAA00D4AA8E /* Info.plist */, B56DB3D52049BFAA00D4AA8E /* LaunchScreen.storyboard */, @@ -350,6 +357,14 @@ path = Prologue; sourceTree = ""; }; + B5D1AFBE20BC67B500DB0E8C /* System */ = { + isa = PBXGroup; + children = ( + B5D1AFBF20BC67C200DB0E8C /* WooConstants.swift */, + ); + path = System; + sourceTree = ""; + }; CE1CCB3E2056F204000EE3AC /* Styles */ = { isa = PBXGroup; children = ( @@ -375,8 +390,10 @@ children = ( CE4296B820A5E9E400B2AFBD /* CNContact+Helpers.swift */, CE1F51262064345B00C6C810 /* UIColor+Helpers.swift */, + B5D1AFB920BC515600DB0E8C /* UIColor+Woo.swift */, CE1F512820697F0100C6C810 /* UIFont+Helpers.swift */, CE1F51242064179A00C6C810 /* UILabel+Helpers.swift */, + B5D1AFB720BC510200DB0E8C /* UIImage+Woo.swift */, ); path = Extensions; sourceTree = ""; @@ -531,7 +548,7 @@ B559EBAF20A0BF8F00836CD4 /* README.md in Resources */, CEE005F82077C9690079161F /* order-list.json in Resources */, CEE005FC2077CA030079161F /* order-949.json in Resources */, - B5A8F8B420B8968400D211DE /* Images.xcassets in Resources */, + B5D1AFB420BC445A00DB0E8C /* Images.xcassets in Resources */, CEE005F62076C4040079161F /* Orders.storyboard in Resources */, CE855367209BA6A700938BDC /* ShowHideSectionFooter.xib in Resources */, CEE005FE2077CA2F0079161F /* order-937.json in Resources */, @@ -691,6 +708,7 @@ CE855366209BA6A700938BDC /* CustomerInfoTableViewCell.swift in Sources */, CE1F51252064179A00C6C810 /* UILabel+Helpers.swift in Sources */, B50911302049E27A007D25DC /* DashboardViewController.swift in Sources */, + B5D1AFB820BC510200DB0E8C /* UIImage+Woo.swift in Sources */, CEE006082077D14C0079161F /* OrderDetailsViewController.swift in Sources */, CE34DA2520A1ECD6005D8523 /* ContactViewModel.swift in Sources */, CE4296B920A5E9E400B2AFBD /* CNContact+Helpers.swift in Sources */, @@ -700,7 +718,9 @@ CE263DE8206ACE3E0015A693 /* MainTabBarController.swift in Sources */, B56DB3D22049BFAA00D4AA8E /* WooCommerce.xcdatamodeld in Sources */, B50911342049E493007D25DC /* Order.swift in Sources */, + B5D1AFBA20BC515600DB0E8C /* UIColor+Woo.swift in Sources */, CE1CCB4B20570B1F000EE3AC /* OrderListCell.swift in Sources */, + B5D1AFC020BC67C200DB0E8C /* WooConstants.swift in Sources */, CE1F512920697F0100C6C810 /* UIFont+Helpers.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; From de4b5e8288272a75bf498b22affb0c3fe05d6fe4 Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Mon, 28 May 2018 14:05:43 -0300 Subject: [PATCH 13/20] UIImage+Wo: Removes extra space --- WooCommerce/Classes/Extensions/UIImage+Woo.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WooCommerce/Classes/Extensions/UIImage+Woo.swift b/WooCommerce/Classes/Extensions/UIImage+Woo.swift index 31716b18b8f..b76dc6c02ee 100644 --- a/WooCommerce/Classes/Extensions/UIImage+Woo.swift +++ b/WooCommerce/Classes/Extensions/UIImage+Woo.swift @@ -4,7 +4,7 @@ import UIKit /// WooCommerce UIImage Assets /// -extension UIImage { +extension UIImage { /// Jetpack Logo Image /// From 596ce0ce8f0be957fb0e26dfc992df0eab453017 Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Mon, 28 May 2018 14:22:55 -0300 Subject: [PATCH 14/20] LoginPrologueViewController: Fixing UI Glitch --- .../Authentication/Prologue/LoginPrologueViewController.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift b/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift index 7d3b46b4e06..765b03338f7 100644 --- a/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift +++ b/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift @@ -76,6 +76,7 @@ private extension LoginPrologueViewController { func setupLoginButton() { let title = NSLocalizedString("Log in with Jetpack", comment: "Authentication Login Button") loginButton.setTitle(title, for: .normal) + loginButton.backgroundColor = .clear } } From 8830c0debc2943f0c5ebf5a363614461e8e86f21 Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Mon, 28 May 2018 14:41:44 -0300 Subject: [PATCH 15/20] LoginPrologueViewController: Adding shadow --- .../Prologue/LoginPrologueViewController.swift | 11 +++++++++++ .../Prologue/LoginPrologueViewController.xib | 15 ++++++++------- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift b/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift index 765b03338f7..71324638545 100644 --- a/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift +++ b/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.swift @@ -8,6 +8,10 @@ import WordPressAuthenticator /// class LoginPrologueViewController: UIViewController { + /// White-Background View, to be placed surrounding the bottom area. + /// + @IBOutlet var backgroundView: UIView! + /// Label to be displayed at the top of the Prologue. /// @IBOutlet var upperLabel: UILabel! @@ -36,7 +40,9 @@ class LoginPrologueViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() + setupMainView() + setupBackgroundView() setupJetpackImage() setupDisclaimerLabel() setupUpperLabel() @@ -58,6 +64,11 @@ private extension LoginPrologueViewController { view.backgroundColor = StyleManager.wooCommerceBrandColor } + func setupBackgroundView() { + backgroundView.layer.masksToBounds = false + backgroundView.layer.shadowOpacity = 0.5 + } + func setupUpperLabel() { upperLabel.text = NSLocalizedString("Check your WooCommerce store on the go, fulfill your orders and get notifications of new sales.", comment: "Login Prologue Legend") upperLabel.font = UIFont.font(forStyle: .subheadline, weight: .bold) diff --git a/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.xib b/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.xib index bbb7efdfb1b..d1966264bdf 100644 --- a/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.xib +++ b/WooCommerce/Classes/Authentication/Prologue/LoginPrologueViewController.xib @@ -12,6 +12,7 @@ + @@ -24,8 +25,14 @@ + + + + + + - + @@ -79,12 +86,6 @@ L3 - - - - - -