Manos Chorianopoulos

add spinner at WalletVC

......@@ -8,10 +8,16 @@
import UIKit
@objc public class WalletSpinnerTableViewCell: UITableViewCell {
@IBOutlet weak var spinner: UIActivityIndicatorView!
public override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
spinner.color = UIColor(red: 0.05, green: 0.65, blue: 0.00, alpha: 1.00)
spinner.translatesAutoresizingMaskIntoConstraints = false
spinner.startAnimating()
}
public override func setSelected(_ selected: Bool, animated: Bool) {
......@@ -19,5 +25,12 @@ import UIKit
// Configure the view for the selected state
}
// This is a fix for spinner stopping its animation when reusing cells
public override func prepareForReuse() {
super.prepareForReuse()
if let spinner = self.spinner {
spinner.startAnimating()
}
}
}
......
......@@ -78,6 +78,8 @@ import SwiftEventBus
var unifiedCouponsDiscount:Float = 0.0
var forYouExpanded: Bool = false;
var showSpinner: Bool = false;
var showActiveCouponsBanners: Bool = false;
public override func viewDidLoad() {
......@@ -100,8 +102,10 @@ import SwiftEventBus
DispatchQueue.main.async {
self.unifiedCoupons = swiftApi().getUnifiedCouponList()
// TODO: Maybe add this
self.matchOldSMCoupons()
self.updateMarketBadge()
// TODO: Uncomment if discounts are shown again in wallet
// self.matchOldSMCoupons()
// self.updateMarketBadge()
self.handleSpinnerAndEmptyView()
self.tableView.reloadData()
}
}
......@@ -111,13 +115,9 @@ import SwiftEventBus
DispatchQueue.main.async {
print("=== vouchers_fetched event ===")
// TODO: hide Spinner
if (swiftApi().getShowVouchersBanner() == "true") {
// TODO: show Vouchers Banner
} else {
// TODO: hide Vouchers Banner
}
self.handleSpinnerAndEmptyView()
// self.showSpinner = false
self.tableView.reloadData()
}
}
......@@ -481,21 +481,15 @@ import SwiftEventBus
emptyImage.image = UIImage(named: "ic_empty_wallet_2", in: MyEmptyClass.resourceBundle(), compatibleWith: nil)
emptyLabel.text = "Δεν έχεις κάποιον ενεργό κωδικό ή κουπόνι! Μπες τώρα στην ενότητα COSMOTE For You και βρες αποκλειστικές προσφορές!"
matchOldSMCoupons()
updateMarketBadge()
// TODO: Uncomment if discounts are shown again in wallet
// matchOldSMCoupons()
// updateMarketBadge()
// TODO: DELETE if emptyView is needed again
emptyView.isHidden = true
emptyViewHeight.constant = 0
// emptyView.isHidden = true
// emptyViewHeight.constant = 0
if (swiftApi().getShowVouchersBanner() == "") {
// TODO: show Spinner
// TODO: hide Vouchers Banner
} else if (swiftApi().getShowVouchersBanner() == "true") {
// TODO: show Vouchers Banner
} else {
// TODO: hide Vouchers Banner
}
self.handleSpinnerAndEmptyView()
}
......@@ -554,7 +548,9 @@ import SwiftEventBus
// TODO: Maybe add this
// self.matchOldSMCoupons()
// <===
self.updateMarketBadge()
// TODO: Uncomment if discounts are shown again in wallet
// self.updateMarketBadge()
self.handleSpinnerAndEmptyView()
self.tableView.reloadData()
self.startTimer()
......@@ -705,6 +701,40 @@ import SwiftEventBus
}
func handleSpinnerAndEmptyView() {
if (swiftApi().getShowVouchersBanner() == "") {
self.showSpinner = true
if (self.dfyCoupons.count == 0 && self.unifiedCoupons.count == 0 && self.coupons.count == 0) {
self.showSpinner = false
self.showActiveCouponsBanners = false
self.emptyView.isHidden = false
self.emptyViewHeight.constant = self.emptyView.intrinsicContentSize.height
} else {
self.emptyView.isHidden = true
self.emptyViewHeight.constant = 0
self.showActiveCouponsBanners = true
}
} else {
self.emptyView.isHidden = true
self.emptyViewHeight.constant = 0
self.showSpinner = false
if (self.dfyCoupons.count == 0 && self.unifiedCoupons.count == 0 && self.coupons.count == 0) {
self.showActiveCouponsBanners = false
} else {
self.showActiveCouponsBanners = true
}
}
}
// MARK: - API Functions
func getCouponsSetsDealsRequest() {
swiftApi().getCouponSetsDealsAsync(getCouponsSetsDealsCallback, failureCallback: {errorCode in
......@@ -734,6 +764,7 @@ import SwiftEventBus
DispatchQueue.main.async {
self.matchOldSMCoupons()
self.updateMarketBadge()
self.handleSpinnerAndEmptyView()
self.tableView.reloadData()
}
} else {
......@@ -957,7 +988,7 @@ extension WalletViewController: UITableViewDelegate, UITableViewDataSource{
public func numberOfSections(in tableView: UITableView) -> Int {
// return 4
return 2
return 3
}
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
......@@ -994,6 +1025,12 @@ extension WalletViewController: UITableViewDelegate, UITableViewDataSource{
} else {
return 0
}
} else if (section == 2) {
if (self.showSpinner == true) {
return 1
} else {
return 0
}
} else {
return 0
}
......@@ -1042,6 +1079,12 @@ extension WalletViewController: UITableViewDelegate, UITableViewDataSource{
} else {
return 0.0
}
} else if (indexPath.section == 2) {
if (self.showSpinner == true) {
return UITableView.automaticDimension
} else {
return 0.0
}
} else {
return 0.0
}
......@@ -1141,6 +1184,8 @@ extension WalletViewController: UITableViewDelegate, UITableViewDataSource{
// } else {
return nil
// }
} else if (section == 2) {
return nil
} else {
return nil
}
......@@ -1187,6 +1232,8 @@ extension WalletViewController: UITableViewDelegate, UITableViewDataSource{
// } else {
return 0.0
// }
} else if (section == 2) {
return 0.0
} else {
return 0.0
}
......@@ -1232,12 +1279,15 @@ extension WalletViewController: UITableViewDelegate, UITableViewDataSource{
cell.configureCell(dfyCount: self.dfyCoupons.count, smCount: self.unifiedCoupons.count, gfyCount: self.coupons.count)
return cell
} else {
} else if (indexPath.section == 1) {
let cell = tableView.dequeueReusableCell(withIdentifier: "WalletVouchersBannerTableViewCellId", for: indexPath) as! WalletVouchersBannerTableViewCell
// cell.configureCell(totalCouponValue: self.totalCouponValue, totalCouponDiscount: self.totalCouponDiscount, unifiedCouponsDiscount: self.unifiedCouponsDiscount, forYouExpanded: self.forYouExpanded)
cell.configureCell(showSeparator: self.showActiveCouponsBanners)
return cell
} else {
let cell = tableView.dequeueReusableCell(withIdentifier: "WalletSpinnerTableViewCellId", for: indexPath) as! WalletSpinnerTableViewCell
return cell
}
}
public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
......@@ -1292,6 +1342,8 @@ extension WalletViewController: UITableViewDelegate, UITableViewDataSource{
SwiftEventBus.post("vouchers_banner_pressed")
} else if (indexPath.section == 2) {
// Do nothing
} else {
// Do nothing
}
......
......@@ -8,6 +8,8 @@
import UIKit
@objc public class WalletVouchersBannerTableViewCell: UITableViewCell {
@IBOutlet weak var separatorView: UIView!
@IBOutlet weak var separatorTopSpace: NSLayoutConstraint!
@IBOutlet weak var sectionTitleLabel: UILabel!
@IBOutlet weak var voucherBannerView: UIView!
@IBOutlet weak var voucherBannerIconImage: UIImageView!
......@@ -41,5 +43,16 @@ import UIKit
// Configure the view for the selected state
}
func configureCell(showSeparator: Bool) {
if (showSeparator == true) {
separatorView.isHidden = false
separatorTopSpace.constant = 25
} else {
separatorView.isHidden = true
separatorTopSpace.constant = 0
}
}
}
......