added iOS source code
[wl-app.git] / iOS / WolneLektury / Screens / Common / Views / BookDescriptionView.swift
diff --git a/iOS/WolneLektury/Screens/Common/Views/BookDescriptionView.swift b/iOS/WolneLektury/Screens/Common/Views/BookDescriptionView.swift
new file mode 100644 (file)
index 0000000..07a57b7
--- /dev/null
@@ -0,0 +1,129 @@
+//
+//  BookDescriptionView.swift
+//  WolneLektury
+//
+//  Created by Pawel Dabrowski on 18/06/2018.
+//  Copyright © 2018 Fundacja Nowoczesna Polska. All rights reserved.
+//
+
+import UIKit
+
+class BookDescriptionView: DesignableXibView {
+
+    @IBOutlet weak var authorLabel: UILabel!
+    @IBOutlet weak var titleLabel: UILabel!
+    
+    @IBOutlet weak var epochTitleLabel: UILabel!
+    @IBOutlet weak var kindTitleLabel: UILabel!
+    @IBOutlet weak var genreTitleLabel: UILabel!
+    
+    @IBOutlet weak var epochLabel: UILabel!
+    @IBOutlet weak var kindLabel: UILabel!
+    @IBOutlet weak var genreLabel: UILabel!
+    
+    @IBOutlet weak var lineView: UIView!
+    
+    @IBOutlet weak var descFirstImageView: UIImageView!
+    @IBOutlet weak var descFirstLabel: UILabel!
+    @IBOutlet weak var descSecondImageView: UIImageView!
+    @IBOutlet weak var descSecondLabel: UILabel!
+    
+    @IBOutlet weak var epochTopConstraint: NSLayoutConstraint!
+    @IBOutlet weak var titleLabelTrailingConstraint: NSLayoutConstraint!
+    
+    @IBOutlet weak var trashButton: UIButton!
+    
+    let orangeTextColor = UIColor(red: 255.0/255.0, green: 165/255.0, blue: 0, alpha: 1.0)
+    let whiteTextColor = UIColor.white
+    
+    override func awakeFromNib() {
+        super.awakeFromNib()
+        epochTitleLabel.text = "book_epoch".localized.uppercased()
+        kindTitleLabel.text = "book_kind".localized.uppercased()
+        genreTitleLabel.text = "book_genre".localized.uppercased()
+        descFirstImageView.tintColor = lineView.backgroundColor
+        descSecondImageView.tintColor = lineView.backgroundColor
+        descFirstImageView.image = #imageLiteral(resourceName: "icon_glasses-mid")
+        descSecondImageView.image = #imageLiteral(resourceName: "icon_speaker-mid")
+        setTrashButtonHidden(isHidden: true)
+    }
+    
+    func setDescViewsVisibility(hidden: Bool){
+        descFirstImageView.isHidden = hidden
+        descFirstLabel.isHidden = hidden
+        descSecondImageView.isHidden = hidden
+        descSecondLabel.isHidden = hidden
+        
+        epochTopConstraint.constant = hidden ? 10 : 30
+    }
+    
+    func setup(bookModel: BookModel, isPremium: Bool = false){
+        setDescViewsVisibility(hidden: false)
+        
+        descSecondImageView.isHidden = !bookModel.has_audio
+        descSecondLabel.isHidden = !bookModel.has_audio
+        if isPremium{
+            
+            authorLabel.textColor = whiteTextColor
+            epochTitleLabel.textColor = whiteTextColor
+            kindTitleLabel.textColor = whiteTextColor
+            genreTitleLabel.textColor = whiteTextColor
+            
+            descFirstImageView.tintColor = whiteTextColor
+            descFirstLabel.textColor = whiteTextColor
+            descSecondImageView.tintColor = whiteTextColor
+            descSecondLabel.textColor = whiteTextColor
+            
+            lineView.backgroundColor = whiteTextColor
+            
+            titleLabel.textColor = orangeTextColor
+            epochLabel.textColor = orangeTextColor
+            kindLabel.textColor = orangeTextColor
+            genreLabel.textColor = orangeTextColor
+        }
+        
+        authorLabel.text = bookModel.author
+        titleLabel.text = bookModel.title
+        epochLabel.text = bookModel.epoch
+        kindLabel.text = bookModel.kind
+        genreLabel.text = bookModel.genre
+    }
+    
+    func setup(bookDetailsModel: BookDetailsModel){
+        setDescViewsVisibility(hidden: false)
+        
+        authorLabel.text = bookDetailsModel.getAuthor()
+        titleLabel.text = bookDetailsModel.title
+        epochLabel.text = bookDetailsModel.getEpochs()
+        kindLabel.text = bookDetailsModel.getKinds()
+        genreLabel.text = bookDetailsModel.getGenres()
+        
+        if bookDetailsModel.totalChapters > 0 && bookDetailsModel.currentChapter <= bookDetailsModel.totalChapters{
+            let progress = Double(bookDetailsModel.currentChapter)/Double(bookDetailsModel.totalChapters) * 100.0
+            descFirstLabel.text = String(format: "reading_progress".localized, progress).uppercased()
+        }
+        else {
+            descFirstLabel.text = ""
+        }
+        
+        descSecondImageView.isHidden = bookDetailsModel.audio_length.count == 0
+        descSecondLabel.isHidden = bookDetailsModel.audio_length.count == 0
+
+        /*
+        if bookDetailsModel.totalAudioChapters > 0 && bookDetailsModel.currentAudioChapter < bookDetailsModel.totalAudioChapters{
+            let progress = Double(bookDetailsModel.currentAudioChapter + 1)/Double(bookDetailsModel.totalAudioChapters) * 100.0
+            descSecondLabel.text = String(format: "listening_progress".localized, progress).uppercased()
+        }
+        else {
+            descSecondLabel.text = ""
+        }
+        */
+        setTrashButtonHidden(isHidden: false)
+    }
+    
+    func setTrashButtonHidden(isHidden: Bool){
+        trashButton.isHidden = isHidden
+        titleLabelTrailingConstraint.constant = isHidden ? 0 : 30
+    }
+
+}