--- /dev/null
+//
+// ActivityIndicatorButton.swift
+// WolneLektury
+//
+// Created by Pawel Dabrowski on 12/06/2018.
+// Copyright © 2018 Fundacja Nowoczesna Polska. All rights reserved.
+//
+
+import UIKit
+
+enum ActivityIndicatorButtonState{
+ case loading
+ case button
+ case hidden
+}
+
+class ActivityIndicatorButton: UIButton {
+
+ private var indicatorButtonState: ActivityIndicatorButtonState = .loading
+
+ private var activityIndicatorView: UIActivityIndicatorView!
+ override init(frame: CGRect) {
+ super.init(frame: frame)
+ customInit()
+ }
+
+ required init?(coder aDecoder: NSCoder) {
+ super.init(coder: aDecoder)
+ customInit()
+ }
+
+ func customInit() {
+ activityIndicatorView = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge)
+ activityIndicatorView.hidesWhenStopped = true
+ activityIndicatorView.tintColor = tintColor
+ activityIndicatorView.color = tintColor
+
+ activityIndicatorView.translatesAutoresizingMaskIntoConstraints = false
+ self.addSubview(activityIndicatorView)
+ activityIndicatorView.centerInSuperview()
+ setIndicatorButtonState(state: .loading)
+ titleLabel?.text = ""
+ }
+
+ func setIndicatorButtonState(state: ActivityIndicatorButtonState){
+ indicatorButtonState = state
+
+ switch state {
+ case .loading:
+ isHidden = false
+ activityIndicatorView.startAnimating()
+ setImage(nil, for: .normal)
+ case .button:
+ isHidden = false
+ activityIndicatorView.stopAnimating()
+ setImage(#imageLiteral(resourceName: "ic_reload"), for: .normal)
+ case .hidden:
+ isHidden = true
+ }
+ }
+}