Skip to content

Commit

Permalink
Revert "💲[Native Checkout] Stepper haptics (#711)" (#714)
Browse files Browse the repository at this point in the history
This reverts commit ad39509.
  • Loading branch information
justinswart authored Jun 21, 2019
1 parent ad39509 commit a79bf1b
Show file tree
Hide file tree
Showing 20 changed files with 104 additions and 344 deletions.
2 changes: 1 addition & 1 deletion Cartfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
### Internal

github "kickstarter/Kickstarter-Prelude" "c96c90b026d45839724e827f881dcba3ec812725"
github "kickstarter/Kickstarter-ReactiveExtensions" "1b12cd6236aaace5e90a75332309c15c3585e162"
github "kickstarter/Kickstarter-ReactiveExtensions" "665b5cd4941e54e5d120b80218f62d6ae0e66dac"

### 3rd Party

Expand Down
2 changes: 1 addition & 1 deletion Cartfile.resolved
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ github "Alamofire/AlamofireImage" "c41f8b0acfbb3180fe045df73596e4332c338633"
github "ReactiveCocoa/ReactiveSwift" "6.0.0"
github "facebook/facebook-objc-sdk" "v5.0.2"
github "kickstarter/Kickstarter-Prelude" "c96c90b026d45839724e827f881dcba3ec812725"
github "kickstarter/Kickstarter-ReactiveExtensions" "1b12cd6236aaace5e90a75332309c15c3585e162"
github "kickstarter/Kickstarter-ReactiveExtensions" "665b5cd4941e54e5d120b80218f62d6ae0e66dac"
github "stripe/stripe-ios" "v13.2.0"
github "thoughtbot/Argo" "39f06f089d25c111444e5a85eef64586e54756ac"
github "thoughtbot/Curry" "b6bf27ec9d711f607a8c7da9ca69ee9eaa201a22"
Expand Down
32 changes: 0 additions & 32 deletions Kickstarter-iOS/Library/SharedFunctions.swift
Original file line number Diff line number Diff line change
@@ -1,38 +1,6 @@
import Library
import UIKit

// MARK: - Haptic feedback

func generateImpactFeedback(
feedbackGenerator: UIImpactFeedbackGeneratorType = UIImpactFeedbackGenerator(style: .light)
) {
feedbackGenerator.prepare()
feedbackGenerator.impactOccurred()
}

func generateNotificationSuccessFeedback(
feedbackGenerator: UINotificationFeedbackGeneratorType = UINotificationFeedbackGenerator()
) {
feedbackGenerator.prepare()
feedbackGenerator.notificationOccurred(.success)
}

func generateNotificationWarningFeedback(
feedbackGenerator: UINotificationFeedbackGeneratorType = UINotificationFeedbackGenerator()
) {
feedbackGenerator.prepare()
feedbackGenerator.notificationOccurred(.warning)
}

func generateSelectionFeedback(
feedbackGenerator: UISelectionFeedbackGeneratorType = UISelectionFeedbackGenerator()
) {
feedbackGenerator.prepare()
feedbackGenerator.selectionChanged()
}

// MARK: - Login workflow

public func logoutAndDismiss(
viewController: UIViewController,
appEnvironment: AppEnvironmentType.Type = AppEnvironment.self,
Expand Down
60 changes: 24 additions & 36 deletions Kickstarter-iOS/Library/SharedFunctionsTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,42 +3,6 @@
import XCTest

internal final class SharedFunctionsTests: XCTestCase {
func testGenerateImpactFeedback() {
let mockFeedbackGenerator = MockImpactFeedbackGenerator()

generateImpactFeedback(feedbackGenerator: mockFeedbackGenerator)

XCTAssertTrue(mockFeedbackGenerator.prepareWasCalled)
XCTAssertTrue(mockFeedbackGenerator.impactOccurredWasCalled)
}

func testGenerateNotificationSuccessFeedback() {
let mockFeedbackGenerator = MockNotificationFeedbackGenerator()

generateNotificationSuccessFeedback(feedbackGenerator: mockFeedbackGenerator)

XCTAssertTrue(mockFeedbackGenerator.prepareWasCalled)
XCTAssertTrue(mockFeedbackGenerator.notificationOccurredWasCalled)
}

func testGenerateNotificationWarningFeedback() {
let mockFeedbackGenerator = MockNotificationFeedbackGenerator()

generateNotificationWarningFeedback(feedbackGenerator: mockFeedbackGenerator)

XCTAssertTrue(mockFeedbackGenerator.prepareWasCalled)
XCTAssertTrue(mockFeedbackGenerator.notificationOccurredWasCalled)
}

func testGenerateSelectionFeedback() {
let mockFeedbackGenerator = MockSelectionFeedbackGenerator()

generateSelectionFeedback(feedbackGenerator: mockFeedbackGenerator)

XCTAssertTrue(mockFeedbackGenerator.prepareWasCalled)
XCTAssertTrue(mockFeedbackGenerator.selectionChangedWasCalled)
}

func testLogoutAndDismiss() {
let mockAppEnvironment = MockAppEnvironment.self
let mockPushNotificationDialog = MockPushNotificationDialog.self
Expand All @@ -56,3 +20,27 @@ internal final class SharedFunctionsTests: XCTestCase {
XCTAssertTrue(mockViewController.dismissAnimatedWasCalled)
}
}

private struct MockAppEnvironment: AppEnvironmentType {
static var logoutWasCalled = false

static func logout() {
self.logoutWasCalled = true
}
}

private struct MockPushNotificationDialog: PushNotificationDialogType {
static var resetAllContextsWasCalled = false

static func resetAllContexts() {
self.resetAllContextsWasCalled = true
}
}

private class MockViewController: UIViewController {
var dismissAnimatedWasCalled = false

override func dismiss(animated _: Bool, completion _: (() -> Void)? = nil) {
self.dismissAnimatedWasCalled = true
}
}
31 changes: 0 additions & 31 deletions Kickstarter-iOS/Library/UIFeedbackGeneratorType.swift

This file was deleted.

27 changes: 0 additions & 27 deletions Kickstarter-iOS/TestHelpers/MockAppEnvironment.swift

This file was deleted.

42 changes: 0 additions & 42 deletions Kickstarter-iOS/TestHelpers/MockFeedbackGenerator.swift

This file was deleted.

14 changes: 10 additions & 4 deletions Kickstarter-iOS/Views/Cells/DiscoveryPostcardCell.swift
Original file line number Diff line number Diff line change
Expand Up @@ -257,15 +257,21 @@ internal final class DiscoveryPostcardCell: UITableViewCell, ValueCell {

self.watchProjectViewModel.outputs.generateImpactFeedback
.observeForUI()
.observeValues { _ in generateImpactFeedback() }
.observeValues { [weak self] in
self?.saveButton.generateImpactFeedback(style: .light)
}

self.watchProjectViewModel.outputs.generateNotificationSuccessFeedback
self.watchProjectViewModel.outputs.generateSuccessFeedback
.observeForUI()
.observeValues { generateNotificationSuccessFeedback() }
.observeValues { [weak self] in
self?.saveButton.generateSuccessFeedback()
}

self.watchProjectViewModel.outputs.generateSelectionFeedback
.observeForUI()
.observeValues { generateSelectionFeedback() }
.observeValues { [weak self] in
self?.saveButton.generateSelectionFeedback()
}

self.viewModel.outputs.projectCategoryName
.signal
Expand Down
23 changes: 0 additions & 23 deletions Kickstarter-iOS/Views/Cells/PledgeAmountCell.swift
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,6 @@ final class PledgeAmountCell: UITableViewCell, ValueCell {

self.spacer.widthAnchor.constraint(greaterThanOrEqualToConstant: Styles.grid(3)).isActive = true

self.stepper.addTarget(
self,
action: #selector(PledgeAmountCell.stepperValueChanged(_:)),
for: .valueChanged
)

self.bindViewModel()
}

Expand Down Expand Up @@ -86,30 +80,13 @@ final class PledgeAmountCell: UITableViewCell, ValueCell {

self.amountInputView.label.rac.text = self.viewModel.outputs.currency
self.amountInputView.textField.rac.text = self.viewModel.outputs.amount
self.stepper.rac.maximumValue = self.viewModel.outputs.stepperMaxValue
self.stepper.rac.minimumValue = self.viewModel.outputs.stepperMinValue
self.stepper.rac.value = self.viewModel.outputs.stepperInitialValue

self.viewModel.outputs.generateSelectionFeedback
.observeForUI()
.observeValues { generateSelectionFeedback() }

self.viewModel.outputs.generateNotificationWarningFeedback
.observeForUI()
.observeValues { generateNotificationWarningFeedback() }
}

// MARK: - Configuration

func configureWith(value: (project: Project, reward: Reward)) {
self.viewModel.inputs.configureWith(project: value.project, reward: value.reward)
}

// MARK: - Actions

@objc func stepperValueChanged(_ stepper: UIStepper) {
self.viewModel.inputs.stepperValueChanged(stepper.value)
}
}

// MARK: - Styles
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,7 @@ internal final class DeprecatedCheckoutViewController: DeprecatedWebViewControll
self.viewModel.outputs.goToThanks
.observeForControllerAction()
.observeValues { [weak self] project in
generateNotificationSuccessFeedback()

UIFeedbackGenerator.ksr_success()
self?.goToThanks(project: project)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -539,8 +539,7 @@ internal final class DeprecatedRewardPledgeViewController: UIViewController {
self.viewModel.outputs.goToThanks
.observeForControllerAction()
.observeValues { [weak self] project in
generateNotificationSuccessFeedback()

UIFeedbackGenerator.ksr_success()
self?.goToThanks(project: project)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,15 +122,21 @@ public final class ProjectNavBarViewController: UIViewController {

self.watchProjectViewModel.outputs.generateImpactFeedback
.observeForUI()
.observeValues { generateImpactFeedback() }
.observeValues { [weak self] in
self?.saveButton.generateImpactFeedback(style: .light)
}

self.watchProjectViewModel.outputs.generateNotificationSuccessFeedback
self.watchProjectViewModel.outputs.generateSuccessFeedback
.observeForUI()
.observeValues { generateNotificationSuccessFeedback() }
.observeValues { [weak self] in
self?.saveButton.generateSuccessFeedback()
}

self.watchProjectViewModel.outputs.generateSelectionFeedback
.observeForUI()
.observeValues { generateSelectionFeedback() }
.observeValues { [weak self] in
self?.saveButton.generateSelectionFeedback()
}

self.watchProjectViewModel.outputs.showProjectSavedAlert
.observeForControllerAction()
Expand Down
Loading

0 comments on commit a79bf1b

Please sign in to comment.