Showing
5 changed files
with
414 additions
and
7 deletions
No preview for this file type
... | @@ -8,10 +8,172 @@ | ... | @@ -8,10 +8,172 @@ |
8 | import UIKit | 8 | import UIKit |
9 | 9 | ||
10 | class ActiveCodeTableViewCell: UITableViewCell { | 10 | class ActiveCodeTableViewCell: UITableViewCell { |
11 | + @IBOutlet weak var activeCodeView: UIView! | ||
12 | + @IBOutlet weak var activeCodeViewHeight: NSLayoutConstraint! | ||
13 | + @IBOutlet weak var activeCodesCountLabel: UILabel! | ||
14 | + @IBOutlet weak var activeCodeLabel: UILabel! | ||
15 | + @IBOutlet weak var activeCodeExpirationLabel: UILabel! | ||
16 | + @IBOutlet weak var activeCodeImage: UIImageView! | ||
17 | + @IBOutlet weak var activeCodeScrollView: UIScrollView! | ||
18 | + @IBOutlet weak var activeCodeScrollViewHeight: NSLayoutConstraint! | ||
19 | + @IBOutlet weak var activeCodeContentView: UIView! | ||
20 | + @IBOutlet weak var activeCodeContentViewHeight: NSLayoutConstraint! | ||
21 | + | ||
22 | + public var dfyCoupons:Array<swiftApi.ActiveDFYCouponModel> = swiftApi().getActiveDFYCoupons() | ||
11 | 23 | ||
12 | override func awakeFromNib() { | 24 | override func awakeFromNib() { |
13 | super.awakeFromNib() | 25 | super.awakeFromNib() |
14 | - // Initialization code | 26 | + |
27 | + // TODO: DELETE ===> | ||
28 | + // let coupon = swiftApi.ActiveDFYCouponModel() | ||
29 | + // coupon._value = "12" | ||
30 | + // // coupon._date = "2022-12-05 01:55:01" | ||
31 | + // coupon._date = "2022-10-26 23:59:01" | ||
32 | + // coupon._code = "123456789" | ||
33 | + | ||
34 | + // let coupon2 = swiftApi.ActiveDFYCouponModel() | ||
35 | + // coupon2._value = "23" | ||
36 | + // coupon2._date = "2022-11-05 01:55" | ||
37 | + // coupon2._code = "234567891" | ||
38 | + | ||
39 | + // let coupon3 = swiftApi.ActiveDFYCouponModel() | ||
40 | + // coupon3._value = "34" | ||
41 | + // coupon3._date = "2022-07-01 01:55" | ||
42 | + // coupon3._code = "345678912" | ||
43 | + | ||
44 | + // let couponsArray: Array<swiftApi.ActiveDFYCouponModel> = [coupon, coupon2, coupon3, coupon3, coupon3] | ||
45 | + | ||
46 | + // swiftApi().setActiveDFYCoupons(dfyCoupons: couponsArray) | ||
47 | + | ||
48 | + // dfyCoupons = swiftApi().getActiveDFYCoupons() | ||
49 | + // TODO: DELETE <=== | ||
50 | + | ||
51 | + activeCodeView.layer.cornerRadius = 5.0 | ||
52 | + activeCodeView.layer.shadowColor = UIColor(red: 0.00, green: 0.00, blue: 0.00, alpha: 0.16).cgColor | ||
53 | + activeCodeView.layer.shadowOffset = CGSize(width: 0.0, height: 0.0) | ||
54 | + activeCodeView.layer.shadowOpacity = 1.0 | ||
55 | + activeCodeView.layer.shadowRadius = 6.0 | ||
56 | + | ||
57 | + activeCodeImage.image = UIImage(named: "active_code_logo", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) | ||
58 | + | ||
59 | + if (dfyCoupons.count > 0) { | ||
60 | + if (dfyCoupons.count == 1) { | ||
61 | + let dateFormatter = DateFormatter() | ||
62 | + dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" | ||
63 | + // dateFormatter.dateFormat = "yyyy-MM-dd HH:mm" | ||
64 | + | ||
65 | + // sort dfyCoupons by date | ||
66 | + dfyCoupons.sort(by: { | ||
67 | + let date1 = dateFormatter.date(from: $0._date) | ||
68 | + let date2 = dateFormatter.date(from: $1._date) | ||
69 | + | ||
70 | + if ((date1 != nil) && (date2 != nil)) { | ||
71 | + return date1!.compare(date2!) == .orderedAscending | ||
72 | + } else { | ||
73 | + return false | ||
74 | + } | ||
75 | + | ||
76 | + }) | ||
77 | + | ||
78 | + // Get days from now of the most recet coupon | ||
79 | + var daysFromNow = "" | ||
80 | + let calendar = Calendar.current | ||
81 | + | ||
82 | + // Replace the hour (time) of both dates with 00:00 | ||
83 | + let date1 = calendar.startOfDay(for: Date()) | ||
84 | + if let date2 = dateFormatter.date(from: dfyCoupons[0]._date) { | ||
85 | + let components = calendar.dateComponents([.day], from: date1, to: date2) | ||
86 | + daysFromNow = (components.day) != nil ? String((components.day ?? 0) + 1) : "" | ||
87 | + } | ||
88 | + | ||
89 | + activeCodesCountLabel.text = "Ενεργός κωδικός:" | ||
90 | + // activeCodeLabel.text = dfyCoupons[0]._code | ||
91 | + let newLabel = CopyableLabel() | ||
92 | + newLabel.text = String(dfyCoupons[0]._code) | ||
93 | + newLabel.font = UIFont(name: "PFSquareSansPro-Bold", size: 19) | ||
94 | + newLabel.textColor = UIColor(rgb: 0x3C5365) | ||
95 | + newLabel.frame.size.width = newLabel.intrinsicContentSize.width | ||
96 | + newLabel.frame.size.height = newLabel.intrinsicContentSize.height // tagHeight | ||
97 | + activeCodeContentView.addSubview(newLabel) | ||
98 | + // set the btn frame origin | ||
99 | + newLabel.frame.origin.x = 0 | ||
100 | + newLabel.frame.origin.y = 0 | ||
101 | + let scrollHeight = newLabel.intrinsicContentSize.height | ||
102 | + activeCodeContentViewHeight.constant = scrollHeight | ||
103 | + activeCodeScrollViewHeight.constant = scrollHeight | ||
104 | + | ||
105 | + activeCodeExpirationLabel.isHidden = false | ||
106 | + if (daysFromNow == "1") { | ||
107 | + activeCodeExpirationLabel.text = "Λήγει σε " + daysFromNow + " ημέρα" | ||
108 | + } else { | ||
109 | + activeCodeExpirationLabel.text = "Λήγει σε " + daysFromNow + " ημέρες" | ||
110 | + } | ||
111 | + | ||
112 | + } else { | ||
113 | + var tagHeight:CGFloat = 30 | ||
114 | + let tagPadding: CGFloat = 0 | ||
115 | + let tagSpacingX: CGFloat = 0 | ||
116 | + let tagSpacingY: CGFloat = 2 | ||
117 | + | ||
118 | + let containerWidth = activeCodeContentView.frame.size.width | ||
119 | + | ||
120 | + var currentOriginX: CGFloat = 0 | ||
121 | + var currentOriginY: CGFloat = 0 | ||
122 | + | ||
123 | + // var couponCodesString = "" | ||
124 | + for (index, item) in dfyCoupons.enumerated() { | ||
125 | + let newLabel = CopyableLabel() | ||
126 | + newLabel.font = UIFont(name: "PFSquareSansPro-Bold", size: 19) | ||
127 | + newLabel.textColor = UIColor(rgb: 0x3C5365) | ||
128 | + | ||
129 | + if (index == (dfyCoupons.endIndex - 1)) { | ||
130 | + // couponCodesString += String(item._code) | ||
131 | + newLabel.text = String(item._code) | ||
132 | + } else { | ||
133 | + // couponCodesString += String(item._code) + ", " | ||
134 | + newLabel.text = String(item._code) + ", " | ||
135 | + } | ||
136 | + | ||
137 | + newLabel.frame.size.width = newLabel.intrinsicContentSize.width + tagPadding | ||
138 | + newLabel.frame.size.height = newLabel.intrinsicContentSize.height // tagHeight | ||
139 | + tagHeight = newLabel.intrinsicContentSize.height | ||
140 | + activeCodeContentView.addSubview(newLabel) | ||
141 | + | ||
142 | + // if current X + label width will be greater than container view width | ||
143 | + // "move to next row" | ||
144 | + if currentOriginX + newLabel.frame.width > containerWidth { | ||
145 | + currentOriginX = 0 | ||
146 | + currentOriginY += tagHeight + tagSpacingY | ||
147 | + } | ||
148 | + | ||
149 | + // set the btn frame origin | ||
150 | + newLabel.frame.origin.x = currentOriginX | ||
151 | + newLabel.frame.origin.y = currentOriginY | ||
152 | + | ||
153 | + // increment current X by btn width + spacing | ||
154 | + currentOriginX += newLabel.frame.width + tagSpacingX | ||
155 | + } | ||
156 | + | ||
157 | + activeCodesCountLabel.text = String(dfyCoupons.count) + " Ενεργοί κωδικοί:" | ||
158 | + // activeCodeLabel.text = couponCodesString | ||
159 | + activeCodeExpirationLabel.isHidden = true | ||
160 | + | ||
161 | + // update container view height | ||
162 | + activeCodeContentViewHeight.constant = currentOriginY + tagHeight | ||
163 | + if ((currentOriginY + tagHeight) <= (2 * tagHeight + tagSpacingY)) { | ||
164 | + activeCodeScrollViewHeight.constant = currentOriginY + tagHeight | ||
165 | + } else { | ||
166 | + activeCodeScrollViewHeight.constant = 2 * tagHeight + tagSpacingY | ||
167 | + } | ||
168 | + } | ||
169 | + } else { | ||
170 | + activeCodeLabel.text = "-" | ||
171 | + activeCodeExpirationLabel.text = "" | ||
172 | + | ||
173 | + activeCodeView.isHidden = true | ||
174 | + | ||
175 | + activeCodeViewHeight.constant = 0 | ||
176 | + } | ||
15 | } | 177 | } |
16 | 178 | ||
17 | override func setSelected(_ selected: Bool, animated: Bool) { | 179 | override func setSelected(_ selected: Bool, animated: Bool) { | ... | ... |
This diff is collapsed. Click to expand it.
... | @@ -5,19 +5,91 @@ | ... | @@ -5,19 +5,91 @@ |
5 | // Created by Manos Chorianopoulos on 3/4/23. | 5 | // Created by Manos Chorianopoulos on 3/4/23. |
6 | // | 6 | // |
7 | 7 | ||
8 | +import Foundation | ||
8 | import UIKit | 9 | import UIKit |
9 | 10 | ||
10 | class UnifiedCouponsTableViewCell: UITableViewCell { | 11 | class UnifiedCouponsTableViewCell: UITableViewCell { |
12 | + @IBOutlet weak var couponBgImage: UIImageView! | ||
13 | + @IBOutlet weak var couponImage: UIImageView! | ||
14 | + @IBOutlet weak var borderView: UIView! | ||
15 | + @IBOutlet weak var nameLabel: UILabel! | ||
16 | + @IBOutlet weak var dicountLabel: UILabel! | ||
17 | + @IBOutlet weak var discriptionLabel: UILabel! | ||
18 | + @IBOutlet weak var expirationLabel: UILabel! | ||
11 | 19 | ||
12 | - override func awakeFromNib() { | 20 | + var postImageURL: String? { |
21 | + didSet { | ||
22 | + if let url = postImageURL { | ||
23 | + self.couponImage.image = UIImage() // UIImage(named: "loading") | ||
24 | + | ||
25 | + UIImage.loadImageUsingCacheWithUrlString(url) { image in | ||
26 | + // set the image only when we are still displaying the content for the image we finished downloading | ||
27 | + if url == self.postImageURL { | ||
28 | + self.couponImage.image = image | ||
29 | + } | ||
30 | + } | ||
31 | + } | ||
32 | + else { | ||
33 | + self.couponImage.image = nil | ||
34 | + } | ||
35 | + } | ||
36 | + } | ||
37 | + | ||
38 | + | ||
39 | + public override func awakeFromNib() { | ||
13 | super.awakeFromNib() | 40 | super.awakeFromNib() |
14 | // Initialization code | 41 | // Initialization code |
42 | + | ||
43 | + couponBgImage.image = UIImage(named: "coupon_bg", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) | ||
44 | + | ||
45 | + borderView.addDashedBorderVertical(color: UIColor(red: 0.44, green: 0.44, blue: 0.44, alpha: 1.00), width: 1.0, height: 110.0) | ||
15 | } | 46 | } |
16 | 47 | ||
17 | - override func setSelected(_ selected: Bool, animated: Bool) { | 48 | + public override func setSelected(_ selected: Bool, animated: Bool) { |
18 | super.setSelected(selected, animated: animated) | 49 | super.setSelected(selected, animated: animated) |
19 | 50 | ||
20 | // Configure the view for the selected state | 51 | // Configure the view for the selected state |
21 | } | 52 | } |
22 | 53 | ||
54 | + public override func layoutSubviews() { | ||
55 | + super.layoutSubviews() | ||
56 | + //set the values for top,left,bottom,right margins | ||
57 | + let margins = UIEdgeInsets(top: 0, left: 0, bottom: 8, right: 0) | ||
58 | + contentView.frame = contentView.frame.inset(by: margins) | ||
59 | + } | ||
60 | + | ||
61 | + | ||
62 | + func configureCell(coupon: swiftApi.CouponItemModel) { | ||
63 | +// COUPONSET: desc, img_preview, name, terms, merchant_uuid, discount_type, final_price | ||
64 | +// COUPON: coupon, expiration, discount, status | ||
65 | +// MERCHANT: _img_preview,_admin_name | ||
66 | + | ||
67 | + let merchantList:Array<swiftApi.MerchantModel> = swiftApi().getMerchantList() | ||
68 | + | ||
69 | + let couponSetData: swiftApi.CouponSetItemModel? = coupon.couponset_data | ||
70 | + | ||
71 | + nameLabel.text = "" | ||
72 | + | ||
73 | + for merchant in merchantList { | ||
74 | + if (merchant._uuid == couponSetData?.merchant_uuid) { | ||
75 | + // couponImage.load(link: merchant._img_preview, placeholder: UIImage(), cache: URLCache()) | ||
76 | + self.postImageURL = merchant._img_preview | ||
77 | + nameLabel.text = merchant._admin_name | ||
78 | + break; | ||
79 | + } | ||
80 | + } | ||
81 | + | ||
82 | +// couponImage.load(link: couponSetData?.img_preview ?? "", placeholder: UIImage(), cache: URLCache()) | ||
83 | +// nameLabel.text = couponSetData?.name ?? "" | ||
84 | + let discount = couponSetData?.discount_type == "value" ? ((coupon.discount ?? "") + "€") | ||
85 | + : couponSetData?.discount_type == "percentage" ? ((coupon.discount ?? "") + "%") | ||
86 | + : couponSetData?.discount_type == "plus_one" ? "1+1" | ||
87 | + : ((coupon.discount ?? "") + "€") | ||
88 | + dicountLabel.text = discount | ||
89 | + // let htmlText = couponSetData?.inner_text ?? "" | ||
90 | + // discriptionLabel.text = htmlText.htmlToString | ||
91 | + discriptionLabel.text = couponSetData?.inner_text ?? "" | ||
92 | + expirationLabel.text = "Ισχύει έως "+(coupon.expiration ?? "") | ||
93 | + } | ||
94 | + | ||
23 | } | 95 | } | ... | ... |
... | @@ -44,11 +44,23 @@ import SwiftEventBus | ... | @@ -44,11 +44,23 @@ import SwiftEventBus |
44 | @IBOutlet weak var activeCodeScrollViewHeight: NSLayoutConstraint! | 44 | @IBOutlet weak var activeCodeScrollViewHeight: NSLayoutConstraint! |
45 | @IBOutlet weak var activeCodeContentView: UIView! | 45 | @IBOutlet weak var activeCodeContentView: UIView! |
46 | @IBOutlet weak var activeCodeContentViewHeight: NSLayoutConstraint! | 46 | @IBOutlet weak var activeCodeContentViewHeight: NSLayoutConstraint! |
47 | + @IBOutlet weak var rewardsView: UIView! | ||
48 | + @IBOutlet weak var rewardsLabel: UILabel! | ||
49 | + @IBOutlet weak var sumBadgeImage: UIImageView! | ||
50 | + @IBOutlet weak var sumBadgeLabel: UILabel! | ||
51 | + @IBOutlet weak var dfyBadgeImage: UIImageView! | ||
52 | + @IBOutlet weak var dfyBadgeLabel: UILabel! | ||
53 | + @IBOutlet weak var couponBadgeImage: UIImageView! | ||
54 | + @IBOutlet weak var couponBadgeLabel: UILabel! | ||
55 | + @IBOutlet weak var marketBadgeImage: UIImageView! | ||
56 | + @IBOutlet weak var marketBadgeLabel: UILabel! | ||
47 | 57 | ||
48 | public var coupons:Array<swiftApi.CouponItemModel> = swiftApi().getCouponList() | 58 | public var coupons:Array<swiftApi.CouponItemModel> = swiftApi().getCouponList() |
49 | public var dfyCoupons:Array<swiftApi.ActiveDFYCouponModel> = swiftApi().getActiveDFYCoupons() | 59 | public var dfyCoupons:Array<swiftApi.ActiveDFYCouponModel> = swiftApi().getActiveDFYCoupons() |
50 | public var loyaltyBadge:swiftApi.LoyaltyBadgeModel = swiftApi().getLoyaltyBadge() | 60 | public var loyaltyBadge:swiftApi.LoyaltyBadgeModel = swiftApi().getLoyaltyBadge() |
51 | public var profile:swiftApi.ProfileModel? = swiftApi().getConsumer() | 61 | public var profile:swiftApi.ProfileModel? = swiftApi().getConsumer() |
62 | + // TODO: Add correct unifiedCoupons | ||
63 | + public var unifiedCoupons:Array<swiftApi.CouponItemModel> = swiftApi().getCouponList() | ||
52 | 64 | ||
53 | var timerWallet: DispatchSourceTimer? | 65 | var timerWallet: DispatchSourceTimer? |
54 | var seconds: Int = 0 | 66 | var seconds: Int = 0 |
... | @@ -58,6 +70,30 @@ import SwiftEventBus | ... | @@ -58,6 +70,30 @@ import SwiftEventBus |
58 | 70 | ||
59 | self.hidesBottomBarWhenPushed = true | 71 | self.hidesBottomBarWhenPushed = true |
60 | 72 | ||
73 | + // TODO: DELETE ===> | ||
74 | + // let coupon = swiftApi.ActiveDFYCouponModel() | ||
75 | + // coupon._value = "12" | ||
76 | + // // coupon._date = "2022-12-05 01:55:01" | ||
77 | + // coupon._date = "2022-10-26 23:59:01" | ||
78 | + // coupon._code = "123456789" | ||
79 | + | ||
80 | + // let coupon2 = swiftApi.ActiveDFYCouponModel() | ||
81 | + // coupon2._value = "23" | ||
82 | + // coupon2._date = "2022-11-05 01:55" | ||
83 | + // coupon2._code = "234567891" | ||
84 | + | ||
85 | + // let coupon3 = swiftApi.ActiveDFYCouponModel() | ||
86 | + // coupon3._value = "34" | ||
87 | + // coupon3._date = "2022-07-01 01:55" | ||
88 | + // coupon3._code = "345678912" | ||
89 | + | ||
90 | + // let couponsArray: Array<swiftApi.ActiveDFYCouponModel> = [coupon, coupon2, coupon3, coupon3, coupon3] | ||
91 | + | ||
92 | + // swiftApi().setActiveDFYCoupons(dfyCoupons: couponsArray) | ||
93 | + | ||
94 | + // dfyCoupons = swiftApi().getActiveDFYCoupons() | ||
95 | + // TODO: DELETE <=== | ||
96 | + | ||
61 | setBackButton() | 97 | setBackButton() |
62 | setNavigationTitle("My Rewards") | 98 | setNavigationTitle("My Rewards") |
63 | 99 | ||
... | @@ -341,7 +377,9 @@ import SwiftEventBus | ... | @@ -341,7 +377,9 @@ import SwiftEventBus |
341 | 377 | ||
342 | emptyImage.image = UIImage(named: "ic_empty_wallet", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) | 378 | emptyImage.image = UIImage(named: "ic_empty_wallet", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) |
343 | emptyLabel.text = "Δεν έχεις κάποιον ενεργό κωδικό ή κουπόνι! Μπες τώρα στην ενότητα COSMOTE For You και βρες αποκλειστικές προσφορές!" | 379 | emptyLabel.text = "Δεν έχεις κάποιον ενεργό κωδικό ή κουπόνι! Μπες τώρα στην ενότητα COSMOTE For You και βρες αποκλειστικές προσφορές!" |
344 | - if (totalCouponValue == 0.0 && loyaltyBadge._couponCount == 0 && dfyCoupons.count == 0 && coupons.count == 0) { | 380 | + // TODO: FIX emptyView check |
381 | +// if (totalCouponValue == 0.0 && loyaltyBadge._couponCount == 0 && dfyCoupons.count == 0 && coupons.count == 0) { | ||
382 | + if (totalCouponValue == 0.0 && loyaltyBadge._couponCount == 0 && dfyCoupons.count == 0 && coupons.count == 0 && unifiedCoupons.count == 0) { | ||
345 | emptyView.isHidden = false | 383 | emptyView.isHidden = false |
346 | } else { | 384 | } else { |
347 | emptyView.isHidden = true | 385 | emptyView.isHidden = true |
... | @@ -523,28 +561,162 @@ import SwiftEventBus | ... | @@ -523,28 +561,162 @@ import SwiftEventBus |
523 | extension WalletViewController: UITableViewDelegate, UITableViewDataSource{ | 561 | extension WalletViewController: UITableViewDelegate, UITableViewDataSource{ |
524 | 562 | ||
525 | public func numberOfSections(in tableView: UITableView) -> Int { | 563 | public func numberOfSections(in tableView: UITableView) -> Int { |
526 | - return 1 | 564 | + return 3 |
527 | } | 565 | } |
528 | 566 | ||
529 | public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | 567 | public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
568 | + if (section == 0) { | ||
569 | + // TODO: Dynamic | ||
570 | + return 3 | ||
571 | +// return self.unifiedCoupons.count | ||
572 | + } else if (section == 1) { | ||
573 | + return 1 | ||
574 | + } | ||
530 | return self.coupons.count | 575 | return self.coupons.count |
531 | } | 576 | } |
532 | 577 | ||
533 | public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | 578 | public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
579 | + if (indexPath.section == 0) { | ||
580 | + if (self.unifiedCoupons.count > 0) { | ||
534 | return 120.0 + 8.0 | 581 | return 120.0 + 8.0 |
535 | -// return UITableViewAutomaticDimension | 582 | + } else { |
583 | + return 0.0 | ||
584 | + } | ||
585 | + } else if (indexPath.section == 1) { | ||
586 | + // TODO: Uncomment | ||
587 | + if (self.dfyCoupons.count > 0) { | ||
588 | + return UITableView.automaticDimension | ||
589 | + } else { | ||
590 | + return 0.0 | ||
591 | + } | ||
592 | + | ||
593 | + } else { | ||
594 | + if (self.coupons.count > 0) { | ||
595 | + return 120.0 + 8.0 | ||
596 | + } else { | ||
597 | + return 0.0 | ||
598 | + } | ||
599 | + } | ||
600 | + } | ||
601 | + | ||
602 | + public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { | ||
603 | + if (section == 0) { | ||
604 | + let view = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 75)) | ||
605 | + view.backgroundColor = .clear | ||
606 | + | ||
607 | + let titleLabel = UILabel(frame: CGRect(x: 20, y: 40, width: view.frame.width - 40, height: 21)) | ||
608 | + titleLabel.font = UIFont(name: "PFSquareSansPro-Medium", size: 21) | ||
609 | + titleLabel.textColor = UIColor(rgb: 0xFFFFFF) | ||
610 | + titleLabel.text = "COSMOTE SuperMarket Deals" | ||
611 | + | ||
612 | + view.addSubview(titleLabel) | ||
613 | + return view | ||
614 | + | ||
615 | + } else if (section == 1) { | ||
616 | + let view = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 68)) | ||
617 | + view.backgroundColor = .clear | ||
618 | + | ||
619 | + let imageView = UIImageView(frame: CGRect(x: 20, y: 20, width: view.frame.width / 3.5, height: 38)) | ||
620 | + imageView.contentMode = .scaleAspectFit | ||
621 | + | ||
622 | + if let dfyHeaderImage = UIImage(named: "dfy_logo_white", in: MyEmptyClass.resourceBundle(), compatibleWith: nil) { | ||
623 | + imageView.image = dfyHeaderImage | ||
624 | + } | ||
625 | + view.addSubview(imageView) | ||
626 | + | ||
627 | + return view | ||
628 | + | ||
629 | + } else { | ||
630 | +// let view = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 71)) | ||
631 | + let view = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 65)) | ||
632 | + view.backgroundColor = .clear | ||
633 | + | ||
634 | +// let titleLabel = UILabel(frame: CGRect(x: 20, y: 40, width: view.frame.width - 40, height: 21)) | ||
635 | + let titleLabel = UILabel(frame: CGRect(x: 20, y: 30, width: view.frame.width - 40, height: 21)) | ||
636 | + titleLabel.font = UIFont(name: "PFSquareSansPro-Medium", size: 21) | ||
637 | + titleLabel.textColor = UIColor(rgb: 0xFFFFFF) | ||
638 | + titleLabel.text = "Τα δώρα μου" | ||
639 | + | ||
640 | + view.addSubview(titleLabel) | ||
641 | + return view | ||
642 | + } | ||
643 | + } | ||
644 | + | ||
645 | + public func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { | ||
646 | + if (section == 0) { | ||
647 | + if (self.unifiedCoupons.count > 0) { | ||
648 | + return 75.0 | ||
649 | + } else { | ||
650 | + return 0.0 | ||
651 | + } | ||
652 | + | ||
653 | + } else if (section == 1) { | ||
654 | + if (self.dfyCoupons.count > 0) { | ||
655 | + return 68.0 | ||
656 | + } else { | ||
657 | + return 0.0 | ||
658 | + } | ||
659 | + | ||
660 | + } else { | ||
661 | + if (self.coupons.count > 0) { | ||
662 | + return 65.0 | ||
663 | + } else { | ||
664 | + return 0.0 | ||
665 | + } | ||
666 | + } | ||
667 | + } | ||
668 | + | ||
669 | + public func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { | ||
670 | +// return CGFloat.leastNormalMagnitude | ||
671 | + return 0.0 | ||
672 | + } | ||
673 | + | ||
674 | + public func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { | ||
675 | + return nil | ||
536 | } | 676 | } |
537 | 677 | ||
538 | public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | 678 | public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
539 | - let cell = tableView.dequeueReusableCell(withIdentifier: "CouponsTableViewCellId", for: indexPath) as! CouponsTableViewCell | ||
540 | 679 | ||
680 | + if (indexPath.section == 0) { | ||
681 | + let cell = tableView.dequeueReusableCell(withIdentifier: "UnifiedCouponsTableViewCellId", for: indexPath) as! UnifiedCouponsTableViewCell | ||
541 | cell.configureCell(coupon: coupons[indexPath.row]) | 682 | cell.configureCell(coupon: coupons[indexPath.row]) |
683 | + return cell | ||
542 | 684 | ||
685 | + } else if (indexPath.section == 1) { | ||
686 | + let cell = tableView.dequeueReusableCell(withIdentifier: "ActiveCodeTableViewCellId", for: indexPath) as! ActiveCodeTableViewCell | ||
687 | +// cell.configureCell(coupon: coupons[indexPath.row]) | ||
688 | + return cell | ||
689 | + | ||
690 | + } else { | ||
691 | + let cell = tableView.dequeueReusableCell(withIdentifier: "CouponsTableViewCellId", for: indexPath) as! CouponsTableViewCell | ||
692 | + cell.configureCell(coupon: coupons[indexPath.row]) | ||
543 | return cell | 693 | return cell |
544 | } | 694 | } |
695 | + } | ||
545 | 696 | ||
546 | public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | 697 | public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { |
698 | + if (indexPath.section == 0) { | ||
699 | + // TODO: open unified CouponBarcodeViewController | ||
700 | +// let couponSetData: swiftApi.CouponSetItemModel? = coupons[indexPath.row].couponset_data | ||
701 | +// let couponName = couponSetData?.name ?? "" | ||
702 | +// swiftApi().logTrackersEvent("click", ("Coupon:" + couponName)) | ||
703 | +// | ||
704 | +// let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self)) | ||
705 | +// let vc = storyboard.instantiateViewController(withIdentifier: "CouponBarcodeViewController") as! SwiftWarplyFramework.CouponBarcodeViewController | ||
706 | +// vc.coupon = coupons[indexPath.row] | ||
707 | +// vc.isFromWallet = true | ||
708 | +// self.navigationController?.pushViewController(vc, animated: true) | ||
709 | + | ||
710 | + } else if (indexPath.section == 1) { | ||
711 | + print("Active DFY coupon banner Tapped!") | ||
547 | 712 | ||
713 | + swiftApi().logTrackersEvent("click", ("LoyaltyWalletScreen:" + "ActiveDealsBanner")) | ||
714 | + | ||
715 | + let couponDetails = swiftApi.ActiveDFYCouponEventModel() | ||
716 | + couponDetails._isPressed = true | ||
717 | + SwiftEventBus.post("dfy_coupon_details", sender: couponDetails) | ||
718 | + | ||
719 | + } else { | ||
548 | let couponSetData: swiftApi.CouponSetItemModel? = coupons[indexPath.row].couponset_data | 720 | let couponSetData: swiftApi.CouponSetItemModel? = coupons[indexPath.row].couponset_data |
549 | let couponName = couponSetData?.name ?? "" | 721 | let couponName = couponSetData?.name ?? "" |
550 | swiftApi().logTrackersEvent("click", ("Coupon:" + couponName)) | 722 | swiftApi().logTrackersEvent("click", ("Coupon:" + couponName)) |
... | @@ -554,6 +726,7 @@ extension WalletViewController: UITableViewDelegate, UITableViewDataSource{ | ... | @@ -554,6 +726,7 @@ extension WalletViewController: UITableViewDelegate, UITableViewDataSource{ |
554 | vc.coupon = coupons[indexPath.row] | 726 | vc.coupon = coupons[indexPath.row] |
555 | vc.isFromWallet = true | 727 | vc.isFromWallet = true |
556 | self.navigationController?.pushViewController(vc, animated: true) | 728 | self.navigationController?.pushViewController(vc, animated: true) |
729 | + } | ||
557 | 730 | ||
558 | } | 731 | } |
559 | } | 732 | } | ... | ... |
-
Please register or login to post a comment