--- /dev/null
+//
+// BookDetailsButtonTableViewCell.swift
+// WolneLektury
+//
+// Created by Pawel Dabrowski on 20/06/2018.
+// Copyright © 2018 Fundacja Nowoczesna Polska. All rights reserved.
+//
+
+import UIKit
+
+
+
+enum BookDetailsButtonType{
+ case download_ebook
+ case download_ebook_loading
+ case download_ebook_read
+ case download_audiobook
+ case download_audiobook_listen
+ case download_audiobook_loading
+ case support_us
+
+ var color: UIColor{
+ switch self{
+ case .download_ebook, .download_ebook_loading, .download_ebook_read:
+ return UIColor(red:0.91, green:0.31, blue:0.20, alpha:1.00)
+ case .download_audiobook, .download_audiobook_listen, .download_audiobook_loading:
+ return UIColor(red:0.00, green:0.53, blue:0.56, alpha:1.00)
+ case .support_us:
+ return UIColor(red:1.00, green:0.64, blue:0.26, alpha:1.00)
+ }
+ }
+
+ func getTitle() -> String{
+ return "\(self)".localized.uppercased()
+ }
+
+ var icon: UIImage{
+ switch self {
+ case .download_ebook, .download_ebook_loading, .download_ebook_read:
+ return #imageLiteral(resourceName: "icon_glasses-mid")
+ case .download_audiobook, .download_audiobook_listen, .download_audiobook_loading:
+ return #imageLiteral(resourceName: "icon_speaker-mid")
+ case .support_us:
+ return #imageLiteral(resourceName: "icon_star-mid")
+ }
+ }
+
+ var tintColor: UIColor{
+
+ switch self {
+ case .download_ebook_read, .download_audiobook_listen, .support_us:
+ return UIColor.white
+ default:
+ return color
+ }
+ }
+
+ var deleteButtonHidden: Bool{
+ switch self {
+ case .download_ebook, .download_audiobook, .support_us:
+ return true
+ default:
+ return false
+ }
+ }
+}
+
+protocol BookDetailsButtonTableViewCellDelegate: class{
+ func bookDetailsButtonTableViewCellButtonTapped(buttonType: BookDetailsButtonType)
+ func bookDetailsButtonTableViewCellDeleteButtonTapped(buttonType: BookDetailsButtonType)
+}
+
+class BookDetailsButtonTableViewCell: WLTableViewCell {
+
+ weak var delegate: BookDetailsButtonTableViewCellDelegate?
+// @IBOutlet weak var button: UIButton!
+ @IBOutlet weak var button: ProgressLabel!
+ @IBOutlet weak var buttonIcon: UIImageView!
+ @IBOutlet weak var deleteButton: UIButton!
+ var buttonType: BookDetailsButtonType!
+
+ class func instance(delegate: BookDetailsButtonTableViewCellDelegate, bookDetailsButtonType: BookDetailsButtonType, bookDetailsModel: BookDetailsModel) -> BookDetailsButtonTableViewCell{
+ let cell = BookDetailsButtonTableViewCell.instance(type: BookDetailsButtonTableViewCell.self)
+ cell.delegate = delegate
+ cell.setup(bookDetailsButtonType: bookDetailsButtonType, progress: nil, bookDetailsModel: bookDetailsModel)
+ return cell
+ }
+
+ override func awakeFromNib() {
+ super.awakeFromNib()
+ deleteButton.isHidden = true
+// button.layer.cornerRadius = 10
+// button.layer.borderWidth = 1
+ button.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(buttonAction)))
+ }
+
+ func setup(bookDetailsButtonType: BookDetailsButtonType, progress:Float?, bookDetailsModel: BookDetailsModel?){
+ self.buttonType = bookDetailsButtonType
+ let tintColor = bookDetailsButtonType.tintColor
+ button.color = bookDetailsButtonType.color
+// button.backgroundColor = bookDetailsButtonType.bgColor
+// button.layer.borderColor = bookDetailsButtonType.color.cgColor
+ buttonIcon.tintColor = tintColor
+ buttonIcon.image = bookDetailsButtonType.icon
+ button.fullProgress = false
+ if let progress = progress{
+ button.progress = progress * 100
+ }
+ else {
+ var customText = bookDetailsButtonType.getTitle()
+ if bookDetailsButtonType == .download_audiobook_listen {
+ button.fullProgress = true
+ if let bookDetailsModel = bookDetailsModel, bookDetailsModel.totalAudioChapters > 0 {
+ customText += " \(bookDetailsModel.currentAudioChapter + 1)/\(bookDetailsModel.totalAudioChapters)"
+ }
+ }
+ else if bookDetailsButtonType == .download_ebook_read {
+ button.fullProgress = true
+ if let bookDetailsModel = bookDetailsModel, bookDetailsModel.totalChapters > 0 {
+ customText += " \(bookDetailsModel.currentChapter)/\(bookDetailsModel.totalChapters)"
+ }
+ }
+
+ button.customText = customText
+ }
+
+ deleteButton.isHidden = bookDetailsButtonType.deleteButtonHidden
+ }
+
+ @objc func buttonAction(_ sender: Any) {
+ delegate?.bookDetailsButtonTableViewCellButtonTapped(buttonType: buttonType)
+ }
+
+ @IBAction func deleteButtonAction(_ sender: Any) {
+ delegate?.bookDetailsButtonTableViewCellDeleteButtonTapped(buttonType: buttonType)
+ }
+
+ override func getHeight() -> CGFloat {
+ return 55
+ }
+
+ deinit {
+ print("deinit \(self)")
+ }
+}