X-Git-Url: https://git.mdrn.pl/wl-app.git/blobdiff_plain/53b27422d140022594fc241cca91c3183be57bca..48b2fe9f7c2dc3d9aeaaa6dbfb27c7da4f3235ff:/iOS/WolneLektury/Screens/BookDetails/Cells/BookDetailsButtonTableViewCell.swift diff --git a/iOS/WolneLektury/Screens/BookDetails/Cells/BookDetailsButtonTableViewCell.swift b/iOS/WolneLektury/Screens/BookDetails/Cells/BookDetailsButtonTableViewCell.swift new file mode 100644 index 0000000..a715bc1 --- /dev/null +++ b/iOS/WolneLektury/Screens/BookDetails/Cells/BookDetailsButtonTableViewCell.swift @@ -0,0 +1,145 @@ +// +// 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)") + } +}