From f0e4a7ec26b716c5a68483286e3bd1e78f1b37f7 Mon Sep 17 00:00:00 2001 From: Felix Mau Date: Wed, 27 Apr 2022 18:50:46 +0200 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=90=9B=20::=20Update=20incorrect=20na?= =?UTF-8?q?vigation=20title?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Example/Example/Scenes/EntryPointView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Example/Example/Scenes/EntryPointView.swift b/Example/Example/Scenes/EntryPointView.swift index 6f7928b..4353925 100644 --- a/Example/Example/Scenes/EntryPointView.swift +++ b/Example/Example/Scenes/EntryPointView.swift @@ -62,7 +62,7 @@ struct EntryPointView: View { // Unfortunately setting the title here results in constraint warnings. // I couldn't find a possible fix yet, even `.navigationViewStyle(.stack)` doesn't seem to work. // https://stackoverflow.com/q/65316497 - .navigationTitle("GradientProgressBar") + .navigationTitle("GradientLoadingBar") .navigationBarTitleDisplayMode(.large) } } From cd14d3cfeefb79e96bc937b1f58b0ed9b393e997 Mon Sep 17 00:00:00 2001 From: Felix Mau Date: Thu, 28 Apr 2022 08:48:18 +0100 Subject: [PATCH 2/4] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20::=20Update=20dev-depe?= =?UTF-8?q?ndencies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Example/Pods/SwiftConfigurationFiles/.swiftformat | 1 + 1 file changed, 1 insertion(+) diff --git a/Example/Pods/SwiftConfigurationFiles/.swiftformat b/Example/Pods/SwiftConfigurationFiles/.swiftformat index ed26699..4e7f300 100644 --- a/Example/Pods/SwiftConfigurationFiles/.swiftformat +++ b/Example/Pods/SwiftConfigurationFiles/.swiftformat @@ -22,6 +22,7 @@ # Rules # --disable andOperator +--disable blankLinesAtStartOfScope --disable sortedImports --disable wrapMultilineStatementBraces From 846005af52dc07b85dd06d012a7b21aef1cc6350 Mon Sep 17 00:00:00 2001 From: Felix Mau Date: Thu, 28 Apr 2022 08:49:17 +0100 Subject: [PATCH 3/4] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20::=20Update=20`//=20MA?= =?UTF-8?q?RK:=20-=20`=20statements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Example/Example/Helper/StoryboardView.swift | 3 ++- .../AdvancedExample/AdvancedExampleTableViewController.swift | 1 + .../AdvancedExample/Cells/CustomColorsTableViewCell.swift | 1 + .../AdvancedExample/Cells/CustomSuperviewTableViewCell.swift | 1 + .../Cells/InterfaceBuilderSetupTableViewCell.swift | 1 + .../Scenes/AdvancedExample/Views/BorderedButton.swift | 3 ++- .../Scenes/BasicExample/BasicExampleViewController.swift | 3 ++- Example/Example/Scenes/EntryPointView.swift | 1 + .../NavigationBarExampleViewController.swift | 3 ++- .../SafeAreaExample/SafeAreaExampleViewController.swift | 3 ++- .../Example/Scenes/SwiftUIExample/SwiftUIExampleView.swift | 1 + .../GradientActivityIndicatorViewTestCase.swift | 1 + .../GradientLoadingBarControllerTestCase.swift | 1 + .../GradientLoadingBarViewTestCase.swift | 1 + .../GradientActivityIndicatorViewModelTestCase.swift | 4 +++- .../ViewModel/GradientLoadingBarView+ViewModelTestCase.swift | 1 + .../ViewModel/GradientLoadingBarViewModelTestCase.swift | 1 + ...adientActivityIndicatorView+AnimateIsHiddenTestCase.swift | 1 + .../LightweightObservable/Disposable.swift | 3 ++- .../GradientActivityIndicatorView+AnimateIsHidden.swift | 1 - .../GradientActivityIndicatorView.swift | 3 ++- .../GradientActivityIndicatorViewModel.swift | 5 +++-- .../GradientLoadingBar/GradientLoadingBarController.swift | 3 ++- .../GradientLoadingBar/GradientLoadingBarViewModel.swift | 3 ++- .../GradientLoadingBarView+ViewModel.swift | 3 ++- .../GradientLoadingBarView/GradientLoadingBarView.swift | 3 ++- .../NotchGradientLoadingBarController.swift | 3 ++- .../NotchGradientLoadingBarViewModel.swift | 5 +++-- 28 files changed, 45 insertions(+), 18 deletions(-) diff --git a/Example/Example/Helper/StoryboardView.swift b/Example/Example/Helper/StoryboardView.swift index d88818b..64a8d2c 100644 --- a/Example/Example/Helper/StoryboardView.swift +++ b/Example/Example/Helper/StoryboardView.swift @@ -9,11 +9,12 @@ import SwiftUI struct StoryboardView: UIViewControllerRepresentable { + // MARK: - Public properties let name: String - // MARK: - Public properties + // MARK: - Public methods func makeUIViewController(context _: Context) -> UIViewController { let storyboard = UIStoryboard(name: name, bundle: nil) diff --git a/Example/Example/Scenes/AdvancedExample/AdvancedExampleTableViewController.swift b/Example/Example/Scenes/AdvancedExample/AdvancedExampleTableViewController.swift index e4448ba..f4df383 100644 --- a/Example/Example/Scenes/AdvancedExample/AdvancedExampleTableViewController.swift +++ b/Example/Example/Scenes/AdvancedExample/AdvancedExampleTableViewController.swift @@ -11,6 +11,7 @@ import SwiftUI import GradientLoadingBar final class AdvancedExampleTableViewController: UITableViewController { + // MARK: - Config private enum Config { diff --git a/Example/Example/Scenes/AdvancedExample/Cells/CustomColorsTableViewCell.swift b/Example/Example/Scenes/AdvancedExample/Cells/CustomColorsTableViewCell.swift index 7a6880a..61a5343 100644 --- a/Example/Example/Scenes/AdvancedExample/Cells/CustomColorsTableViewCell.swift +++ b/Example/Example/Scenes/AdvancedExample/Cells/CustomColorsTableViewCell.swift @@ -9,6 +9,7 @@ import UIKit final class CustomColorsTableViewCell: UITableViewCell { + // MARK: - Public properties static let reuseIdentifier = "CustomColorsTableViewCell" diff --git a/Example/Example/Scenes/AdvancedExample/Cells/CustomSuperviewTableViewCell.swift b/Example/Example/Scenes/AdvancedExample/Cells/CustomSuperviewTableViewCell.swift index c2333f6..47543b9 100644 --- a/Example/Example/Scenes/AdvancedExample/Cells/CustomSuperviewTableViewCell.swift +++ b/Example/Example/Scenes/AdvancedExample/Cells/CustomSuperviewTableViewCell.swift @@ -10,6 +10,7 @@ import UIKit import GradientLoadingBar final class CustomSuperviewTableViewCell: UITableViewCell { + // MARK: - Config private enum Config { diff --git a/Example/Example/Scenes/AdvancedExample/Cells/InterfaceBuilderSetupTableViewCell.swift b/Example/Example/Scenes/AdvancedExample/Cells/InterfaceBuilderSetupTableViewCell.swift index ae4f5f0..dfc0702 100644 --- a/Example/Example/Scenes/AdvancedExample/Cells/InterfaceBuilderSetupTableViewCell.swift +++ b/Example/Example/Scenes/AdvancedExample/Cells/InterfaceBuilderSetupTableViewCell.swift @@ -10,6 +10,7 @@ import UIKit import GradientLoadingBar final class InterfaceBuilderSetupTableViewCell: UITableViewCell { + // MARK: - Config private enum Config { diff --git a/Example/Example/Scenes/AdvancedExample/Views/BorderedButton.swift b/Example/Example/Scenes/AdvancedExample/Views/BorderedButton.swift index 31a180f..fba8592 100644 --- a/Example/Example/Scenes/AdvancedExample/Views/BorderedButton.swift +++ b/Example/Example/Scenes/AdvancedExample/Views/BorderedButton.swift @@ -10,6 +10,7 @@ import UIKit @IBDesignable final class BorderedButton: UIButton { + // MARK: - Config private enum Config { @@ -18,7 +19,7 @@ final class BorderedButton: UIButton { static let cornerRadius: CGFloat = 4 } - // MARK: - Initializer + // MARK: - Instance Lifecycle override init(frame: CGRect) { super.init(frame: frame) diff --git a/Example/Example/Scenes/BasicExample/BasicExampleViewController.swift b/Example/Example/Scenes/BasicExample/BasicExampleViewController.swift index a7fae8a..289ed17 100644 --- a/Example/Example/Scenes/BasicExample/BasicExampleViewController.swift +++ b/Example/Example/Scenes/BasicExample/BasicExampleViewController.swift @@ -11,6 +11,7 @@ import SwiftUI import GradientLoadingBar final class BasicExampleViewController: UIViewController { + // MARK: - Public methods override func viewWillDisappear(_ animated: Bool) { @@ -31,7 +32,7 @@ final class BasicExampleViewController: UIViewController { } } -// MARK: - Helpers +// MARK: - Helper struct BasicExampleView: View { var body: some View { diff --git a/Example/Example/Scenes/EntryPointView.swift b/Example/Example/Scenes/EntryPointView.swift index 4353925..604f169 100644 --- a/Example/Example/Scenes/EntryPointView.swift +++ b/Example/Example/Scenes/EntryPointView.swift @@ -9,6 +9,7 @@ import SwiftUI struct EntryPointView: View { + // MARK: - Private properties @State diff --git a/Example/Example/Scenes/NavigationBarExample/NavigationBarExampleViewController.swift b/Example/Example/Scenes/NavigationBarExample/NavigationBarExampleViewController.swift index 200cbb4..4ed3a44 100644 --- a/Example/Example/Scenes/NavigationBarExample/NavigationBarExampleViewController.swift +++ b/Example/Example/Scenes/NavigationBarExample/NavigationBarExampleViewController.swift @@ -11,6 +11,7 @@ import SwiftUI import GradientLoadingBar final class NavigationBarExampleViewController: UIViewController { + // MARK: - Config private enum Config { @@ -70,7 +71,7 @@ final class NavigationBarExampleViewController: UIViewController { } } -// MARK: - Helpers +// MARK: - Helper struct NavigationBarExampleView: View { var body: some View { diff --git a/Example/Example/Scenes/SafeAreaExample/SafeAreaExampleViewController.swift b/Example/Example/Scenes/SafeAreaExample/SafeAreaExampleViewController.swift index ce54bdb..c4d6be7 100644 --- a/Example/Example/Scenes/SafeAreaExample/SafeAreaExampleViewController.swift +++ b/Example/Example/Scenes/SafeAreaExample/SafeAreaExampleViewController.swift @@ -11,6 +11,7 @@ import SwiftUI import GradientLoadingBar final class SafeAreaExampleViewController: UIViewController { + // MARK: - Private properties private let gradientLoadingBar = GradientLoadingBar(isRelativeToSafeArea: false) @@ -45,7 +46,7 @@ final class SafeAreaExampleViewController: UIViewController { } } -// MARK: - Helpers +// MARK: - Helper struct SafeAreaExampleView: View { var body: some View { diff --git a/Example/Example/Scenes/SwiftUIExample/SwiftUIExampleView.swift b/Example/Example/Scenes/SwiftUIExample/SwiftUIExampleView.swift index a91709f..6784229 100644 --- a/Example/Example/Scenes/SwiftUIExample/SwiftUIExampleView.swift +++ b/Example/Example/Scenes/SwiftUIExample/SwiftUIExampleView.swift @@ -10,6 +10,7 @@ import SwiftUI import GradientLoadingBar struct SwiftUIExampleView: View { + // MARK: - Render var body: some View { diff --git a/Example/ExampleSnapshotTests/GradientActivityIndicatorView/GradientActivityIndicatorViewTestCase.swift b/Example/ExampleSnapshotTests/GradientActivityIndicatorView/GradientActivityIndicatorViewTestCase.swift index 8617c5f..2e55a5b 100644 --- a/Example/ExampleSnapshotTests/GradientActivityIndicatorView/GradientActivityIndicatorViewTestCase.swift +++ b/Example/ExampleSnapshotTests/GradientActivityIndicatorView/GradientActivityIndicatorViewTestCase.swift @@ -12,6 +12,7 @@ import SnapshotTesting @testable import GradientLoadingBar final class GradientActivityIndicatorViewTestCase: XCTestCase { + // MARK: - Config private enum Config { diff --git a/Example/ExampleSnapshotTests/GradientLoadingBarController/GradientLoadingBarControllerTestCase.swift b/Example/ExampleSnapshotTests/GradientLoadingBarController/GradientLoadingBarControllerTestCase.swift index 8ab8aaf..dd0a0a2 100644 --- a/Example/ExampleSnapshotTests/GradientLoadingBarController/GradientLoadingBarControllerTestCase.swift +++ b/Example/ExampleSnapshotTests/GradientLoadingBarController/GradientLoadingBarControllerTestCase.swift @@ -12,6 +12,7 @@ import SnapshotTesting @testable import GradientLoadingBar final class GradientLoadingBarControllerTestCase: XCTestCase { + // MARK: - Config private enum Config { diff --git a/Example/ExampleSnapshotTests/GradientLoadingBarView/GradientLoadingBarViewTestCase.swift b/Example/ExampleSnapshotTests/GradientLoadingBarView/GradientLoadingBarViewTestCase.swift index dbe028a..3a81ca4 100644 --- a/Example/ExampleSnapshotTests/GradientLoadingBarView/GradientLoadingBarViewTestCase.swift +++ b/Example/ExampleSnapshotTests/GradientLoadingBarView/GradientLoadingBarViewTestCase.swift @@ -13,6 +13,7 @@ import SnapshotTesting @testable import GradientLoadingBar final class GradientLoadingBarViewTestCase: XCTestCase { + // MARK: - Config private enum Config { diff --git a/Example/ExampleTests/ViewModel/GradientActivityIndicatorViewModelTestCase.swift b/Example/ExampleTests/ViewModel/GradientActivityIndicatorViewModelTestCase.swift index 4aafa95..dc39fe0 100644 --- a/Example/ExampleTests/ViewModel/GradientActivityIndicatorViewModelTestCase.swift +++ b/Example/ExampleTests/ViewModel/GradientActivityIndicatorViewModelTestCase.swift @@ -13,6 +13,7 @@ import LightweightObservable // swiftlint:disable:next type_name final class GradientActivityIndicatorViewModelTestCase: XCTestCase { + // MARK: - Private properties private var viewModel: GradientActivityIndicatorViewModel! @@ -166,9 +167,10 @@ final class GradientActivityIndicatorViewModelTestCase: XCTestCase { } } -// MARK: - Helpers +// MARK: - Helper extension GradientActivityIndicatorViewModelTestCase { + private func makeGradientLayerColors() -> [CGColor] { let gradientColors = [ #colorLiteral(red: 0.2980392157, green: 0.8509803922, blue: 0.3921568627, alpha: 1), #colorLiteral(red: 0.3529411765, green: 0.7843137255, blue: 0.9803921569, alpha: 1), #colorLiteral(red: 0, green: 0.4784313725, blue: 1, alpha: 1), #colorLiteral(red: 0.2039215686, green: 0.6666666667, blue: 0.862745098, alpha: 1), #colorLiteral(red: 0.3450980392, green: 0.337254902, blue: 0.8392156863, alpha: 1), #colorLiteral(red: 1, green: 0.1764705882, blue: 0.3333333333, alpha: 1), diff --git a/Example/ExampleTests/ViewModel/GradientLoadingBarView+ViewModelTestCase.swift b/Example/ExampleTests/ViewModel/GradientLoadingBarView+ViewModelTestCase.swift index 0ce7431..849b546 100644 --- a/Example/ExampleTests/ViewModel/GradientLoadingBarView+ViewModelTestCase.swift +++ b/Example/ExampleTests/ViewModel/GradientLoadingBarView+ViewModelTestCase.swift @@ -13,6 +13,7 @@ import SwiftUI // swiftlint:disable:next type_name final class GradientLoadingBarView_ViewModelTestCase: XCTestCase { + // MARK: - Test property `gradientColors` func test_initialGradientColors_shouldIncludeReversedGradientColors() { diff --git a/Example/ExampleTests/ViewModel/GradientLoadingBarViewModelTestCase.swift b/Example/ExampleTests/ViewModel/GradientLoadingBarViewModelTestCase.swift index 2b923e0..b5c1bfa 100644 --- a/Example/ExampleTests/ViewModel/GradientLoadingBarViewModelTestCase.swift +++ b/Example/ExampleTests/ViewModel/GradientLoadingBarViewModelTestCase.swift @@ -12,6 +12,7 @@ import LightweightObservable @testable import GradientLoadingBar final class GradientLoadingBarViewModelTestCase: XCTestCase { + // MARK: - Private properties private var sharedApplicationMock: SharedApplicationMock! diff --git a/Example/ExampleTests/Views/GradientActivityIndicatorView+AnimateIsHiddenTestCase.swift b/Example/ExampleTests/Views/GradientActivityIndicatorView+AnimateIsHiddenTestCase.swift index c289d88..1ab78ad 100644 --- a/Example/ExampleTests/Views/GradientActivityIndicatorView+AnimateIsHiddenTestCase.swift +++ b/Example/ExampleTests/Views/GradientActivityIndicatorView+AnimateIsHiddenTestCase.swift @@ -12,6 +12,7 @@ import XCTest // swiftlint:disable:next type_name final class GradientActivityIndicatorViewAnimateIsHiddenTestCase: XCTestCase { + // MARK: - Private properties private var window: UIWindow! diff --git a/Example/Pods/LightweightObservable/LightweightObservable/Disposable.swift b/Example/Pods/LightweightObservable/LightweightObservable/Disposable.swift index 9864946..661dd6d 100644 --- a/Example/Pods/LightweightObservable/LightweightObservable/Disposable.swift +++ b/Example/Pods/LightweightObservable/LightweightObservable/Disposable.swift @@ -13,6 +13,7 @@ public typealias DisposeBag = [Disposable] /// Calls a closure on when this instance is deallocated. public final class Disposable { + // MARK: - Types /// Type for the closure to be called on deallocation. @@ -23,7 +24,7 @@ public final class Disposable { /// The closure to be called on deallocation. private let dispose: Dispose - // MARK: - Initializer + // MARK: - Instance Lifecycle /// Creates a new instance. /// diff --git a/GradientLoadingBar/Feature/GradientActivityIndicatorView/GradientActivityIndicatorView+AnimateIsHidden.swift b/GradientLoadingBar/Feature/GradientActivityIndicatorView/GradientActivityIndicatorView+AnimateIsHidden.swift index 0a5ce3f..7abcdb8 100644 --- a/GradientLoadingBar/Feature/GradientActivityIndicatorView/GradientActivityIndicatorView+AnimateIsHidden.swift +++ b/GradientLoadingBar/Feature/GradientActivityIndicatorView/GradientActivityIndicatorView+AnimateIsHidden.swift @@ -16,7 +16,6 @@ import UIKit /// /// - SeeAlso: [Github Gist – UIView+AnimateIsHidden.swift](https://gist.github.com/fxm90/723b5def31b46035cd92a641e3b184f6) public extension GradientActivityIndicatorView { - // MARK: - Public methods /// Updates the view visibility. /// diff --git a/GradientLoadingBar/Feature/GradientActivityIndicatorView/GradientActivityIndicatorView.swift b/GradientLoadingBar/Feature/GradientActivityIndicatorView/GradientActivityIndicatorView.swift index 93686a0..6f809e4 100644 --- a/GradientLoadingBar/Feature/GradientActivityIndicatorView/GradientActivityIndicatorView.swift +++ b/GradientLoadingBar/Feature/GradientActivityIndicatorView/GradientActivityIndicatorView.swift @@ -11,6 +11,7 @@ import LightweightObservable @IBDesignable open class GradientActivityIndicatorView: UIView { + // MARK: - Config /// Animation-Key for the progress animation. @@ -68,7 +69,7 @@ open class GradientActivityIndicatorView: UIView { /// The dispose bag for the observables. private var disposeBag = DisposeBag() - // MARK: - Initializers + // MARK: - Instance Lifecycle override public init(frame: CGRect) { super.init(frame: frame) diff --git a/GradientLoadingBar/Feature/GradientActivityIndicatorView/GradientActivityIndicatorViewModel.swift b/GradientLoadingBar/Feature/GradientActivityIndicatorView/GradientActivityIndicatorViewModel.swift index eec7ea3..5a6ab51 100644 --- a/GradientLoadingBar/Feature/GradientActivityIndicatorView/GradientActivityIndicatorViewModel.swift +++ b/GradientLoadingBar/Feature/GradientActivityIndicatorView/GradientActivityIndicatorViewModel.swift @@ -42,6 +42,7 @@ typealias ColorLocationMatrix = [ColorLocationRow] /// /// As the colors at the start are the same as at the end, we can loop the animation without visual artefacts. final class GradientActivityIndicatorViewModel { + // MARK: - Public properties /// Observable color array for the gradient layer (of type `CGColor`). @@ -104,7 +105,7 @@ final class GradientActivityIndicatorViewModel { private let animationDurationSubject = Variable(TimeInterval.GradientLoadingBar.progressDuration) private let isAnimatingSubject = Variable(true) - // MARK: - Initializer + // MARK: - Instance Lifecycle init() { let gradientLayerColors = ColorLocationRow.gradientLayerColors(from: gradientColors) @@ -116,7 +117,7 @@ final class GradientActivityIndicatorViewModel { } } -// MARK: - Helpers +// MARK: - Helper private extension ColorLocationRow { /// Generates the colors used on the gradient-layer. diff --git a/GradientLoadingBar/Feature/GradientLoadingBar/GradientLoadingBarController.swift b/GradientLoadingBar/Feature/GradientLoadingBar/GradientLoadingBarController.swift index 6e1b1e8..545b4e7 100644 --- a/GradientLoadingBar/Feature/GradientLoadingBar/GradientLoadingBarController.swift +++ b/GradientLoadingBar/Feature/GradientLoadingBar/GradientLoadingBarController.swift @@ -14,6 +14,7 @@ public typealias GradientLoadingBar = GradientLoadingBarController /// The `GradientLoadingBarController` mediates between the `GradientLoadingBarViewModel` and the corresponding `GradientActivityIndicatorView`. open class GradientLoadingBarController { + // MARK: - Public properties /// The height of the gradient bar. @@ -58,7 +59,7 @@ open class GradientLoadingBarController { /// The dispose bag for the observables. private var disposeBag = DisposeBag() - // MARK: - Initializers + // MARK: - Instance Lifecycle /// Creates a new gradient loading bar instance. /// diff --git a/GradientLoadingBar/Feature/GradientLoadingBar/GradientLoadingBarViewModel.swift b/GradientLoadingBar/Feature/GradientLoadingBar/GradientLoadingBarViewModel.swift index 5d4e740..b384d9b 100644 --- a/GradientLoadingBar/Feature/GradientLoadingBar/GradientLoadingBarViewModel.swift +++ b/GradientLoadingBar/Feature/GradientLoadingBar/GradientLoadingBarViewModel.swift @@ -12,6 +12,7 @@ import LightweightObservable /// This view model checks for the availability of the key-window, /// and adds it as a superview to the gradient-view. final class GradientLoadingBarViewModel { + // MARK: - Public properties /// Observable for the superview of the gradient-view. @@ -28,7 +29,7 @@ final class GradientLoadingBarViewModel { private let sharedApplication: UIApplicationProtocol private let notificationCenter: NotificationCenter - // MARK: - Constructor + // MARK: - Instance Lifecycle init(sharedApplication: UIApplicationProtocol = UIApplication.shared, notificationCenter: NotificationCenter = .default) { self.sharedApplication = sharedApplication diff --git a/GradientLoadingBar/Feature/GradientLoadingBarView/GradientLoadingBarView+ViewModel.swift b/GradientLoadingBar/Feature/GradientLoadingBarView/GradientLoadingBarView+ViewModel.swift index 6af3187..6c6330e 100644 --- a/GradientLoadingBar/Feature/GradientLoadingBarView/GradientLoadingBarView+ViewModel.swift +++ b/GradientLoadingBar/Feature/GradientLoadingBarView/GradientLoadingBarView+ViewModel.swift @@ -14,6 +14,7 @@ extension GradientLoadingBarView { /// This view model contains all logic related to the `GradientLoadingBarView` /// and the corresponding progress animation. final class ViewModel: ObservableObject { + // MARK: - Public properties /// The gradient colors used for the progress animation (including the reversed colors). @@ -51,7 +52,7 @@ extension GradientLoadingBarView { private var progressDuration: TimeInterval - // MARK: - Public methods + // MARK: - Instance Lifecycle init(gradientColors: [Color], progressDuration: TimeInterval) { // Simulate infinite animation - Therefore we'll reverse the colors and remove the first and last item diff --git a/GradientLoadingBar/Feature/GradientLoadingBarView/GradientLoadingBarView.swift b/GradientLoadingBar/Feature/GradientLoadingBarView/GradientLoadingBarView.swift index 6a68342..38440ce 100644 --- a/GradientLoadingBar/Feature/GradientLoadingBarView/GradientLoadingBarView.swift +++ b/GradientLoadingBar/Feature/GradientLoadingBarView/GradientLoadingBarView.swift @@ -11,6 +11,7 @@ import SwiftUI // For some reason the animation looks broken on iOS versions <= 15.0. @available(iOS 15.0, *) public struct GradientLoadingBarView: View { + // MARK: - Config public enum Config { @@ -26,7 +27,7 @@ public struct GradientLoadingBarView: View { @StateObject private var viewModel: ViewModel - // MARK: - Initializer + // MARK: - Instance Lifecycle public init(gradientColors: [Color] = Config.gradientColors, progressDuration: TimeInterval = Config.progressDuration) { diff --git a/GradientLoadingBar/Feature/NotchGradientLoadingBar/NotchGradientLoadingBarController.swift b/GradientLoadingBar/Feature/NotchGradientLoadingBar/NotchGradientLoadingBarController.swift index 41bf674..16e06b5 100644 --- a/GradientLoadingBar/Feature/NotchGradientLoadingBar/NotchGradientLoadingBarController.swift +++ b/GradientLoadingBar/Feature/NotchGradientLoadingBar/NotchGradientLoadingBarController.swift @@ -36,6 +36,7 @@ private struct NotchConfig { public typealias NotchGradientLoadingBar = NotchGradientLoadingBarController open class NotchGradientLoadingBarController: GradientLoadingBarController { + // MARK: - Private properties private let viewModel = NotchGradientLoadingBarViewModel() @@ -209,7 +210,7 @@ open class NotchGradientLoadingBarController: GradientLoadingBarController { } } -// MARK: - Helpers +// MARK: - Helper private extension NotchGradientLoadingBarViewModel.SafeAreaDevice { /// The notch specific configuration for the current device. diff --git a/GradientLoadingBar/Feature/NotchGradientLoadingBar/NotchGradientLoadingBarViewModel.swift b/GradientLoadingBar/Feature/NotchGradientLoadingBar/NotchGradientLoadingBarViewModel.swift index e35b3b9..69e531a 100644 --- a/GradientLoadingBar/Feature/NotchGradientLoadingBar/NotchGradientLoadingBarViewModel.swift +++ b/GradientLoadingBar/Feature/NotchGradientLoadingBar/NotchGradientLoadingBarViewModel.swift @@ -9,6 +9,7 @@ import UIKit final class NotchGradientLoadingBarViewModel { + // MARK: - Types enum SafeAreaDevice { @@ -25,14 +26,14 @@ final class NotchGradientLoadingBarViewModel { /// The current safe area device. let safeAreaDevice: SafeAreaDevice - // MARK: - Initializer + // MARK: - Instance Lifecycle init(deviceIdentifier: String = UIDevice.identifier) { safeAreaDevice = SafeAreaDevice(deviceIdentifier: deviceIdentifier) } } -// MARK: - Helpers +// MARK: - Helper private extension NotchGradientLoadingBarViewModel.SafeAreaDevice { /// Creates a new instance from a given `deviceIdentifier` (value returned by `UIDevice.identifier`). From f7486690ac8035044fc0b40d57738953ea1f83a8 Mon Sep 17 00:00:00 2001 From: Felix Mau Date: Thu, 28 Apr 2022 08:49:33 +0100 Subject: [PATCH 4/4] =?UTF-8?q?=E2=9C=85=20::=20Update=20snapshot=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GradientLoadingBarViewTestCase.swift | 6 +----- ...iew_shouldContainCorrectCustomColors.1.png | Bin 18743 -> 18923 bytes ...ew_shouldContainCorrectDefaultColors.1.png | Bin 22739 -> 22559 bytes 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/Example/ExampleSnapshotTests/GradientLoadingBarView/GradientLoadingBarViewTestCase.swift b/Example/ExampleSnapshotTests/GradientLoadingBarView/GradientLoadingBarViewTestCase.swift index 3a81ca4..a58e783 100644 --- a/Example/ExampleSnapshotTests/GradientLoadingBarView/GradientLoadingBarViewTestCase.swift +++ b/Example/ExampleSnapshotTests/GradientLoadingBarView/GradientLoadingBarViewTestCase.swift @@ -26,10 +26,6 @@ final class GradientLoadingBarViewTestCase: XCTestCase { static let gradientColors = [ #colorLiteral(red: 0.9490196078, green: 0.3215686275, blue: 0.431372549, alpha: 1), #colorLiteral(red: 0.9450980392, green: 0.4784313725, blue: 0.5921568627, alpha: 1), #colorLiteral(red: 0.9529411765, green: 0.737254902, blue: 0.7843137255, alpha: 1), #colorLiteral(red: 0.4274509804, green: 0.8666666667, blue: 0.9490196078, alpha: 1), #colorLiteral(red: 0.7568627451, green: 0.9411764706, blue: 0.9568627451, alpha: 1), ].map(Color.init) - - /// The percentage of pixels that must match. - /// We explicitly reduce the precision for the custom colors test case here, to avoid flaky tests. - static let customColorsPrecision: Float = 0.99 } // MARK: - Test cases @@ -49,6 +45,6 @@ final class GradientLoadingBarViewTestCase: XCTestCase { .frame(width: Config.frame.width, height: Config.frame.height) // Then - assertSnapshot(matching: gradientLoadingBarView, as: .image(precision: Config.customColorsPrecision)) + assertSnapshot(matching: gradientLoadingBarView, as: .image) } } diff --git a/Example/ExampleSnapshotTests/GradientLoadingBarView/__Snapshots__/GradientLoadingBarViewTestCase/test_gradientLoadingBarView_shouldContainCorrectCustomColors.1.png b/Example/ExampleSnapshotTests/GradientLoadingBarView/__Snapshots__/GradientLoadingBarViewTestCase/test_gradientLoadingBarView_shouldContainCorrectCustomColors.1.png index 98dc62a4ec6ece0cb6bdd17223e1911fd1975a39..54c2e4c0f24704afd794141b527cb9df04c925c2 100644 GIT binary patch literal 18923 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

uCB))3ra86q6` zeWr?w2^=+~$+Bt2B_tAzVuX!xv?mL1HWms75`s9A5_A=0=Yz&s4)%O2#i5mn7j0rY zf&i>KV?_U4@-RksSmQPu^9WRlM0#kyKvz!T02u#PEI5xV)+SX2KV3+mgIjUMiaSCA z3*2ss32-}eHBJhE@uw4G*)fV(@v=ey&VF_H#I_lYh5b7r;7nuT$f+zVPd9?0rUca{ zVL~RKJ53;{g&N*G1-`DKQML}NYm{f(7z33T`qdetZ@zSTxdJa112f^Fqo$Lyt%SvM zVid143`FXbil#ybtAQteu+&B4M&N-! zL9xl2Q^nqeghD>xM0bI1kvyk_)Crab%Gdz_Iu`grJo0sa?e%#U*0CM_Pf%aq+3)Hb zW$`4Q3za}1*}?T#1fqRLTV;3c=wjFuktP5c@@k=WD#kZZ+bEAOQ+mTV7%3+Fu4Q#*i9mpM_Nx)h5pT7bYoSrIbfnM`BFtp$gSW7tLe)9Y81wxi68=jDy*V<|LZD zZCdv!4O@>MZibRVG!jyRLOx9ts9hb`zg+Ml+=Gl8SZ~cVESe(T$Z+9_7IGyTlt0p- zO{uCd&d8yP0&5%PG+@F^eowrE0NYTRQg!^5tc%OAsv=E;!JT8k%4`~_chg9u57i({ zxB}6)cK?~r2F|l`PC6~fSTzDn+A8v(SxvF)M|GH5v5TuN-OXcfwQy->H@%c${JH{J zB7zii*gSm8D&;8z5fb-8zMozhb>QhI7;iFsuj?V10J8m;<%WoM@jXqcB8d$XD%t_y z72{i6vVmx^3h0y>!o*d+H%Oiax6vS4^(!Oa_2fzgp0<~J)trvnhDQ0n^gESPfVe6U zjELaeRA66w=AtFeLfP9aGtYo`BOnUdSwNdv!z)mdDAFDR`YX<|$rK?VcU5?D^${xt zK$1+H*07;5DaV!#GL4znyFP7KD|#KR*2`yWhElEM2aR87WwkFYpT;fouPY9*A}KIh zG8(=!M`bp$klu6UjsUBLP}IOT?cR;HEHqFFygml)2v`sQZdU_nf1uhxWOA(5NndM7 z`Em#0C(~peNp-DE^}-Wr>SK9&EzI)wkmL7}_|N6pmPHaC!G9^trSn+?2`OKpNs4#0 zBGdfqc5n!}ED1nJb<(=(q;F%}?+Nag)R7pyh4e+fT#R_(L=G27uv#96fD?UV$ms~d0TCFX#S~2d+k!=Ce9X{@ zfgbos-BXQpY{3&l6fG7IsL6>MswRZs)gmu%s8LM`A^2BG*GXGa{c8OZ;w5aHz)wrm z-hZTi5u+#;lxr5Pva$og^XW}}tU`e)S6M*SM;nv642-{!p)?Q*BZ0T62`#B<_bk<> zFp_VR%m5Bl)QXg;-|tku+U1pG!=zkmQ<5SKG;x;nd+H6=792?mn~$QRT1Xpy*?&35 zDvO;*J$A&VId$Kuc!|^wE}$m3f?Tjn{i47=>eM~UR|q09rCM;5dI;orSM9LZyU=b> zzltqkC>=pO-2Nnti+Flt!)MBUEY=Ej8Td%pT@DE#zjBp;+vCcR@AA27L!X*h)$i$p zl^;`RNM?o_w;oGRBn|y7!-q+6nZ% zKF>cHLFlr|*=^uiTE8Ru!Rh~_v9ZA=f^ya2)1B-Bs{auice&D40rZ{Gls1`b*zfUK znArBKVQ9?A4kjZckl3Mj9&Dh-nplbFHa!=)?IVs6q0-DK8GM5mlSZ3NqI1pfIU89@CJ|Ri2_b>>DYuv|uVR zh$mm&FQL=3NR{zmoKA%TqncJ(o5pD$OA_P^GDjxCO<1gvF+}bxaGl)$NjN|jT35Oc zTaI)OTgE7S5^RDL4#NAY4SWDu`|T9FybA4%b6E*Cxcf%7Y< zer^p7~g$CwJ9L5yuGY!nvf)TwOr-{@YYxhYVJpQ0AK+K!nf)=*CO|1 zDZRYju?>^wB~IF}txt0l{E7-W?BOpA{B~LKKs76Xjgyxh6=;k5SSB@#v_{s|x`&XUt#XIR*pNXs~A)(EMG z?9Ozt$=&lOlRgE{B?UcHnObhcXDJKpMpYoy3WOanqz*qA@kiO*NpKWsLoV60qz)0} zy|?k<>ul@CwmSly^gB}9$J)dFZfa~!@<_d}*}#`jT&9`1cOZ#c_k3scg^CeS>+4Y-<80fE_*)tvGvy^n=O z_VQOQq%?UV4#JH6wQLyi$Hf*^Ysa~UK`>NZ)l?1Q|bO-*c*T{t@V@Y4Njfr7g1V5X z9INKkcS@3-!nhjTr*;G+VQ~AUV;gzkxG9U!(f7&76&B0se(lNd0bONEwq^A_%lu`I zDZqujO|I%+E_|2CZkOG)VX~~cqz806Sel;#5U(e~&8cb`yi~Ct#O|1kXRfeAmGmTV z0=JiqD$&3`7TpeRPl`W|?DaANsnD~r?dugELZfO+P#O%(jE4e~NJkbQO3*h1YIMu?SS<3i z=5t(lgbF)K;yUA+rTFXd^Ou5T+d(k9yTfqOL?7742H$-!D@^#V1m)Eh2e1!%02gSK zanYs;tGH{)=Yl)kQ8}o<`niM&p&$ZFQzGrxEy@64d@vevL_dH9Eq*DldfmqgJe5Kc zSq3Sdy)vTweVi+qTo_O%$pX?01kv?Du7&}!Q#HBfDC(;3N8C43&(M5Xg{W-!WRBU1 z!Jn0+{#qhHzOJ$DQw3NZsgH#bfvUyzkc2IzLQ@vVHs7fx-62O=uncp3B$E_eC-q^I zk-M5%0YKn*nm;;FAQej^0&81S?ph8~e}igT3Q0WG75)(dl2rj%I7p;Ux@*UzFu9U> z4AC87AV@al$F9b}D1komSCofHVrdaN8MlJE*K%R_Rt*nCP4jYD_ib^TK?%Z@QXM8o zny5V=Qc1vt3f-MUZI;5KS8@gSi~L6>0DLw>5%J!Gp*c#5wvd`m-3}X;5=*W$%cswLN7l5SKR8v5&&XkDAkhQ;y(9TS4d+jS(lU?K ze(>`gdY(MO1B9EsCQ32Fox%dSzM7mz8&$F^jFwBgP^}CjezpWeo+!XLHCaq1(*Zg} zF3zZBR#Y1pyDLci@7mh{K7h4D4xkW+@hMinsFbh%9zdn%*2+voD$~q zB`%;FP;A*$36v7DuV15BmQ89&DObNg{~9UN37or4tV($7qx{+z$3e;0Lc`hNq_VErG^dqO@r<{1Ciu>UTQk_Vgwp9)vsH+(> zYLSC55jE7jpQm``uMLUnz3DDrBCWNk__7AhU+R+(A0k@L0hst^xlnQ(DYrCE0rNGF z?0R4nTz_XUe-)Ck>8Bu5pO{PmVenr+xGnPVO)lU_?mS?a>K9lrjyQWzke`8Vtds)0 zOt9ozUpwF~H)R3y3;+Ccwd%tE#HC*FZE9_jzV%?#{L%mJdSl@Q;}e9zkB#;ewwI5Q zT;IAo9l;1gxK=?5_;mDZ6Dw0t!ppbe1c7?eywMw$O>dH)UF_h;+H^B3ZeqBRpFIE^ z@NQYgb|_~|7@#{?k|)vKN>J+#Kty*+1T2XwQ<;X8sTQ$7S*U#R;KHn_{k1?Ic8VrC z8(uJa&&I+U*ZRCY`J$Z#Q{?=E+plYsnP*+JG z$F}Ry<7m5lu!plPfgWHL5g(nvHA(A;g8A5Rc>09IrrN~n?WNjDKRBY{S3Df3F99JG zN%%Z5hXEYoh$iso8u&<&TGq#kLmt>zP(jF1f~_2B4EFNc|5aCp>O(%Qq*qT+q2NVEAzH138KDn$ib=`f32E`=V?n$HXKTL3d7-01%a(jy~2or^5e;z8x2oeHWqvS@#bY}u39&HHrFLBJx%K9{QDj-)Q#_B^|p z8oUgy1l_7282B*YKx+TRaLUz-I0QGV=@ZkBqQD&6Q$V8Y7iHrE^bwl{^5Z>hMa#jpYrCL}g*B^TYYEQWP>#0m)x1-f7+LSvn@2wJn4M5hz1*Dz_s<;!Is7%A| z=9zIctNs;hJ5^tAUAeb*!Nt7ay?RftShR)h7wkVlV^0kJ`(nCB#oR9)@>?h1?x@S3 z{|J|!jUV&)VJ#{+*#5`N_;Io6g$)x+wy*i%?Yh}jFy5!XytE=yp0{av((zPvZJ45bge1uO0N$eU*kKgaAJaedo5Zco!|D`$9?~yhO_YKleV(7weOrV z{y3~U^iRW&tsl32Iq~zup7QM9tDPJ-yN`c3mQ%IIcYKbjp7q7M=OzKn;C02a%2lcf z#|ZR?=4VCrpV#Uob2QRlS2kKdCA77cYX|!?>pQ&JcDh4xi;rKKb5m6F?!{Gkb4Avk zcfs~cx7gkCIlpIr+lE(C)x1+-s=F?BW;?$4oe0=uztweT+H0EauPBnLsQ>m|`x~Oq zXJ2?0UN9|19G9qae9vD9?)J$3xj(nP-74>&`Vhx&!atfFt`U#NSGKh{9&_D47Vvku z>oG^iBd$?)j(Pq&3w>R^xk+noUH%ra|5I8#{IVgky3nWLY}$nKr#59xXv2dS=(^yt zW%oj9*It$N*_jDe%>ZYYRuw8L%6vkgprS)vnirmrE}1UM^@^MSQgz?v=CJ(r z<8)5ZeVt`GC*YnXkkiA%tOChIVZQsc&|^80iL*gvro;A+F2DL$QkHb@ZNSc2$;7R& za(9cJ_Wg_t`)=)RQ@rw^a<6(M88?v!;qp!;D?!ly?jYm8qW@1uO@eG2*>s7NQ|MWkQc_Q>vZ zUa4Tg%hwUk_x^2P{&cqgn!zs?@uBC6Gs`CY_HSF!u`c+?(tFw;m-#uRxHY#*yYGK! z=*~I4U-9rC*_;399T5+=DpNX+9)DU^Iwjaz6x?sK=q&sa`FXkF<*kkrR>MEKCn^;$ z3OD_jUjAWp8FEWFe>Ha}iVH7VnfglGo*i1-SN@@EN!x<5#E6tS zxX8nwVux_wr&xU&|M&Ff=CHgbkI<-d?S0il_5LpuGn!how-x`6yDzwL+_zk{K6*Iw zQ}>W%kA3@i>!)Q&!z=neFLn=0%zM49G_kZHD(%4Kjpo4%gDE?&Tz;5Rz*jY_K4Is@ z+`H<;ny9nCIqw&1w=R9=J+d@P`rBgm*od8Nxd8GH~%G0Y)uRgc>T%`Rc((_N>FCQK=GB{>%?Ci18!NW$! zzUw~p;>V1&-QdM{4{O@?{+Vr9)6ADs!kWy7PX9Hc-Vdz^89sN|ur?y~$S^Axr=8gO zg;~*Gef#;|_j|4OUwHYb*sN^4`ndm`LoJ(rKL00o+KOjhbb%4 zkBmQYu-$K!Y?OYn=vKzWkr|=s@}i5OiJ=QWT>ZKKVo=)YWAhJ1 zUz)1w^*LZ1ifNy-aLzu_GTqCo!AmGNEmE&tYbv40?JfVC3e}{(LXUKy* zPae~Y=wWFexbG9?-#X+Nk=wu8+r_hM!er=3eia&V@9!UZE%UD~Y`NyT!@1nde^*syS`)49_hkekU_T&l8g3Ox<>=)d%S-0NA9Wz$Zoh+QVh5a||E@a-c z)8_v@^tv(l_^kNRprPRIgtB>MZ_P?CWl57L8p^bF(pUvnIJc23 zrR`#ZjuxO1G~kh)%jNp}&L?cq^$$bnoFT|QLnr#xs^m?WAB)K7O*~Kr;Ls)tY?PAb05vc*vTI=tJ zM4mBn(?&m0Gu5Rii!HDvR_}h4#E?u-s5nZs6GL%yzn*WaS;jikM13+nA>M$}gr1q- zW~3oD;N|9kpWv@2T&M>aB6*OIqydLywL+>U8`KY~V2nbG6+%9cA6Oy?sb617UI$xt zkxsI&uY=X8kON^KUXbFPI4LX(>!zil&Va%cLZFI9OEyrODEhwpt@%`!5CTKfMcOXb z@JOPQpcyR*#)CBc?;mlrlvNyKf6xL{(!ga(^M7d++{i-E(z>SO5rXkFtOJa8x-ygv zpy`GzISq;>eb~mlO~FSf!^;n6voA0t!35Fjd793*o#;9oU|NBW1E1)-e1`Lxw$BU= z;3PqUxf*;%+gS(aSO;rks>rMei^MtPebH+$Y}^GWnrG!?vnydN44IyUt6-c11agP= zDT(INHZP`vGu;>RA^IaAw=^L0w~%p$O)iB_&c-~YNmfo3yHWwTYWs)*cweG`FjrR` zL&sCC(_fm&^bMKhYY2t8Ih1w}??@0rd?e!_wVMH=^Z`pIi~|`H9%TDkp!z+TRhn9C&~ z6K*}#Q%w>v^0JuGvsIw+XV#l!auQ7dnthq);-(RUw$NEO36(I|=+;y6{~IxpKhWbQ zVQ8|^ZI$F0MYXm%B@UVHJAI+PfBL{H$ZmuN0OXwAXE<#ywrPw$9TSc+*ZB7eVi zEGPxLX(qcP_12YhrXUxl=>$McV;9M7+>~O4f4CD!o^aIe|DBJ3A&-wiVC`zUHGMig z8+ERneNyoZa+ofRK15~S-{(ePSY-jt_p(rZ7VZKoybzeqw!%4y+l;hQy$twV@%%01 zYQ>8A9UAV+EQR@h?ImNSyTL!Se6 zMOYY~ybiM!kym|Y5JCw3wgc&@16JfgBhj$!f?|TNJMOySb7BKg8(uQcn#r)B7WF)A z=ApUJ62hdc0sZeDt>X7U8Q|P0OdAX}M4h!hzq#uzAT1IqK^@M-2aGY6Hr)^JYXEqH zy=pR!9&RB&=-f>e*@~vnrwdxAqT~$Bj+q(eXSU7MkY!b7=28!6l7R(_O=1*pKX1b$ zDFgx0-ymaVqRsAVSWJ$kiRqg$iZIMBqHwxn-uJiUKY(1Z}z&b;9rxQl-CQ$)7<2tcG zG8P<{Hf;)xL#S{xWD@EAcPx{GV8$FznsqEahU$X~IGWGo(=;qSrI5d}1aMG`sRCuH z0~8DUUjk*Pk42!q&ru+8)Fmh3txzge?!CALqZgR4lRoX zm`L=(YDkD+Bp*v7_&eu9Tu*FjHqh)kH>!)9l7M{je}Ye}RZ6Sm5K_oLge~8pWOFf~ zP=KQo1Y-<#>m`#A2Z2n5|Mz!&hXBv&a+wPdM2)q-L{930yVna%2%Z%*p4B`2E$Rz(6JEw@Kh z&bGax?-OALc@g=o9woqkqJ;v1PHx9nN^$UMI_{ErY$ij=uXWDKo@c=X3<~SX(Tf4$ zjsYtG-^2lsgS4`olYp_-l5&v37Xi8k8!i&60onHAylW^=iSG+*F%QX z$WQ~Z#fk#E(B=1FZHAc|uoHTV1S_c$B@kO26%k1gAs`f?Bm~sF4Yfn*$R$gD2`F#| z!D+~Wx>*!@hD~x8DD=j_R=P@3m-G@_k?W(2l({O##rC4Q#w2q&jY|Lpk8|mW4grVO7B{@Oe z9ug&VX61j_2)c0DDI2CW=)}*;Fwa`|OtzvP8+nk^bM%Rs* z>zSLd<0}YV2Va zL4RaBpdkoJ+WR&|( zx~wp658Mfa>xpcAn}Uh#bpmQvDWh?L?!E>w#dMJ=4zZ|UU`vQP?c`xVLlj#R_=$1U zvVnS6#a`1>d#Ru}r>T<0%I}J8x}m*9LEgZs$^OJvtO6^t!e#=BG5`ibmP-f-1&hdF zDbCvA0OMR)D1_Vvb+b51GE#&Q`PB-z1j-FLQ0}vKOtJ;vMIyCqpVJuz;)9)MZ7c$S zqw+z|jr_ycoRr>dn?wNLH!>RysD_!Nca&^BkpNKl!tY(O>5eJ^mw>+jR1<3sgL0oN z8W0k=1ga$$#E{LHa$s2I-AZXSTq-n>1307H;MY~2&87h*XSkF|mn!TaYX@Q8z*>XE zlYo+^!~yNew&c7<5W&&TKX;utfT`{Zr_nMmSpwf<2<+ts&a_m>LpzVtgm2`aMPmo3 zaflE})OT*8foX!+F>eOTDi5X$2M*{va{}T13)svTC8TxIN_K@!=-iOUKo3)lKl-DM z(z{X>jz5qY2@k^X;F3#U;2)Z`--r9c7EmXd^x#?K9PyAB<(5iu0aBt>>hDo}X9H?rU=0rJ!q7wrq$V#9Rl zV`cc%zHoB^m3V1$>X<9+?G1>4d@BqCmx5fr5##eho%R5K~&jCqzmg)bqECzxc^N=TKi zdDImdFj*}-NM(k)Ff>65rb@GjWz{T?5NYQwXKA1W5?Eh_U6Ys3_m`ICZLhXt=p~w2 zN-2zdo(AaG@ssO%*3pW~HC4;*?o{64lNu@kfM;8RHiSoNgMb5s;UGYh%mH5NQ@W2z zZ#&$Za!-XH*vA9Z1v!!rY!MI_QQ5cRmp7(oWW&ZK?B#&5*R=;w*Z^1!K|U*$fS>9l zELQCZ1Ten#ceN7bP13Zm$PAu35;Sqm#DKNr9|d~wMIh$#tJ|R@Wr2t1VNsH&w|acu zYzkO~12|AL?4E4o5=95FnpqssJ0Ccjpx61Xgw!H8kX^JHq*ak_Jygw7lG>*xesi?S zr#?%`w&C*#m5-~~yS3|`TEH_^OixgSs?QTXIo{j^zo^+Jy6ZD9dNs;MNMM2DBjx;{NW zGJ40x%%oWkZ69k%71R67(E-9jR8EJiH_yH+7)_yB;|!}ejDAYGZT~WW?I3v2#}b~hxxK8* z>A(|bX)PcSP6s?hL{B?nV4RJvkEQ!O!AmdFKyV1wA*C3!BQ$o3lA@CLB~p^&jsV*0 z_ax+0JQX z^|PFTJzu{KWaID5(M(fBiI|D4?)Cjm{!W%gRByL$++s`>w z=PFSOB{mo^tPW5`pF3w|smvqFic`1+gVsy!VkISH^g_o}0@lVG8~=(}$F z*RtouZ_L@PG}kvW7%w6QETJ^@>Um3a2I?0j>_;jGZPLs$+leK3Rr)Y)R+a1WQG>;{laQvWU2%#yI@ zfB=o($0}c7Y)QSwMUHxi9y0z{xTf?cZ@}IJAEU~F5)%FIJ{FtnRk#Y-<7L1CkG%!_ z0_Z!E_Bq$do~?mJ9iM(#VIDPE=YzPa@5laWWteRYjA$(*?v)V_+|B%8-ww4{>~ zb39UB{8^xszP)t!rR5YvrQXpYg9CM~UW#%xknG0-X+9P6fSjlg8j3DF5Ypo4K6P0? z9|D}f>aAsBx1yCxA1qSkGW6y`P0Z*sIPzUb75>e$< zAgN0=)$Nhk@!i0cQgX@xUHMjOY*-O+pSnF+cFEc7G8;Oe>2N`$3)KuLrC)17fYC}V zw*fare;-GLM{@G)rxgmIz;F)<6$rgZjc0H=lJA;W70@sb29$ux_f)#=OhDuTD?b^Z%Ijt8o~L{>v1*rnTk=y7!ug*abfCrk zK#)S(KFRngR?C8Qoe5z=yim@<_@aQ!iL(HvtaAlBc{V~+2jStZB20fRug6tUrX9;< z?*$F}UT<$~+(F{lZ;EO^F=$plW^d~cRPTwcma_&76g1~Zvk+WfV@|t0_i+b zC?H_q7}H26uuBZY6sVb)IuFE&1pi!?m^!=$C^wcqyhgE4H;W~qiVPDm;mlMk_v^Ce$Zbjhw*(Jz9CcETN9w>bK1c}y z710#VNqM#y?Hs;A61f~^uvHc~BIoDhB-kHPX4^HLq>Gn9_QM8Xe&TRIu zWv~3+R|0~?$79>eY;Z)rEjtcW()1dfubZE#0_>uskM|k`43|XU%sf(ov#pdahJbn1 zlL7#bIdm(bAJ(AXxyU8E?oy#&LmbQ`R=-q=X``*Tn^Vw4OdjBuS}dVeaQIvVe@l5U$>K2)V>c-CQBL)3h9r7G6~ZzRhJu5C=2DT~hoOeNo9 zl?-rG(y}Y1Z&R~PjBVNfDM=7J>SIeDJcWMjRD1xd7;H^x^$5}QYYm@QN^5P|7!i>_ z;=WE1IpidT)u4`5BnX^j*i9CP9enSrUhMXHwX)`}_i5_ebdbYBqVIs)IHwJeI&8Tb zzk0X16ZUw?`FLvGS08tVJq<;W2wX;~7F6lb3`|p$XcB~>9+x;bpn-%nk5{S-L-p`R$}RaTCMEvuqC)lW$WFJ`7wSMx3|xCW(5#t5L{t-&BV${c;^9rGw^G1$kQcUs}7kyQ{$crly}8Yz^3TC z4KGf7cDilXTLPHnKJ2-_{&NL#RUpH6z5h=KXaAE_6vlBxG*qnS#`3!L;v9)ClZ!1W zGf8dBDb_~QP1k?|s@2j~8`K=r6kO$&Qv?)$NKML_nPSqEM4;Wc>fHRn#23`W)lxJy zKw~p|ZhyeNJNKS*o|n)0eveBHn%hvoaDSe0RX}MPUw9nd)6m#lGKyi(H=#RNmL=7u z7KJ-@(t$1ga6#aMFbu*p@yDUhlMLcL=6E+zT?)S}%FcR6ms>>A<6I%3A&7v5Gr8xbe>zJ-+49a7IH8yZ zt3-AhRs*c8k}Xko3?%^#1l2VLHZ*#g|M^}PU$rgnvt3=xn`^Mjx>$6UTLVadFgrx) zAflh~7FQy!`psFk!Xu04Miw?wMbujW()A0P`v+ku`>cXYSu_9P zM5$q}A@=2_o-i1q1B|v;4Db_DA5e@1S~(vU{f3NCP6bLvHh9ASBUtXIfuvc8t>cT^ eRp{%uy+dT>$_xotX2ab_q@0WS+3zxiPyPYA$8PEX literal 18743 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 O0000(P6 diff --git a/Example/ExampleSnapshotTests/GradientLoadingBarView/__Snapshots__/GradientLoadingBarViewTestCase/test_gradientLoadingBarView_shouldContainCorrectDefaultColors.1.png b/Example/ExampleSnapshotTests/GradientLoadingBarView/__Snapshots__/GradientLoadingBarViewTestCase/test_gradientLoadingBarView_shouldContainCorrectDefaultColors.1.png index effddffbbe1320adac90df60396ad7465e34b736..68a598091175a89e4c479a6d26a9ed4a1c96b057 100644 GIT binary patch literal 22559 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 M{_pEfua)KfA1jClzyJUM literal 22739 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 VjAy@|L2ms0=!1U-H*8Ei^go9XuJ-@{