diff --git a/Kickstarter-iOS/Locales/Base.lproj/Localizable.strings b/Kickstarter-iOS/Locales/Base.lproj/Localizable.strings index 631087200f..aa2ca1723f 100644 --- a/Kickstarter-iOS/Locales/Base.lproj/Localizable.strings +++ b/Kickstarter-iOS/Locales/Base.lproj/Localizable.strings @@ -62,7 +62,6 @@ "Change_payment_method" = "Change payment method"; "Chat" = "Chat"; "Check_back_later_for_an_update_on_your_export" = "Check back later for an update on your export progress."; -"Check_your_payment_details" = "Check your payment details"; "Chooses_location_for_shipping" = "Chooses %{location} for shipping."; "Close_live_stream" = "Close live stream"; "Close_project" = "Close project"; @@ -167,7 +166,6 @@ "Find_projects_youll_love_and_help_bring" = "Find projects you’ll love and help bring creative ideas to life."; "Find_projects_youll_love_in_art_design_film" = "Find projects you’ll love in art, design, film, games, music, and more. Once you back a project, you’ll see all your activity here."; "First_created" = "First created"; -"Fix" = "Fix"; "Follow_friend_name" = "Follow %{friend_name}"; "Follow_friends" = "Follow friends"; "Follow_more_friends" = "Follow more friends"; @@ -480,8 +478,6 @@ "View_your_reward" = "View your reward"; "Watch_live" = "Watch live"; "We_couldnt_find_anything_for_search_term" = "We couldn't find anything for “%{search_term}”."; -"We_couldnt_process_your_pledge" = "We couldn't process your pledge."; -"We_think_youll_like_these_too" = "We think you’ll like these, too"; "We_use_your_activity_internally_to_make_recommendations_for_you" = "We use your activity internally to make recommendations for you. Turn recommendations off to opt out of this."; "We_ve_been_unable_to_send_email" = "We've been unable to send email to this address. Please make sure it is typed correctly."; "We_were_unable_to_connect_to_the_live_stream_chat" = "We were unable to connect to the live stream chat."; diff --git a/Kickstarter-iOS/Locales/de.lproj/Localizable.strings b/Kickstarter-iOS/Locales/de.lproj/Localizable.strings index 75f9041bd9..7ca1881229 100644 --- a/Kickstarter-iOS/Locales/de.lproj/Localizable.strings +++ b/Kickstarter-iOS/Locales/de.lproj/Localizable.strings @@ -62,7 +62,6 @@ "Change_payment_method" = "Zahlungsmethode ändern"; "Chat" = "Chat"; "Check_back_later_for_an_update_on_your_export" = "Der Fortschritt des Exports wird in Kürze verfügbar sein- schau später noch einmal vorbei."; -"Check_your_payment_details" = "Überprüfe die Daten deiner Zahlungsweise"; "Chooses_location_for_shipping" = "Legt %{location} als Versandort fest."; "Close_live_stream" = "Live-Stream schließen"; "Close_project" = "Projekt schließen"; @@ -167,7 +166,6 @@ "Find_projects_youll_love_and_help_bring" = "Finde Projekte, die zu dir passen und hilf mit bei der Umsetzung neuer, kreativer Ideen."; "Find_projects_youll_love_in_art_design_film" = "Finde Projekte nach deinem Geschmack - in Kunst, Design, Film, Spiele, Musik und vielen anderen Kategorien. Wenn du ein Projekt unterstützt hast, wird deren Aktivität hier angezeigt."; "First_created" = "Erstes Projekt"; -"Fix" = "Korrigieren"; "Follow_friend_name" = "%{friend_name} folgen."; "Follow_friends" = "Freunden folgen"; "Follow_more_friends" = "Folge noch mehr Freunden"; @@ -480,8 +478,6 @@ "View_your_reward" = "Belohnung ansehen"; "Watch_live" = "Live ansehen"; "We_couldnt_find_anything_for_search_term" = "Es wurden keine Ergebnisse für die Suche \"%{search_term}\" gefunden."; -"We_couldnt_process_your_pledge" = "Dein Finanzierungsbeitrag konnte nicht bearbeitet werden."; -"We_think_youll_like_these_too" = "We think you’ll like these, too"; "We_use_your_activity_internally_to_make_recommendations_for_you" = "Deine Aktivitäten werden intern genutzt, um dir Empfehlungen zu unterbreiten. Um dies zu deaktivieren, wähle \"Empfehlungen\" einfach ab."; "We_ve_been_unable_to_send_email" = "Wir konnten keine E-Mails an diese Adresse senden. Bitte prüfe, ob sie richtig eingegeben wurde."; "We_were_unable_to_connect_to_the_live_stream_chat" = "Es konnte leider keine Verbindung zum Chat des Live-Streams hergestellt werden."; diff --git a/Kickstarter-iOS/Locales/es.lproj/Localizable.strings b/Kickstarter-iOS/Locales/es.lproj/Localizable.strings index bd1d015284..d5312d68c1 100644 --- a/Kickstarter-iOS/Locales/es.lproj/Localizable.strings +++ b/Kickstarter-iOS/Locales/es.lproj/Localizable.strings @@ -62,7 +62,6 @@ "Change_payment_method" = "Cambiar método de pago"; "Chat" = "Chat"; "Check_back_later_for_an_update_on_your_export" = "Vuelve más tarde para obtener una actualización sobre tu progreso de exportación."; -"Check_your_payment_details" = "Revisa tu información de pago"; "Chooses_location_for_shipping" = "Destino determinado: %{location}."; "Close_live_stream" = "Cerrar Live Stream"; "Close_project" = "Cerrar proyecto"; @@ -167,7 +166,6 @@ "Find_projects_youll_love_and_help_bring" = "Aquí encuentras proyectos a tu gusto - ¡tu contribución ayudará a hacerlos realidad!"; "Find_projects_youll_love_in_art_design_film" = "Proyectos a tu gusto - en arte, diseño, cine, juegos, música y otras categorías. Una vez que hayas patrocinado un proyecto, verás todas las actividades pertinentes aquí."; "First_created" = "Primer proyecto creado"; -"Fix" = "Corregir"; "Follow_friend_name" = "Seguir a %{friend_name}."; "Follow_friends" = "Seguir amigos"; "Follow_more_friends" = "Seguir a más amigos"; @@ -480,8 +478,6 @@ "View_your_reward" = "Mostrar recompensa"; "Watch_live" = "Ver en vivo"; "We_couldnt_find_anything_for_search_term" = "La búsqueda \"%{search_term}\" no dio resultados."; -"We_couldnt_process_your_pledge" = "No pudimos procesar tu contribución."; -"We_think_youll_like_these_too" = "We think you’ll like these, too"; "We_use_your_activity_internally_to_make_recommendations_for_you" = "Utilizamos tu actividad internamente para hacerte recomendaciones. Desactiva las recomendaciones si no quieres recibirlas."; "We_ve_been_unable_to_send_email" = "No pudimos enviar el correo electrónico a esta dirección. Asegúrate de que esté escrita correctamente."; "We_were_unable_to_connect_to_the_live_stream_chat" = "No se pudo conectar al chat de live stream."; diff --git a/Kickstarter-iOS/Locales/fr.lproj/Localizable.strings b/Kickstarter-iOS/Locales/fr.lproj/Localizable.strings index af0f2ecdd3..826c1b85b6 100644 --- a/Kickstarter-iOS/Locales/fr.lproj/Localizable.strings +++ b/Kickstarter-iOS/Locales/fr.lproj/Localizable.strings @@ -62,7 +62,6 @@ "Change_payment_method" = "Changer de moyen de paiement"; "Chat" = "Chat"; "Check_back_later_for_an_update_on_your_export" = "Repassez plus tard pour suivre la préparation de votre exportation."; -"Check_your_payment_details" = "Check your payment details"; "Chooses_location_for_shipping" = "Sélectionne %{location} pour la livraison."; "Close_live_stream" = "Fermer la diffusion en direct"; "Close_project" = "Fermer le projet"; @@ -167,7 +166,6 @@ "Find_projects_youll_love_and_help_bring" = "Découvrez de beaux projets et participez à la concrétisation d'idées créatives."; "Find_projects_youll_love_in_art_design_film" = "Découvrez des projets que vous allez adorer : art, design, cinéma, jeux, musique et plus encore. L'activité des projets que vous soutenez s'affichera ici."; "First_created" = "Premier projet créé"; -"Fix" = "Corriger"; "Follow_friend_name" = "Suivre %{friend_name}"; "Follow_friends" = "Suivez vos amis"; "Follow_more_friends" = "Suivre plus d'amis"; @@ -480,8 +478,6 @@ "View_your_reward" = "Afficher ma récompense"; "Watch_live" = "Regarder en direct"; "We_couldnt_find_anything_for_search_term" = "Pas de résultats pour « %{search_term} »."; -"We_couldnt_process_your_pledge" = "Impossible de traiter votre engagement."; -"We_think_youll_like_these_too" = "D'autres projets qui pourraient vous plaire"; "We_use_your_activity_internally_to_make_recommendations_for_you" = "À l'interne, nous nous servons de vos activités pour vous faire des recommandations. Si vous ne souhaitez pas participer, nous vous invitons à désactiver vos recommandations."; "We_ve_been_unable_to_send_email" = "Échec de l'envoi. Veuillez vérifier l'orthographe de votre adresse e-mail."; "We_were_unable_to_connect_to_the_live_stream_chat" = "Connexion au chat en direct impossible."; diff --git a/Kickstarter-iOS/Locales/ja.lproj/Localizable.strings b/Kickstarter-iOS/Locales/ja.lproj/Localizable.strings index 618d1dae96..28c7723af7 100644 --- a/Kickstarter-iOS/Locales/ja.lproj/Localizable.strings +++ b/Kickstarter-iOS/Locales/ja.lproj/Localizable.strings @@ -62,7 +62,6 @@ "Change_payment_method" = "支払方法の変更"; "Chat" = "チャット"; "Check_back_later_for_an_update_on_your_export" = "しばらくしてからエクスポートの進捗状況を確認してください。"; -"Check_your_payment_details" = "お支払い情報をご確認ください"; "Chooses_location_for_shipping" = "配送先%{location} を選択"; "Close_live_stream" = "ライブ配信を閉じる"; "Close_project" = "プロジェクトを閉じる"; @@ -167,7 +166,6 @@ "Find_projects_youll_love_and_help_bring" = "お気に入りを見つけて、クリエイティブなプロジェクトに生命を吹き込もう。"; "Find_projects_youll_love_in_art_design_film" = "お気に入りを見つけて、クリエイティブなプロジェクトに生命を吹き込もう。"; "First_created" = "1つめのプロジェクト"; -"Fix" = "修正する"; "Follow_friend_name" = "%{friend_name} をフォロー"; "Follow_friends" = "友達をフォロー"; "Follow_more_friends" = "もっと友達をフォローする"; @@ -480,8 +478,6 @@ "View_your_reward" = "リワードをみる"; "Watch_live" = "ライブをみる"; "We_couldnt_find_anything_for_search_term" = "「%{search_term}」に一致するものがありませんでした。"; -"We_couldnt_process_your_pledge" = "プレッジを処理できませんでした。"; -"We_think_youll_like_these_too" = "その他おすすめプロジェクト"; "We_use_your_activity_internally_to_make_recommendations_for_you" = "あなたのアクティビティをもとにおすすめの提供を行っています。オプトアウトするにはおすすめ機能をオフにしてください。"; "We_ve_been_unable_to_send_email" = "このアドレスにメールを送信できませんでした。メールアドレスが正確に入力されていることをご確認ください。"; "We_were_unable_to_connect_to_the_live_stream_chat" = "ライブ配信への接続に失敗。"; diff --git a/Kickstarter-iOS/Views/Controllers/ProjectPamphletViewController.swift b/Kickstarter-iOS/Views/Controllers/ProjectPamphletViewController.swift index 66d8c519d7..bfcdd03d06 100644 --- a/Kickstarter-iOS/Views/Controllers/ProjectPamphletViewController.swift +++ b/Kickstarter-iOS/Views/Controllers/ProjectPamphletViewController.swift @@ -29,11 +29,6 @@ public final class ProjectPamphletViewController: UIViewController { PledgeCTAContainerView(frame: .zero) |> \.translatesAutoresizingMaskIntoConstraints .~ false }() - private let pledgeCTAButton: UIButton = { - MultiLineButton(type: .custom) - |> \.translatesAutoresizingMaskIntoConstraints .~ false - }() - public static func configuredWith( projectOrParam: Either, refTag: RefTag? @@ -162,10 +157,10 @@ public final class ProjectPamphletViewController: UIViewController { self?.navBarTopConstraint.constant = value } - self.viewModel.outputs.project + self.viewModel.outputs.projectAndUser .observeForUI() - .observeValues { [weak self] project in - self?.pledgeCTAContainerView.configureWith(project: project) + .observeValues { [weak self] project, user in + self?.pledgeCTAContainerView.configureWith(project: project, user: user) } } diff --git a/Kickstarter-iOS/Views/Controllers/ProjectPamphletViewControllerTests.swift b/Kickstarter-iOS/Views/Controllers/ProjectPamphletViewControllerTests.swift index 0d7308a16c..e0c2817493 100644 --- a/Kickstarter-iOS/Views/Controllers/ProjectPamphletViewControllerTests.swift +++ b/Kickstarter-iOS/Views/Controllers/ProjectPamphletViewControllerTests.swift @@ -110,42 +110,13 @@ internal final class ProjectPamphletViewControllerTests: TestCase { } } - func testBacker_LiveProject_Error_NativeCheckout_Enabled_Landscape() { - let config = Config.template - |> \.features .~ [Feature.checkout.rawValue: true] - let currentUser = User.template - let backing = Backing.template - |> Backing.lens.status .~ .errored - let backedProject = Project.cosmicSurgery - |> Project.lens.photo.full .~ "" - |> Project.lens.personalization.isBacking .~ true - |> Project.lens.personalization.backing .~ backing - |> Project.lens.state .~ .live - - [Device.phone4inch, Device.phone5_5inch, Device.phone5_8inch].forEach { device in - let language = Language.en - withEnvironment(config: config, currentUser: currentUser, language: language) { - let vc = ProjectPamphletViewController.configuredWith( - projectOrParam: .left(backedProject), refTag: nil - ) - - let (parent, _) = traitControllers(device: device, orientation: .landscape, child: vc) - parent.view.frame.size.height = device == .pad ? 1_200 : parent.view.frame.size.height - - FBSnapshotVerifyView(vc.view, identifier: "lang_\(language)_device_\(device)", tolerance: 0.01) - } - } - } - func testBacker_NonLiveProject_NativeCheckout_Enabled_Landscape() { let config = Config.template |> \.features .~ [Feature.checkout.rawValue: true] let currentUser = User.template - let backing = Backing.template let backedProject = Project.cosmicSurgery |> Project.lens.photo.full .~ "" |> Project.lens.personalization.isBacking .~ true - |> Project.lens.personalization.backing .~ backing |> Project.lens.state .~ .successful [Device.phone4inch, Device.phone5_5inch, Device.phone5_8inch].forEach { device in diff --git a/Kickstarter-iOS/Views/PledgeCTAContainerView.swift b/Kickstarter-iOS/Views/PledgeCTAContainerView.swift index a2408fb2fd..29d1ae0bd9 100644 --- a/Kickstarter-iOS/Views/PledgeCTAContainerView.swift +++ b/Kickstarter-iOS/Views/PledgeCTAContainerView.swift @@ -3,24 +3,17 @@ import Library import Prelude import UIKit -private enum Layout { - enum Button { - static let height: CGFloat = 48.0 - static let width: CGFloat = 98.0 - } -} - final class PledgeCTAContainerView: UIView { // MARK: - Properties private let vm: PledgeCTAContainerViewViewModelType = PledgeCTAContainerViewViewModel() - private lazy var titleAndSubtitleStackView: UIStackView = { + private lazy var amountAndRewardTitleStackView: UIStackView = { UIStackView(frame: .zero) |> \.translatesAutoresizingMaskIntoConstraints .~ false }() - private lazy var subtitleLabel: UILabel = { UILabel(frame: .zero) }() + private lazy var amountOrRewardLabel: UILabel = { UILabel(frame: .zero) }() private(set) lazy var pledgeCTAButton: UIButton = { MultiLineButton(type: .custom) |> \.translatesAutoresizingMaskIntoConstraints .~ false @@ -36,7 +29,7 @@ final class PledgeCTAContainerView: UIView { |> \.translatesAutoresizingMaskIntoConstraints .~ false }() - private lazy var titleLabel: UILabel = { UILabel(frame: .zero) }() + private lazy var youreABackerLabel: UILabel = { UILabel(frame: .zero) }() // MARK: - Lifecycle @@ -47,16 +40,14 @@ final class PledgeCTAContainerView: UIView { |> ksr_addSubviewToParent() |> ksr_constrainViewToEdgesInParent() - _ = ([self.titleLabel, self.subtitleLabel], self.titleAndSubtitleStackView) + _ = ([self.youreABackerLabel, self.amountOrRewardLabel], self.amountAndRewardTitleStackView) |> ksr_addArrangedSubviewsToStackView() - _ = ([self.titleAndSubtitleStackView, self.spacer, self.pledgeCTAButton], self.rootStackView) + _ = ([self.amountAndRewardTitleStackView, self.spacer, self.pledgeCTAButton], self.rootStackView) |> ksr_addArrangedSubviewsToStackView() NSLayoutConstraint.activate([ - self.pledgeCTAButton.heightAnchor.constraint(greaterThanOrEqualToConstant: Layout.Button.height), - self.pledgeCTAButton.widthAnchor.constraint(greaterThanOrEqualToConstant: Layout.Button.width), - self.rootStackView.topAnchor.constraint(equalTo: self.layoutMarginsGuide.topAnchor) + self.pledgeCTAButton.heightAnchor.constraint(greaterThanOrEqualToConstant: Styles.minTouchSize.height) ]) self.bindViewModel() @@ -73,30 +64,29 @@ final class PledgeCTAContainerView: UIView { let isAccessibilityCategory = self.traitCollection.preferredContentSizeCategory.isAccessibilityCategory - _ = self.titleAndSubtitleStackView + _ = self.amountAndRewardTitleStackView |> \.axis .~ NSLayoutConstraint.Axis.vertical |> \.isLayoutMarginsRelativeArrangement .~ true - |> \.spacing .~ 0 + + _ = self.amountOrRewardLabel + |> \.font .~ UIFont.ksr_caption1(size: 14) + |> \.textColor .~ UIColor.ksr_dark_grey_500 + |> \.numberOfLines .~ 0 _ = self.pledgeCTAButton |> pledgeCTAButtonStyle( isAccessibilityCategory, - amountAndRewardTitleStackViewIsHidden: self.titleAndSubtitleStackView.isHidden + amountAndRewardTitleStackViewIsHidden: self.amountAndRewardTitleStackView.isHidden ) _ = self.rootStackView |> adaptableStackViewStyle(isAccessibilityCategory) |> \.isLayoutMarginsRelativeArrangement .~ true |> \.layoutMargins .~ UIEdgeInsets.init(topBottom: Styles.grid(3), leftRight: Styles.grid(3)) - |> \.alignment .~ .center - _ = self.titleLabel - |> \.font .~ UIFont.ksr_callout().bolded - |> \.numberOfLines .~ 0 - - _ = self.subtitleLabel - |> \.font .~ UIFont.ksr_caption1().bolded - |> \.textColor .~ UIColor.ksr_dark_grey_500 + _ = self.youreABackerLabel + |> \.font .~ UIFont.ksr_headline(size: 14) + |> \.text %~ { _ in Strings.Youre_a_backer() } |> \.numberOfLines .~ 0 } @@ -105,15 +95,8 @@ final class PledgeCTAContainerView: UIView { override func bindViewModel() { super.bindViewModel() - self.vm.outputs.buttonTitleTextColor - .observeForUI() - .observeValues { [weak self] textColor in - self?.pledgeCTAButton.setTitleColor(textColor, for: .normal) - } - - self.titleAndSubtitleStackView.rac.hidden = self.vm.outputs.stackViewIsHidden - self.titleLabel.rac.text = self.vm.outputs.titleText - self.subtitleLabel.rac.text = self.vm.outputs.subtitleText + self.amountAndRewardTitleStackView.rac.hidden = self.vm.outputs.stackViewIsHidden + self.amountOrRewardLabel.rac.text = self.vm.outputs.rewardTitle self.pledgeCTAButton.rac.backgroundColor = self.vm.outputs.buttonBackgroundColor self.pledgeCTAButton.rac.title = self.vm.outputs.buttonTitleText self.spacer.rac.hidden = self.vm.outputs.spacerIsHidden @@ -121,8 +104,8 @@ final class PledgeCTAContainerView: UIView { // MARK: - Configuration - func configureWith(project: Project) { - self.vm.inputs.configureWith(project: project) + func configureWith(project: Project, user: User) { + self.vm.inputs.configureWith(project: project, user: user) } } @@ -148,8 +131,10 @@ private func pledgeCTAButtonStyle( return button |> roundedStyle(cornerRadius: 12) + |> UIButton.lens.titleColor(for: .normal) .~ UIColor.white |> UIButton.lens.titleLabel.font .~ UIFont.ksr_headline(size: 15) |> UIButton.lens.layer.borderWidth .~ 0 + |> UIButton.lens.titleEdgeInsets .~ .init(topBottom: Styles.grid(1), leftRight: Styles.grid(2)) |> (UIButton.lens.titleLabel .. UILabel.lens.textAlignment) .~ NSTextAlignment.center |> (UIButton.lens.titleLabel .. UILabel.lens.lineBreakMode) .~ lineBreakMode } diff --git a/Kickstarter.xcodeproj/project.pbxproj b/Kickstarter.xcodeproj/project.pbxproj index 8a6fb965c9..88da338bdc 100644 --- a/Kickstarter.xcodeproj/project.pbxproj +++ b/Kickstarter.xcodeproj/project.pbxproj @@ -1096,8 +1096,6 @@ D7774466217A345D008D679F /* UpdateUserProfileMutation .swift in Sources */ = {isa = PBXBuildFile; fileRef = D77743E2217A2D67008D679F /* UpdateUserProfileMutation .swift */; }; D78E038E229305E90043E92F /* PledgeStateCTAType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D78E0355229305E20043E92F /* PledgeStateCTAType.swift */; }; D78E039022930DF80043E92F /* PledgeCTAContainerViewViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D78E038F22930DF80043E92F /* PledgeCTAContainerViewViewModelTests.swift */; }; - D78E4E482188CB4300E99295 /* UIButton+HapticFeedback.swift in Sources */ = {isa = PBXBuildFile; fileRef = D78E4E472188CB4300E99295 /* UIButton+HapticFeedback.swift */; }; - D78E4EE3218909DC00E99295 /* UIFeedbackGenerator+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D78E4EE2218909DC00E99295 /* UIFeedbackGenerator+Extensions.swift */; }; D79440572203A63300D0A747 /* CreatePaymentSourceEnvelope.swift in Sources */ = {isa = PBXBuildFile; fileRef = D79440562203A63300D0A747 /* CreatePaymentSourceEnvelope.swift */; }; D79440902208970E00D0A747 /* CreatePaymentSourceTemplate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D794408F2208970E00D0A747 /* CreatePaymentSourceTemplate.swift */; }; D796867C20FE655300E54C61 /* SettingsFollowCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D796867B20FE655300E54C61 /* SettingsFollowCellViewModel.swift */; }; @@ -2314,8 +2312,6 @@ D777442E217A3382008D679F /* ChangeCurrencyInput.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeCurrencyInput.swift; sourceTree = ""; }; D78E0355229305E20043E92F /* PledgeStateCTAType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PledgeStateCTAType.swift; sourceTree = ""; }; D78E038F22930DF80043E92F /* PledgeCTAContainerViewViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PledgeCTAContainerViewViewModelTests.swift; sourceTree = ""; }; - D78E4E472188CB4300E99295 /* UIButton+HapticFeedback.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIButton+HapticFeedback.swift"; sourceTree = ""; }; - D78E4EE2218909DC00E99295 /* UIFeedbackGenerator+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIFeedbackGenerator+Extensions.swift"; sourceTree = ""; }; D79076F8207BC161008014EC /* CrossDissolveTransitionAnimator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CrossDissolveTransitionAnimator.swift; sourceTree = ""; }; D79440562203A63300D0A747 /* CreatePaymentSourceEnvelope.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatePaymentSourceEnvelope.swift; sourceTree = ""; }; D794408F2208970E00D0A747 /* CreatePaymentSourceTemplate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatePaymentSourceTemplate.swift; sourceTree = ""; }; @@ -3340,8 +3336,6 @@ D7A86A3A1F324EB300C7DA53 /* MostPopularSearchProjectCellViewModelTests.swift */, D63BBD34217FAB85007E01F0 /* PaymentMethodsViewModel.swift */, D66FB347218212B700A27BCC /* PaymentMethodsViewModelTests.swift */, - D7E20EA5228B4AC200BA61A0 /* PledgeCTAContainerViewViewModel.swift */, - D78E038F22930DF80043E92F /* PledgeCTAContainerViewViewModelTests.swift */, 3706408122A8A66E00889CBD /* PledgeAmountCellViewModel.swift */, 3706408322A8A68600889CBD /* PledgeAmountCellViewModelTests.swift */, D7E20EA5228B4AC200BA61A0 /* PledgeCTAContainerViewViewModel.swift */, @@ -3398,8 +3392,6 @@ 77D8DBCC22A82C5C00454120 /* RewardCellViewModelTests.swift */, 77EFBAE12268D44D00DA5C3C /* RewardsCollectionViewModel.swift */, 77C7B653226E0E54001101AC /* RewardsCollectionViewModelTests.swift */, - A75A9DBE1D6F3A3000603D1D /* RewardShippingPickerViewModel.swift */, - A7ED1FA31E831C5C00BFFA01 /* RewardShippingPickerViewModelTests.swift */, D7A37CCE1E2FF93D00EA066D /* SearchEmptyStateCellViewModel.swift */, A7ED1F7B1E831C5C00BFFA01 /* SearchEmptyStateCellViewModelTests.swift */, A7F441AA1D005A9400FE6FC5 /* SearchViewModel.swift */, diff --git a/Library/PledgeStateCTAType.swift b/Library/PledgeStateCTAType.swift index d7f8202cd1..c80d397bd2 100644 --- a/Library/PledgeStateCTAType.swift +++ b/Library/PledgeStateCTAType.swift @@ -1,31 +1,13 @@ import UIKit public enum PledgeStateCTAType { - case fix case pledge case manage case viewBacking case viewRewards - public var buttonTitle: String { - switch self { - case .fix: - return Strings.Fix() - case .pledge: - return Strings.Back_this_project() - case .manage: - return Strings.Manage() - case .viewBacking: - return Strings.View_your_pledge() - case .viewRewards: - return Strings.View_rewards() - } - } - public var buttonBackgroundColor: UIColor { switch self { - case .fix: - return .ksr_apricot_600 case .pledge: return .ksr_green_500 case .manage: @@ -35,41 +17,16 @@ public enum PledgeStateCTAType { } } - public var buttonTitleTextColor: UIColor { - switch self { - case .pledge, .manage, .viewBacking, .viewRewards: - return .white - case .fix: - return .ksr_soft_black - } - } - - public var stackViewIsHidden: Bool { - switch self { - case .pledge, .viewBacking, .viewRewards: - return true - case .fix, .manage: - return false - } - } - - public var titleLabel: String? { + public var buttonTitle: String { switch self { - case .fix: - return Strings.Check_your_payment_details() + case .pledge: + return Strings.Back_this_project() case .manage: - return Strings.Youre_a_backer() - default: - return nil - } - } - - public var subtitleLabel: String? { - switch self { - case .fix: - return Strings.We_couldnt_process_your_pledge() - default: - return nil + return Strings.Manage() + case .viewBacking: + return Strings.View_your_pledge() + case .viewRewards: + return Strings.View_rewards() } } @@ -77,7 +34,7 @@ public enum PledgeStateCTAType { switch self { case .pledge, .viewBacking, .viewRewards: return true - case .fix, .manage: + case .manage: return false } } diff --git a/Library/Strings.swift b/Library/Strings.swift index a3282b4337..a5b35efe83 100644 --- a/Library/Strings.swift +++ b/Library/Strings.swift @@ -1033,23 +1033,6 @@ contributeurs" substitutions: [:] ) } - /** - "Check your payment details" - - - **en**: "Check your payment details" - - **de**: "Überprüfe die Daten deiner Zahlungsweise" - - **es**: "Revisa tu información de pago" - - **fr**: "Check your payment details" - - **ja**: "お支払い情報をご確認ください" - */ - public static func Check_your_payment_details() -> String { - return localizedString( - key: "Check_your_payment_details", - defaultValue: "Check your payment details", - count: nil, - substitutions: [:] - ) - } /** "Chooses %{location} for shipping." @@ -2750,23 +2733,6 @@ contributeurs" substitutions: [:] ) } - /** - "Fix" - - - **en**: "Fix" - - **de**: "Korrigieren" - - **es**: "Corregir" - - **fr**: "Corriger" - - **ja**: "修正する" - */ - public static func Fix() -> String { - return localizedString( - key: "Fix", - defaultValue: "Fix", - count: nil, - substitutions: [:] - ) - } /** "Follow %{friend_name}" @@ -7810,40 +7776,6 @@ catch your eye?" substitutions: ["search_term": search_term] ) } - /** - "We couldn't process your pledge." - - - **en**: "We couldn't process your pledge." - - **de**: "Dein Finanzierungsbeitrag konnte nicht bearbeitet werden." - - **es**: "No pudimos procesar tu contribución." - - **fr**: "Impossible de traiter votre engagement." - - **ja**: "プレッジを処理できませんでした。" - */ - public static func We_couldnt_process_your_pledge() -> String { - return localizedString( - key: "We_couldnt_process_your_pledge", - defaultValue: "We couldn't process your pledge.", - count: nil, - substitutions: [:] - ) - } - /** - "We think you’ll like these, too" - - - **en**: "We think you’ll like these, too" - - **de**: "We think you’ll like these, too" - - **es**: "We think you’ll like these, too" - - **fr**: "D'autres projets qui pourraient vous plaire" - - **ja**: "その他おすすめプロジェクト" - */ - public static func We_think_youll_like_these_too() -> String { - return localizedString( - key: "We_think_youll_like_these_too", - defaultValue: "We think you’ll like these, too", - count: nil, - substitutions: [:] - ) - } /** "We use your activity internally to make recommendations for you. Turn recommendations off to opt out of this." @@ -16720,23 +16652,6 @@ iOSの場合、設定からFacebookのアクセスを許可してください。 substitutions: ["category_count": Format.wholeNumber(category_count)] ) } - /** - "%{category_count} categories backed" - - - **en**: "%{category_count} categories backed" - - **de**: "In %{category_count} Kategorien" - - **es**: "en %{category_count} categorías" - - **fr**: "%{category_count} catégories soutenues" - - **ja**: "%{category_count} カテゴリーへバック" - */ - public static func profile_category_count_categories_backed_other(category_count: String) -> String { - return localizedString( - key: "profile.category_count_categories_backed.other", - defaultValue: "%{category_count} categories backed", - count: nil, - substitutions: ["category_count": category_count] - ) - } /** "%{category_name} (%{backed_projects_count})" diff --git a/Library/Styles/Colors.swift b/Library/Styles/Colors.swift index 8ec477067d..068ae196bf 100644 --- a/Library/Styles/Colors.swift +++ b/Library/Styles/Colors.swift @@ -188,11 +188,6 @@ extension UIColor { return .hex(0x1A8CFF) } - // 0x2b60ff - public static var ksr_blue: UIColor { - return .hex(0x2b60ff) - } - /// 0xF7AA1A public static var ksr_orange_400: UIColor { return .hex(0xF7AA1A) diff --git a/Library/ViewModels/PledgeCTAContainerViewViewModel.swift b/Library/ViewModels/PledgeCTAContainerViewViewModel.swift index 9686235f2c..47ce30ef7a 100644 --- a/Library/ViewModels/PledgeCTAContainerViewViewModel.swift +++ b/Library/ViewModels/PledgeCTAContainerViewViewModel.swift @@ -4,17 +4,15 @@ import ReactiveExtensions import ReactiveSwift public protocol PledgeCTAContainerViewViewModelInputs { - func configureWith(project: Project) + func configureWith(project: Project, user: User) } public protocol PledgeCTAContainerViewViewModelOutputs { var buttonBackgroundColor: Signal { get } var buttonTitleText: Signal { get } - var buttonTitleTextColor: Signal { get } + var rewardTitle: Signal { get } var spacerIsHidden: Signal { get } var stackViewIsHidden: Signal { get } - var subtitleText: Signal { get } - var titleText: Signal { get } } public protocol PledgeCTAContainerViewViewModelType { @@ -25,37 +23,42 @@ public protocol PledgeCTAContainerViewViewModelType { public final class PledgeCTAContainerViewViewModel: PledgeCTAContainerViewViewModelType, PledgeCTAContainerViewViewModelInputs, PledgeCTAContainerViewViewModelOutputs { public init() { - let project = self.projectProperty.signal.skipNil() - - let backing = project.map { $0.personalization.backing }.skipNil() - + let projectAndUser = self.projectAndUserProperty.signal.skipNil() + let project = projectAndUser.map(first) + + let pledgeState = project + .map(pledgeStateButton(project:)) + + let backingEvent = projectAndUser + .switchMap { project, user in + AppEnvironment.current.apiService.fetchBacking(forProject: project, forUser: user) + .materialize() + } + let backing = backingEvent.values() let projectAndBacking = Signal.combineLatest(project, backing) - - let backedProject = projectAndBacking - .filter { isTrue($0.0.personalization.isBacking ?? false) } - .map(pledgeCTA(project:backing:)) - - let nonBackedProject = project - .filter { isFalse($0.personalization.isBacking ?? true) } - .map(pledgeCTA(project:)) - - let pledgeState = Signal.merge(backedProject, nonBackedProject).map { $0 } + let stackViewAndSpacerAreHidden = pledgeState.map { $0.stackViewAndSpacerAreHidden } self.buttonTitleText = pledgeState.map { $0.buttonTitle } - self.buttonTitleTextColor = pledgeState.map { $0.buttonTitleTextColor } self.buttonBackgroundColor = pledgeState.map { $0.buttonBackgroundColor } - let stackViewAndSpacerAreHidden = pledgeState.map { $0.stackViewAndSpacerAreHidden } self.spacerIsHidden = stackViewAndSpacerAreHidden self.stackViewIsHidden = stackViewAndSpacerAreHidden - self.titleText = pledgeState.map { $0.titleLabel }.skipNil() - let text = Signal.combineLatest(project, backing, pledgeState) - self.subtitleText = text.map(subtitle(project:backing:pledgeState:)) + self.rewardTitle = projectAndBacking + .map { (project, backing) -> String in + let basicPledge = formattedAmount(for: backing) + let amount = Format.formattedCurrency( + basicPledge, + country: project.country, + omitCurrencyCode: project.stats.omitUSCurrencyCode + ).trimmed() + guard let rewardTitle = backing.reward?.title else { return "\(amount)" } + return "\(amount) • \(rewardTitle)" + } } - fileprivate let projectProperty = MutableProperty(nil) - public func configureWith(project: Project) { - self.projectProperty.value = project + fileprivate let projectAndUserProperty = MutableProperty<(Project, User)?>(nil) + public func configureWith(project: Project, user: User) { + self.projectAndUserProperty.value = (project, user) } public var inputs: PledgeCTAContainerViewViewModelInputs { return self } @@ -63,51 +66,25 @@ public final class PledgeCTAContainerViewViewModel: PledgeCTAContainerViewViewMo public let buttonBackgroundColor: Signal public let buttonTitleText: Signal - public let buttonTitleTextColor: Signal + public let rewardTitle: Signal public let spacerIsHidden: Signal public let stackViewIsHidden: Signal - public let subtitleText: Signal - public let titleText: Signal } // MARK: - Functions -private func pledgeCTA(project: Project, backing: Backing) -> PledgeStateCTAType { - switch (project.state, backing.status) { - case (.live, .errored): - return .fix - case (.live, _): - return .manage - case (_, _): - return .viewBacking - } -} - -private func pledgeCTA(project: Project) -> PledgeStateCTAType { +private func pledgeStateButton(project: Project) -> PledgeStateCTAType { + guard let projectIsBacked = project.personalization.isBacking else { return .viewRewards } switch project.state { case .live: - return .pledge + return projectIsBacked ? .manage : .pledge case .canceled, .failed, .suspended, .successful: - return .viewRewards + return projectIsBacked ? .viewBacking : .viewRewards default: return .viewRewards } } -private func subtitle(project: Project, backing: Backing, pledgeState: PledgeStateCTAType) -> String { - if pledgeState == .fix { return pledgeState.subtitleLabel ?? "" } - - let basicPledge = formattedAmount(for: backing) - let amount = Format.formattedCurrency( - basicPledge, - country: project.country, - omitCurrencyCode: project.stats.omitUSCurrencyCode - ) - - guard let rewardTitle = backing.reward?.title else { return "\(amount)" } - return "\(amount) • \(rewardTitle)" -} - private func formattedAmount(for backing: Backing) -> String { let amount = backing.amount - Double(backing.shippingAmount ?? 0) let backingAmount = floor(amount) == amount diff --git a/Library/ViewModels/PledgeCTAContainerViewViewModelTests.swift b/Library/ViewModels/PledgeCTAContainerViewViewModelTests.swift index ff649c55af..5587e53fb5 100644 --- a/Library/ViewModels/PledgeCTAContainerViewViewModelTests.swift +++ b/Library/ViewModels/PledgeCTAContainerViewViewModelTests.swift @@ -11,85 +11,65 @@ internal final class PledgeCTAContainerViewViewModelTests: TestCase { let buttonBackgroundColor = TestObserver() let buttonTitleText = TestObserver() - let buttonTitleTextColor = TestObserver() + let rewardTitle = TestObserver() let spacerIsHidden = TestObserver() let stackViewIsHidden = TestObserver() - let subtitleText = TestObserver() - let titleText = TestObserver() internal override func setUp() { super.setUp() self.vm.outputs.buttonBackgroundColor.observe(self.buttonBackgroundColor.observer) self.vm.outputs.buttonTitleText.observe(self.buttonTitleText.observer) - self.vm.outputs.buttonTitleTextColor.observe(self.buttonTitleTextColor.observer) + self.vm.outputs.rewardTitle.observe(self.rewardTitle.observer) self.vm.outputs.spacerIsHidden.observe(self.spacerIsHidden.observer) self.vm.outputs.stackViewIsHidden.observe(self.stackViewIsHidden.observer) - self.vm.outputs.subtitleText.observe(self.subtitleText.observer) - self.vm.outputs.titleText.observe(self.titleText.observer) } func testPledgeCTA_Backer_LiveProject() { let manageCTAColor: UIColor = .ksr_blue_500 let reward = .template |> Reward.lens.title .~ "Magic Lamp" - let backing = .template - |> Backing.lens.reward .~ reward let project = Project.template |> Project.lens.personalization.isBacking .~ true |> Project.lens.stats.currentCurrency .~ "USD" - |> Project.lens.personalization.backing .~ backing + let backing = .template + |> Backing.lens.reward .~ reward + let user = User.template - self.vm.inputs.configureWith(project: project) - self.buttonBackgroundColor.assertValues([manageCTAColor]) - self.buttonTitleText.assertValues([Strings.Manage()]) - self.titleText.assertValues([Strings.Youre_a_backer()]) - self.subtitleText.assertValues(["$8 • Magic Lamp"]) - self.spacerIsHidden.assertValues([false]) - self.stackViewIsHidden.assertValues([false]) + withEnvironment( + apiService: MockService(fetchBackingResponse: backing), + currentUser: user + ) { + self.vm.inputs.configureWith(project: project, user: user) + self.buttonBackgroundColor.assertValues([manageCTAColor]) + self.buttonTitleText.assertValues(["Manage"]) + self.rewardTitle.assertValues(["$8 • Magic Lamp"]) + self.spacerIsHidden.assertValues([false]) + self.stackViewIsHidden.assertValues([false]) + } } func testPledgeCTA_Backer_NonLiveProject() { let viewPledgeCTAColor: UIColor = .ksr_soft_black - let backing = Backing.template + let project = Project.template |> Project.lens.personalization.isBacking .~ true |> Project.lens.state .~ .successful - |> Project.lens.personalization.backing .~ backing + let user = User.template - self.vm.inputs.configureWith(project: project) + self.vm.inputs.configureWith(project: project, user: user) self.buttonBackgroundColor.assertValues([viewPledgeCTAColor]) self.buttonTitleText.assertValues([Strings.View_your_pledge()]) self.spacerIsHidden.assertValues([true]) self.stackViewIsHidden.assertValues([true]) } - func testPledgeCTA_Backer_LiveProject_Error() { - let viewPledgeCTAColor: UIColor = .ksr_apricot_600 - let backing = Backing.template - |> Backing.lens.status .~ .errored - let project = Project.template - |> Project.lens.personalization.isBacking .~ true - |> Project.lens.state .~ .live - |> Project.lens.personalization.backing .~ backing - - self.vm.inputs.configureWith(project: project) - self.buttonBackgroundColor.assertValues([viewPledgeCTAColor]) - self.buttonTitleText.assertValues([Strings.Fix()]) - self.titleText.assertValues([Strings.Check_your_payment_details()]) - self.subtitleText.assertValues([Strings.We_couldnt_process_your_pledge()]) - self.spacerIsHidden.assertValues([false]) - self.stackViewIsHidden.assertValues([false]) - } - func testPledgeCTA_NonBacker_LiveProject() { let pledgeCTAColor: UIColor = .ksr_green_500 let project = Project.template - |> Project.lens.personalization.backing .~ nil |> Project.lens.personalization.isBacking .~ false - |> Project.lens.state .~ .live + let user = User.template - self.vm.inputs.configureWith(project: project) - self.scheduler.advance() + self.vm.inputs.configureWith(project: project, user: user) self.buttonBackgroundColor.assertValues([pledgeCTAColor]) self.buttonTitleText.assertValues([Strings.Back_this_project()]) self.spacerIsHidden.assertValues([true]) @@ -99,12 +79,11 @@ internal final class PledgeCTAContainerViewViewModelTests: TestCase { func testPledgeCTA_NonBacker_NonLiveProject() { let viewRewardsCTAColor: UIColor = .ksr_soft_black let project = Project.template - |> Project.lens.personalization.backing .~ nil |> Project.lens.personalization.isBacking .~ false |> Project.lens.state .~ .successful + let user = User.template - self.vm.inputs.configureWith(project: project) - self.scheduler.advance() + self.vm.inputs.configureWith(project: project, user: user) self.buttonBackgroundColor.assertValues([viewRewardsCTAColor]) self.buttonTitleText.assertValues([Strings.View_rewards()]) self.spacerIsHidden.assertValues([true]) diff --git a/Library/ViewModels/ProjectPamphletViewModel.swift b/Library/ViewModels/ProjectPamphletViewModel.swift index 085e903a1b..121f22a7ca 100644 --- a/Library/ViewModels/ProjectPamphletViewModel.swift +++ b/Library/ViewModels/ProjectPamphletViewModel.swift @@ -33,8 +33,8 @@ public protocol ProjectPamphletViewModelOutputs { /// Return this value from the view's `prefersStatusBarHidden` method. var prefersStatusBarHidden: Bool { get } - /// Emits a project - var project: Signal { get } + /// Emits a project and user. + var projectAndUser: Signal<(Project, User), Never> { get } /// Emits two booleans that determine if the navigation bar should be hidden, and if it should be animated. var setNavigationBarHiddenAnimated: Signal<(Bool, Bool), Never> { get } @@ -67,6 +67,10 @@ public final class ProjectPamphletViewModel: ProjectPamphletViewModelType, Proje } } + let user = self.viewDidLoadProperty.signal + .map { AppEnvironment.current.currentUser } + .skipNil() + self.goToRewards = freshProjectAndRefTag .takeWhen(self.backThisProjectTappedProperty.signal) .map { project, refTag in @@ -74,9 +78,9 @@ public final class ProjectPamphletViewModel: ProjectPamphletViewModelType, Proje } let project = freshProjectAndRefTag - .map { project, _ in project } + .map(first) - self.project = project.map { $0 } + self.projectAndUser = Signal.combineLatest(project, user) self.configureChildViewControllersWithProject = freshProjectAndRefTag .map { project, refTag in (project, refTag) } @@ -168,7 +172,7 @@ public final class ProjectPamphletViewModel: ProjectPamphletViewModelType, Proje } public let goToRewards: Signal<(Project, RefTag?), Never> - public let project: Signal + public let projectAndUser: Signal<(Project, User), Never> public let setNavigationBarHiddenAnimated: Signal<(Bool, Bool), Never> public let setNeedsStatusBarAppearanceUpdate: Signal<(), Never> public let topLayoutConstraintConstant: Signal diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_LiveProject_Error_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_LiveProject_Error_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png deleted file mode 100644 index f2be9aa8cf..0000000000 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_LiveProject_Error_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png and /dev/null differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_LiveProject_Error_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_LiveProject_Error_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png deleted file mode 100644 index 0565850eea..0000000000 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_LiveProject_Error_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png and /dev/null differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_LiveProject_Error_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_LiveProject_Error_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png deleted file mode 100644 index bed503e6c1..0000000000 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_LiveProject_Error_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png and /dev/null differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png index 4c9c750890..ffbbdd4dd9 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png index ee4ebbd978..f5295ddb83 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png index 041557b9c1..f8e2756d7c 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png index 9c3099c036..9f9c8009e7 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png index 4ace86b2de..0250ec7811 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png index 97759a02f5..4412024df3 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_pad@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_pad@2x.png index 662936b4ea..68ec621539 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_pad@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_pad@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone4_7inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone4_7inch@2x.png index 3bf259843e..e87c61b3bb 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone4_7inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone4_7inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone4inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone4inch@2x.png index ded1da6721..ca173de9ed 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone4inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone4inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone5_5inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone5_5inch@2x.png index 558eb1628b..190696f4e9 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone5_5inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone5_5inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone5_8inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone5_8inch@2x.png index 3bf259843e..e87c61b3bb 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone5_8inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_de_device_phone5_8inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_pad@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_pad@2x.png index 974aa6ff04..fd3545a923 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_pad@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_pad@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone4_7inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone4_7inch@2x.png index 20fd633381..8931ebae6a 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone4_7inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone4_7inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone4inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone4inch@2x.png index 8dac4b1976..0cfbb05637 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone4inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone4inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone5_5inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone5_5inch@2x.png index 8483cc8778..31cedb05bc 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone5_5inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone5_5inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone5_8inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone5_8inch@2x.png index 20fd633381..8931ebae6a 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone5_8inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_en_device_phone5_8inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_pad@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_pad@2x.png index 05fcb6023a..996de5e4f0 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_pad@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_pad@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone4_7inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone4_7inch@2x.png index ca9c61aeec..faf48c05b2 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone4_7inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone4_7inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone4inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone4inch@2x.png index 4e2a3c9049..35e0f86132 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone4inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone4inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone5_5inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone5_5inch@2x.png index 86745e022b..37b7fae034 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone5_5inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone5_5inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone5_8inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone5_8inch@2x.png index ca9c61aeec..faf48c05b2 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone5_8inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_es_device_phone5_8inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_pad@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_pad@2x.png index a6c54baf7b..7b63b387e8 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_pad@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_pad@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone4_7inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone4_7inch@2x.png index 4dd81cfdd0..4304f33d4a 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone4_7inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone4_7inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone4inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone4inch@2x.png index c97a639c6b..e4b50fcd6e 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone4inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone4inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone5_5inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone5_5inch@2x.png index e817c7b028..44d1b99639 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone5_5inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone5_5inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone5_8inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone5_8inch@2x.png index 4dd81cfdd0..4304f33d4a 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone5_8inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_fr_device_phone5_8inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_pad@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_pad@2x.png index de0c8e3e32..4727cb1522 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_pad@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_pad@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone4_7inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone4_7inch@2x.png index 67b3587e6d..f7015490ca 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone4_7inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone4_7inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone4inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone4inch@2x.png index c2227fcb29..f413691f43 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone4inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone4inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone5_5inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone5_5inch@2x.png index 109d3feb0b..079c08d558 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone5_5inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone5_5inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone5_8inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone5_8inch@2x.png index 67b3587e6d..f7015490ca 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone5_8inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_LiveProject_NativeCheckout_Enabled_lang_ja_device_phone5_8inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png index 84af2564ad..b073cac637 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone4inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png index c4751416cd..988f2b4dde 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_5inch@2x.png differ diff --git a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png index 7595dc135b..8cb43e1e08 100644 Binary files a/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png and b/Screenshots/_64/Kickstarter_Framework_iOSTests.ProjectPamphletViewControllerTests/testNonBacker_NonLiveProject_NativeCheckout_Enabled_Landscape_lang_en_device_phone5_8inch@2x.png differ