Showing
8 changed files
with
365 additions
and
38 deletions
| ... | @@ -19,6 +19,7 @@ | ... | @@ -19,6 +19,7 @@ |
| 19 | 1EBE97212865EE460080EFF7 /* MFYInboxTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EBE97202865EE460080EFF7 /* MFYInboxTableViewCell.swift */; }; | 19 | 1EBE97212865EE460080EFF7 /* MFYInboxTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EBE97202865EE460080EFF7 /* MFYInboxTableViewCell.swift */; }; |
| 20 | 1EBF5F072840E13F00B8B17F /* SwiftEventBus in Frameworks */ = {isa = PBXBuildFile; productRef = 1EBF5F062840E13F00B8B17F /* SwiftEventBus */; }; | 20 | 1EBF5F072840E13F00B8B17F /* SwiftEventBus in Frameworks */ = {isa = PBXBuildFile; productRef = 1EBF5F062840E13F00B8B17F /* SwiftEventBus */; }; |
| 21 | 7630AD9A6242D60846D6750C /* Pods_SwiftWarplyFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0D5F56DD4E5371A50AD2D87 /* Pods_SwiftWarplyFramework.framework */; }; | 21 | 7630AD9A6242D60846D6750C /* Pods_SwiftWarplyFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0D5F56DD4E5371A50AD2D87 /* Pods_SwiftWarplyFramework.framework */; }; |
| 22 | + A04D31DE288FF670000E43B5 /* HistoryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A04D31DD288FF670000E43B5 /* HistoryViewController.swift */; }; | ||
| 22 | A079366E2885D07700064122 /* AnalysisChildViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A079366D2885D07700064122 /* AnalysisChildViewController.swift */; }; | 23 | A079366E2885D07700064122 /* AnalysisChildViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A079366D2885D07700064122 /* AnalysisChildViewController.swift */; }; |
| 23 | A07936702885D95600064122 /* AnalysisItemViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A079366F2885D95600064122 /* AnalysisItemViewCell.swift */; }; | 24 | A07936702885D95600064122 /* AnalysisItemViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A079366F2885D95600064122 /* AnalysisItemViewCell.swift */; }; |
| 24 | A07936732885E67400064122 /* AnalysisItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A07936722885E67400064122 /* AnalysisItem.swift */; }; | 25 | A07936732885E67400064122 /* AnalysisItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A07936722885E67400064122 /* AnalysisItem.swift */; }; |
| ... | @@ -165,6 +166,7 @@ | ... | @@ -165,6 +166,7 @@ |
| 165 | 1EB5F4C728536FD60016F36E /* StepsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepsViewController.swift; sourceTree = "<group>"; }; | 166 | 1EB5F4C728536FD60016F36E /* StepsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepsViewController.swift; sourceTree = "<group>"; }; |
| 166 | 1EB5F4C9285370C90016F36E /* LoyaltyAnalysisViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoyaltyAnalysisViewController.swift; sourceTree = "<group>"; }; | 167 | 1EB5F4C9285370C90016F36E /* LoyaltyAnalysisViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoyaltyAnalysisViewController.swift; sourceTree = "<group>"; }; |
| 167 | 1EBE97202865EE460080EFF7 /* MFYInboxTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MFYInboxTableViewCell.swift; sourceTree = "<group>"; }; | 168 | 1EBE97202865EE460080EFF7 /* MFYInboxTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MFYInboxTableViewCell.swift; sourceTree = "<group>"; }; |
| 169 | + A04D31DD288FF670000E43B5 /* HistoryViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HistoryViewController.swift; sourceTree = "<group>"; }; | ||
| 168 | A079366D2885D07700064122 /* AnalysisChildViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalysisChildViewController.swift; sourceTree = "<group>"; }; | 170 | A079366D2885D07700064122 /* AnalysisChildViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalysisChildViewController.swift; sourceTree = "<group>"; }; |
| 169 | A079366F2885D95600064122 /* AnalysisItemViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalysisItemViewCell.swift; sourceTree = "<group>"; }; | 171 | A079366F2885D95600064122 /* AnalysisItemViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalysisItemViewCell.swift; sourceTree = "<group>"; }; |
| 170 | A07936722885E67400064122 /* AnalysisItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalysisItem.swift; sourceTree = "<group>"; }; | 172 | A07936722885E67400064122 /* AnalysisItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalysisItem.swift; sourceTree = "<group>"; }; |
| ... | @@ -333,6 +335,7 @@ | ... | @@ -333,6 +335,7 @@ |
| 333 | A079367A2885F2D100064122 /* cells */, | 335 | A079367A2885F2D100064122 /* cells */, |
| 334 | 1EB5F4C9285370C90016F36E /* LoyaltyAnalysisViewController.swift */, | 336 | 1EB5F4C9285370C90016F36E /* LoyaltyAnalysisViewController.swift */, |
| 335 | A079366D2885D07700064122 /* AnalysisChildViewController.swift */, | 337 | A079366D2885D07700064122 /* AnalysisChildViewController.swift */, |
| 338 | + A04D31DD288FF670000E43B5 /* HistoryViewController.swift */, | ||
| 336 | A09DBCAD2888BA8100DD50B0 /* SharingHistoryViewController.swift */, | 339 | A09DBCAD2888BA8100DD50B0 /* SharingHistoryViewController.swift */, |
| 337 | ); | 340 | ); |
| 338 | name = analysis; | 341 | name = analysis; |
| ... | @@ -888,6 +891,7 @@ | ... | @@ -888,6 +891,7 @@ |
| 888 | E6A7791A282933E60045BBA8 /* WLAPPActionHandler.m in Sources */, | 891 | E6A7791A282933E60045BBA8 /* WLAPPActionHandler.m in Sources */, |
| 889 | E6A778E1282933E60045BBA8 /* CouponViewController.swift in Sources */, | 892 | E6A778E1282933E60045BBA8 /* CouponViewController.swift in Sources */, |
| 890 | E6A77924282933E70045BBA8 /* NSString+SSToolkitAdditions.m in Sources */, | 893 | E6A77924282933E70045BBA8 /* NSString+SSToolkitAdditions.m in Sources */, |
| 894 | + A04D31DE288FF670000E43B5 /* HistoryViewController.swift in Sources */, | ||
| 891 | E6A7792A282933E70045BBA8 /* AFNetworkActivityIndicatorManager.m in Sources */, | 895 | E6A7792A282933E70045BBA8 /* AFNetworkActivityIndicatorManager.m in Sources */, |
| 892 | E6A77914282933E60045BBA8 /* WLUserManager.m in Sources */, | 896 | E6A77914282933E60045BBA8 /* WLUserManager.m in Sources */, |
| 893 | 1EB236AF28816CAC0063777A /* NumbersTableViewCell.swift in Sources */, | 897 | 1EB236AF28816CAC0063777A /* NumbersTableViewCell.swift in Sources */, | ... | ... |
| ... | @@ -14,10 +14,15 @@ class AnalysisHeaderMessageViewCell: UITableViewCell { | ... | @@ -14,10 +14,15 @@ class AnalysisHeaderMessageViewCell: UITableViewCell { |
| 14 | @IBOutlet weak var messageLabel: UILabel! | 14 | @IBOutlet weak var messageLabel: UILabel! |
| 15 | @IBOutlet weak var titleLabel: UILabel! | 15 | @IBOutlet weak var titleLabel: UILabel! |
| 16 | 16 | ||
| 17 | + public var loyaltyBadge:swiftApi.LoyaltyBadgeModel = swiftApi().getLoyaltyBadge() | ||
| 18 | + | ||
| 17 | // lifecycle | 19 | // lifecycle |
| 18 | override func awakeFromNib() { | 20 | override func awakeFromNib() { |
| 19 | super.awakeFromNib() | 21 | super.awakeFromNib() |
| 20 | 22 | ||
| 23 | + // image | ||
| 24 | + itemImage.image = UIImage(named: "ic_gift_circle", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil) | ||
| 25 | + | ||
| 21 | // title | 26 | // title |
| 22 | titleLabel.textColor = UIColor(rgb: 0x435563) | 27 | titleLabel.textColor = UIColor(rgb: 0x435563) |
| 23 | titleLabel.text = "Αναλυτικά:" | 28 | titleLabel.text = "Αναλυτικά:" |
| ... | @@ -26,7 +31,12 @@ class AnalysisHeaderMessageViewCell: UITableViewCell { | ... | @@ -26,7 +31,12 @@ class AnalysisHeaderMessageViewCell: UITableViewCell { |
| 26 | messageLabel.textColor = UIColor(rgb: 0x435563) | 31 | messageLabel.textColor = UIColor(rgb: 0x435563) |
| 27 | messageLabel.layer.borderWidth = 1.0 | 32 | messageLabel.layer.borderWidth = 1.0 |
| 28 | messageLabel.layer.borderColor = UIColor(rgb: 0xB2CE69).cgColor | 33 | messageLabel.layer.borderColor = UIColor(rgb: 0xB2CE69).cgColor |
| 29 | - messageLabel.text = "Μέχρι τώρα έχεις κερδίσει 20,00€ σε προσφορές από 3 κουπόνια!" | 34 | + |
| 35 | + let totalCouponDiscount = Float(round(100 * loyaltyBadge._value) / 100) | ||
| 36 | + var totalCouponDiscountString = "0" | ||
| 37 | + totalCouponDiscountString = String(format: "%.2f", totalCouponDiscount).replacingOccurrences(of: ".", with: ",", options: .literal, range: nil) | ||
| 38 | + | ||
| 39 | + messageLabel.text = "Μέχρι τώρα έχεις κερδίσει " + totalCouponDiscountString + "€ σε προσφορές από " + String(loyaltyBadge._couponCount) + " κουπόνια!" | ||
| 30 | } | 40 | } |
| 31 | } | 41 | } |
| 32 | 42 | ... | ... |
| ... | @@ -17,6 +17,9 @@ class AnalysisHeaderViewCell: UITableViewCell { | ... | @@ -17,6 +17,9 @@ class AnalysisHeaderViewCell: UITableViewCell { |
| 17 | override func awakeFromNib() { | 17 | override func awakeFromNib() { |
| 18 | super.awakeFromNib() | 18 | super.awakeFromNib() |
| 19 | 19 | ||
| 20 | + // image | ||
| 21 | + itemImage.image = UIImage(named: "ic_gift_circle", in: Bundle(for: MyEmptyClass.self), compatibleWith: nil) | ||
| 22 | + | ||
| 20 | // title | 23 | // title |
| 21 | titleLabel.textColor = UIColor(rgb: 0x435563) | 24 | titleLabel.textColor = UIColor(rgb: 0x435563) |
| 22 | titleLabel.text = "Αναλυτικά:" | 25 | titleLabel.text = "Αναλυτικά:" | ... | ... |
| ... | @@ -36,25 +36,39 @@ class AnalysisItemViewCell: UITableViewCell { | ... | @@ -36,25 +36,39 @@ class AnalysisItemViewCell: UITableViewCell { |
| 36 | extension AnalysisItemViewCell { | 36 | extension AnalysisItemViewCell { |
| 37 | func configureCell(item: swiftApi.SharingCouponModel) { | 37 | func configureCell(item: swiftApi.SharingCouponModel) { |
| 38 | 38 | ||
| 39 | - // TODO: this is not optimal. we need a static date formatter. we cannot instantiate a new object each time we render a new item. | 39 | + dateLabel.text = item._date |
| 40 | - let dateFormatter = DateFormatter() | ||
| 41 | - dateFormatter.dateFormat = "dd-MM-yyyy" | ||
| 42 | - | ||
| 43 | - if let date = item.date { | ||
| 44 | - let dateString = dateFormatter.string(from: date) | ||
| 45 | - dateLabel.text = dateString | ||
| 46 | - } else { | ||
| 47 | - dateLabel.text = "" | ||
| 48 | - } | ||
| 49 | - | ||
| 50 | //itemImage.image = | 40 | //itemImage.image = |
| 51 | - titleLabel.text = item.name | 41 | + titleLabel.text = item._name |
| 52 | - priceLabel.text = String(format: "%.2f€", item.discount) | 42 | + |
| 43 | + let priceFloat = Float(round(100 * (Float(item._discount) ?? 0.0)) / 100) | ||
| 44 | + var priceString = "0" | ||
| 45 | + priceString = String(format: "%.2f", priceFloat).replacingOccurrences(of: ".", with: ",", options: .literal, range: nil) | ||
| 46 | + priceLabel.text = priceString + "€" | ||
| 53 | 47 | ||
| 54 | - if ("sent" == item.sharingType) { | 48 | + if ("sent" == item._sharing_type) { |
| 55 | - subtitleLabel.text = String(format: "Εκπτωτικό κουπόνι προς @%", "69740000000") | 49 | + subtitleLabel.text = String(format: "Εκπτωτικό κουπόνι προς " + item._receiver_msisdn) |
| 56 | - } else if ("received" == item.sharingType) { | 50 | + } else if ("received" == item._sharing_type) { |
| 57 | - subtitleLabel.text = String(format: "Εκπτωτικό κουπόνι από @%", "69740000000") | 51 | + subtitleLabel.text = String(format: "Εκπτωτικό κουπόνι από " + item._sender_msisdn) |
| 58 | } | 52 | } |
| 59 | } | 53 | } |
| 54 | + | ||
| 55 | + func configureCell(item: swiftApi.CouponItemModel) { | ||
| 56 | + | ||
| 57 | +// COUPONSET: desc, img_preview, name, terms | ||
| 58 | +// COUPON: coupon, expiration, discount, status | ||
| 59 | + | ||
| 60 | + let couponSetData: swiftApi.CouponSetItemModel? = item.couponset_data | ||
| 61 | + | ||
| 62 | + dateLabel.text = item.expiration ?? "" // TODO: change | ||
| 63 | + itemImage.load(link: couponSetData?.img_preview ?? "", placeholder: UIImage(), cache: URLCache()) | ||
| 64 | + titleLabel.text = couponSetData?.name ?? "" | ||
| 65 | + | ||
| 66 | + let priceFloat = Float(round(100 * (Float(item.discount ?? "") ?? 0.0)) / 100) | ||
| 67 | + var priceString = "0" | ||
| 68 | + priceString = String(format: "%.2f", priceFloat).replacingOccurrences(of: ".", with: ",", options: .literal, range: nil) | ||
| 69 | + priceLabel.text = priceString + "€" | ||
| 70 | + | ||
| 71 | + subtitleLabel.text = couponSetData?.short_description ?? "" | ||
| 72 | + | ||
| 73 | + } | ||
| 60 | } | 74 | } | ... | ... |
| 1 | +// | ||
| 2 | +// HistoryViewController.swift | ||
| 3 | +// SwiftWarplyFramework | ||
| 4 | +// | ||
| 5 | +// Created by Manos Chorianopoulos on 18/7/22. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +import UIKit | ||
| 9 | + | ||
| 10 | +class HistoryViewController: AnalysisChildViewController { | ||
| 11 | + | ||
| 12 | + var loading: Bool = false | ||
| 13 | + var items: Array<swiftApi.CouponItemModel> = swiftApi().getCouponList() | ||
| 14 | + | ||
| 15 | + // TODO: remove this when configuring model | ||
| 16 | + let hasMessage = true | ||
| 17 | + | ||
| 18 | + // lifecycle | ||
| 19 | + override func viewDidLoad() { | ||
| 20 | + | ||
| 21 | + super.viewDidLoad() | ||
| 22 | + | ||
| 23 | + self.refreshControl = UIRefreshControl() | ||
| 24 | + self.refreshControl?.addTarget(self, action: #selector(handleRefresh(_:)), for: .valueChanged) | ||
| 25 | + | ||
| 26 | + handleRefresh(self.refreshControl!) | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + // mvp | ||
| 30 | + @objc func load() { | ||
| 31 | + | ||
| 32 | + if (loading) { | ||
| 33 | + return; | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | + showLoading() | ||
| 37 | + | ||
| 38 | + items = swiftApi().getOldCouponList() | ||
| 39 | + showContent() | ||
| 40 | + self.tableView.reloadData() | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | + private func showLoading() { | ||
| 44 | + | ||
| 45 | + loading = true | ||
| 46 | + if (self.refreshControl!.isRefreshing) { | ||
| 47 | + return; | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + self.refreshControl!.beginRefreshing() | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + private func showError() { | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + private func showContent() { | ||
| 57 | + | ||
| 58 | + loading = false | ||
| 59 | + self.refreshControl!.endRefreshing() | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + // private | ||
| 63 | + func responseCallback (_ data: Array<swiftApi.CouponItemModel>?) -> Void { | ||
| 64 | + | ||
| 65 | + self.items = data! | ||
| 66 | + showContent() | ||
| 67 | + DispatchQueue.main.async { | ||
| 68 | + self.tableView.reloadData() | ||
| 69 | + } | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | + @objc func handleRefresh(_ refreshControl: UIRefreshControl) { | ||
| 73 | + | ||
| 74 | + self.perform(_: #selector(load), with: nil, afterDelay: 0.5) | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + // MARK: - Table view data source | ||
| 78 | + override func numberOfSections(in tableView: UITableView) -> Int { | ||
| 79 | + return 2 | ||
| 80 | + } | ||
| 81 | + | ||
| 82 | + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 83 | + if (section == 0) { | ||
| 84 | + return 1; | ||
| 85 | + } | ||
| 86 | + | ||
| 87 | + return items.count | ||
| 88 | + } | ||
| 89 | + | ||
| 90 | + override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | ||
| 91 | + if (indexPath.section == 0) { | ||
| 92 | + return hasMessage ? 380.0 : 280 | ||
| 93 | + } | ||
| 94 | + | ||
| 95 | + return 140.0 | ||
| 96 | + } | ||
| 97 | + | ||
| 98 | + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 99 | + | ||
| 100 | + // header | ||
| 101 | + if (indexPath.section == 0) { | ||
| 102 | + if (hasMessage) { | ||
| 103 | + return tableView.dequeueReusableCell(withIdentifier: "AnalysisHeaderMessageViewCell", for: indexPath) as! AnalysisHeaderMessageViewCell | ||
| 104 | + } | ||
| 105 | + | ||
| 106 | + return tableView.dequeueReusableCell(withIdentifier: "AnalysisHeaderViewCell", for: indexPath) as! AnalysisHeaderViewCell | ||
| 107 | + } | ||
| 108 | + | ||
| 109 | + let cell = tableView.dequeueReusableCell(withIdentifier: "AnalysisItemViewCell", for: indexPath) as! AnalysisItemViewCell | ||
| 110 | + cell.configureCell(item: items[indexPath.row]) | ||
| 111 | + | ||
| 112 | + return cell | ||
| 113 | + } | ||
| 114 | +} |
| ... | @@ -21,7 +21,7 @@ import RESegmentedControl | ... | @@ -21,7 +21,7 @@ import RESegmentedControl |
| 21 | 21 | ||
| 22 | // setup view | 22 | // setup view |
| 23 | setBackButton() | 23 | setBackButton() |
| 24 | - setNavigationTitle("Analysis") | 24 | + setNavigationTitle("Ανάλυση") |
| 25 | 25 | ||
| 26 | // tab | 26 | // tab |
| 27 | let titles = ["Εξαργυρωμένα", "Μοιρασμένα δώρα"] | 27 | let titles = ["Εξαργυρωμένα", "Μοιρασμένα δώρα"] |
| ... | @@ -41,24 +41,28 @@ import RESegmentedControl | ... | @@ -41,24 +41,28 @@ import RESegmentedControl |
| 41 | addChild(pageController) | 41 | addChild(pageController) |
| 42 | contentView.addSubview(pageController.view) | 42 | contentView.addSubview(pageController.view) |
| 43 | pageController .didMove(toParent: self) | 43 | pageController .didMove(toParent: self) |
| 44 | + | ||
| 45 | + let analysisVC = self.viewControllerAt(0) | ||
| 46 | + pageController.setViewControllers([analysisVC!], direction:.forward, animated:false) | ||
| 44 | } | 47 | } |
| 45 | 48 | ||
| 46 | //////////////////////////////////////////////////////////////////////////////// | 49 | //////////////////////////////////////////////////////////////////////////////// |
| 47 | private func viewControllerAt(_ index:Int) -> AnalysisChildViewController? | 50 | private func viewControllerAt(_ index:Int) -> AnalysisChildViewController? |
| 48 | { | 51 | { |
| 52 | + let storyboard = UIStoryboard(name: "Main", bundle: nil) | ||
| 53 | + | ||
| 49 | if (index == 1) { | 54 | if (index == 1) { |
| 50 | - let analysisVC = SharingHistoryViewController() | 55 | + let analysisVC = storyboard.instantiateViewController(withIdentifier:"SharingHistoryViewController") as! SharingHistoryViewController |
| 51 | analysisVC.index = index; | 56 | analysisVC.index = index; |
| 52 | 57 | ||
| 53 | return analysisVC; | 58 | return analysisVC; |
| 54 | } | 59 | } |
| 55 | 60 | ||
| 56 | - let analysisVC = AnalysisChildViewController() | 61 | + let analysisVC = storyboard.instantiateViewController(withIdentifier:"HistoryViewController") as! HistoryViewController |
| 57 | analysisVC.index = index; | 62 | analysisVC.index = index; |
| 58 | 63 | ||
| 59 | return analysisVC; | 64 | return analysisVC; |
| 60 | } | 65 | } |
| 61 | - | ||
| 62 | } | 66 | } |
| 63 | 67 | ||
| 64 | // MARK: - PageViewController | 68 | // MARK: - PageViewController | ... | ... |
| ... | @@ -379,7 +379,7 @@ | ... | @@ -379,7 +379,7 @@ |
| 379 | </viewController> | 379 | </viewController> |
| 380 | <placeholder placeholderIdentifier="IBFirstResponder" id="Ee1-aw-PRJ" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> | 380 | <placeholder placeholderIdentifier="IBFirstResponder" id="Ee1-aw-PRJ" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> |
| 381 | </objects> | 381 | </objects> |
| 382 | - <point key="canvasLocation" x="1535" y="837"/> | 382 | + <point key="canvasLocation" x="1612" y="836"/> |
| 383 | </scene> | 383 | </scene> |
| 384 | <!--Steps View Controller--> | 384 | <!--Steps View Controller--> |
| 385 | <scene sceneID="BCE-JX-L0C"> | 385 | <scene sceneID="BCE-JX-L0C"> |
| ... | @@ -430,16 +430,17 @@ | ... | @@ -430,16 +430,17 @@ |
| 430 | </view> | 430 | </view> |
| 431 | <connections> | 431 | <connections> |
| 432 | <outlet property="contentView" destination="FyK-3t-liP" id="lBC-DU-jIb"/> | 432 | <outlet property="contentView" destination="FyK-3t-liP" id="lBC-DU-jIb"/> |
| 433 | + <outlet property="tabView" destination="Z7V-En-7Tl" id="V5w-xL-IBc"/> | ||
| 433 | </connections> | 434 | </connections> |
| 434 | </viewController> | 435 | </viewController> |
| 435 | <placeholder placeholderIdentifier="IBFirstResponder" id="jF4-GM-aCp" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> | 436 | <placeholder placeholderIdentifier="IBFirstResponder" id="jF4-GM-aCp" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> |
| 436 | </objects> | 437 | </objects> |
| 437 | - <point key="canvasLocation" x="3229" y="836"/> | 438 | + <point key="canvasLocation" x="3125" y="836"/> |
| 438 | </scene> | 439 | </scene> |
| 439 | - <!--Analysis Child View Controller--> | 440 | + <!--Sharing History View Controller--> |
| 440 | <scene sceneID="Yng-iu-80u"> | 441 | <scene sceneID="Yng-iu-80u"> |
| 441 | <objects> | 442 | <objects> |
| 442 | - <tableViewController id="xOZ-Af-1Nw" customClass="AnalysisChildViewController" customModule="SwiftWarplyFramework" customModuleProvider="target" sceneMemberID="viewController"> | 443 | + <tableViewController id="xOZ-Af-1Nw" customClass="SharingHistoryViewController" customModule="SwiftWarplyFramework" customModuleProvider="target" sceneMemberID="viewController"> |
| 443 | <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="160" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" id="IAk-m8-ZIC"> | 444 | <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="160" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" id="IAk-m8-ZIC"> |
| 444 | <rect key="frame" x="0.0" y="0.0" width="414" height="896"/> | 445 | <rect key="frame" x="0.0" y="0.0" width="414" height="896"/> |
| 445 | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | 446 | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| ... | @@ -517,7 +518,7 @@ | ... | @@ -517,7 +518,7 @@ |
| 517 | <outlet property="titleLabel" destination="hqA-F6-n9s" id="zlL-DU-81T"/> | 518 | <outlet property="titleLabel" destination="hqA-F6-n9s" id="zlL-DU-81T"/> |
| 518 | </connections> | 519 | </connections> |
| 519 | </tableViewCell> | 520 | </tableViewCell> |
| 520 | - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" rowHeight="280" id="HMC-zK-06F" customClass="AnalysisHeaderViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target"> | 521 | + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="AnalysisHeaderViewCell" rowHeight="280" id="HMC-zK-06F" customClass="AnalysisHeaderViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target"> |
| 521 | <rect key="frame" x="0.0" y="204.5" width="414" height="280"/> | 522 | <rect key="frame" x="0.0" y="204.5" width="414" height="280"/> |
| 522 | <autoresizingMask key="autoresizingMask"/> | 523 | <autoresizingMask key="autoresizingMask"/> |
| 523 | <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="HMC-zK-06F" id="RtV-Li-Dnj"> | 524 | <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="HMC-zK-06F" id="RtV-Li-Dnj"> |
| ... | @@ -553,7 +554,7 @@ | ... | @@ -553,7 +554,7 @@ |
| 553 | <outlet property="titleLabel" destination="LKw-8l-mRY" id="2Nl-uC-2aJ"/> | 554 | <outlet property="titleLabel" destination="LKw-8l-mRY" id="2Nl-uC-2aJ"/> |
| 554 | </connections> | 555 | </connections> |
| 555 | </tableViewCell> | 556 | </tableViewCell> |
| 556 | - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" rowHeight="380" id="oPh-jz-GSZ" customClass="AnalysisHeaderMessageViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target"> | 557 | + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="AnalysisHeaderMessageViewCell" rowHeight="380" id="oPh-jz-GSZ" customClass="AnalysisHeaderMessageViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target"> |
| 557 | <rect key="frame" x="0.0" y="484.5" width="414" height="380"/> | 558 | <rect key="frame" x="0.0" y="484.5" width="414" height="380"/> |
| 558 | <autoresizingMask key="autoresizingMask"/> | 559 | <autoresizingMask key="autoresizingMask"/> |
| 559 | <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="oPh-jz-GSZ" id="8oK-tI-pLa"> | 560 | <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="oPh-jz-GSZ" id="8oK-tI-pLa"> |
| ... | @@ -611,7 +612,7 @@ | ... | @@ -611,7 +612,7 @@ |
| 611 | </tableViewController> | 612 | </tableViewController> |
| 612 | <placeholder placeholderIdentifier="IBFirstResponder" id="4gQ-3O-aEc" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> | 613 | <placeholder placeholderIdentifier="IBFirstResponder" id="4gQ-3O-aEc" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> |
| 613 | </objects> | 614 | </objects> |
| 614 | - <point key="canvasLocation" x="3942.0289855072465" y="835.71428571428567"/> | 615 | + <point key="canvasLocation" x="3903" y="836"/> |
| 615 | </scene> | 616 | </scene> |
| 616 | <!--Wallet View Controller--> | 617 | <!--Wallet View Controller--> |
| 617 | <scene sceneID="tSr-9x-GQW"> | 618 | <scene sceneID="tSr-9x-GQW"> |
| ... | @@ -817,19 +818,19 @@ | ... | @@ -817,19 +818,19 @@ |
| 817 | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="MCY-xv-vpg"> | 818 | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="MCY-xv-vpg"> |
| 818 | <rect key="frame" x="20" y="20" width="254" height="60.5"/> | 819 | <rect key="frame" x="20" y="20" width="254" height="60.5"/> |
| 819 | <subviews> | 820 | <subviews> |
| 820 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Ενεργός κωδικός:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ucC-u4-AQL"> | 821 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="Ενεργός κωδικός:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ucC-u4-AQL"> |
| 821 | <rect key="frame" x="0.0" y="0.0" width="254" height="21.5"/> | 822 | <rect key="frame" x="0.0" y="0.0" width="254" height="21.5"/> |
| 822 | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/> | 823 | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/> |
| 823 | <color key="textColor" red="0.23529411759999999" green="0.32549019610000002" blue="0.39607843139999999" alpha="1" colorSpace="calibratedRGB"/> | 824 | <color key="textColor" red="0.23529411759999999" green="0.32549019610000002" blue="0.39607843139999999" alpha="1" colorSpace="calibratedRGB"/> |
| 824 | <nil key="highlightedColor"/> | 825 | <nil key="highlightedColor"/> |
| 825 | </label> | 826 | </label> |
| 826 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="961544809" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qBe-Jw-QUx"> | 827 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="961544809" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qBe-Jw-QUx"> |
| 827 | <rect key="frame" x="0.0" y="23.5" width="254" height="21.5"/> | 828 | <rect key="frame" x="0.0" y="23.5" width="254" height="21.5"/> |
| 828 | <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="18"/> | 829 | <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="18"/> |
| 829 | <color key="textColor" red="0.23529411759999999" green="0.32549019610000002" blue="0.39607843139999999" alpha="1" colorSpace="calibratedRGB"/> | 830 | <color key="textColor" red="0.23529411759999999" green="0.32549019610000002" blue="0.39607843139999999" alpha="1" colorSpace="calibratedRGB"/> |
| 830 | <nil key="highlightedColor"/> | 831 | <nil key="highlightedColor"/> |
| 831 | </label> | 832 | </label> |
| 832 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Λήγει σε 4 ημέρες" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qL0-3b-eqA"> | 833 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="Λήγει σε 4 ημέρες" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qL0-3b-eqA"> |
| 833 | <rect key="frame" x="0.0" y="47" width="254" height="13.5"/> | 834 | <rect key="frame" x="0.0" y="47" width="254" height="13.5"/> |
| 834 | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="11"/> | 835 | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="11"/> |
| 835 | <color key="textColor" red="0.2274509804" green="0.32156862749999998" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/> | 836 | <color key="textColor" red="0.2274509804" green="0.32156862749999998" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/> |
| ... | @@ -1916,7 +1917,7 @@ | ... | @@ -1916,7 +1917,7 @@ |
| 1916 | </viewController> | 1917 | </viewController> |
| 1917 | <placeholder placeholderIdentifier="IBFirstResponder" id="HMq-Fe-QT6" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> | 1918 | <placeholder placeholderIdentifier="IBFirstResponder" id="HMq-Fe-QT6" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> |
| 1918 | </objects> | 1919 | </objects> |
| 1919 | - <point key="canvasLocation" x="2951" y="144"/> | 1920 | + <point key="canvasLocation" x="3125" y="129"/> |
| 1920 | </scene> | 1921 | </scene> |
| 1921 | <!--Active Gifts View Controller--> | 1922 | <!--Active Gifts View Controller--> |
| 1922 | <scene sceneID="GKF-Re-TAp"> | 1923 | <scene sceneID="GKF-Re-TAp"> |
| ... | @@ -1945,7 +1946,184 @@ | ... | @@ -1945,7 +1946,184 @@ |
| 1945 | </viewController> | 1946 | </viewController> |
| 1946 | <placeholder placeholderIdentifier="IBFirstResponder" id="dOF-5b-vTf" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> | 1947 | <placeholder placeholderIdentifier="IBFirstResponder" id="dOF-5b-vTf" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> |
| 1947 | </objects> | 1948 | </objects> |
| 1948 | - <point key="canvasLocation" x="3590" y="144"/> | 1949 | + <point key="canvasLocation" x="3903" y="129"/> |
| 1950 | + </scene> | ||
| 1951 | + <!--History View Controller--> | ||
| 1952 | + <scene sceneID="KER-Da-ryV"> | ||
| 1953 | + <objects> | ||
| 1954 | + <tableViewController id="ze6-Kr-Io4" customClass="HistoryViewController" customModule="SwiftWarplyFramework" customModuleProvider="target" sceneMemberID="viewController"> | ||
| 1955 | + <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="160" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" id="qD1-U4-LYx"> | ||
| 1956 | + <rect key="frame" x="0.0" y="0.0" width="414" height="896"/> | ||
| 1957 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 1958 | + <color key="backgroundColor" systemColor="systemBackgroundColor"/> | ||
| 1959 | + <prototypes> | ||
| 1960 | + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="default" indentationWidth="10" reuseIdentifier="AnalysisItemViewCell" rowHeight="160" id="mwO-Y9-Whd" customClass="AnalysisItemViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target"> | ||
| 1961 | + <rect key="frame" x="0.0" y="44.5" width="414" height="160"/> | ||
| 1962 | + <autoresizingMask key="autoresizingMask"/> | ||
| 1963 | + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="mwO-Y9-Whd" id="4Lb-Ez-2D5"> | ||
| 1964 | + <rect key="frame" x="0.0" y="0.0" width="414" height="160"/> | ||
| 1965 | + <autoresizingMask key="autoresizingMask"/> | ||
| 1966 | + <subviews> | ||
| 1967 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="05/05/2022" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZqN-UN-x9M" userLabel="Date"> | ||
| 1968 | + <rect key="frame" x="10" y="20" width="394" height="16"/> | ||
| 1969 | + <constraints> | ||
| 1970 | + <constraint firstAttribute="height" constant="16" id="Vgv-VT-mzv"/> | ||
| 1971 | + </constraints> | ||
| 1972 | + <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/> | ||
| 1973 | + <nil key="textColor"/> | ||
| 1974 | + <nil key="highlightedColor"/> | ||
| 1975 | + </label> | ||
| 1976 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="VHu-ds-i1E"> | ||
| 1977 | + <rect key="frame" x="10" y="46" width="28" height="28"/> | ||
| 1978 | + <constraints> | ||
| 1979 | + <constraint firstAttribute="width" constant="28" id="0eN-xR-ec6"/> | ||
| 1980 | + <constraint firstAttribute="height" constant="28" id="OZS-QM-eof"/> | ||
| 1981 | + </constraints> | ||
| 1982 | + </imageView> | ||
| 1983 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="4,00€" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZGs-RN-c7E" userLabel="Price"> | ||
| 1984 | + <rect key="frame" x="341.5" y="50" width="52.5" height="20"/> | ||
| 1985 | + <constraints> | ||
| 1986 | + <constraint firstAttribute="height" constant="20" id="VS4-Dn-eBF"/> | ||
| 1987 | + </constraints> | ||
| 1988 | + <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/> | ||
| 1989 | + <nil key="textColor"/> | ||
| 1990 | + <nil key="highlightedColor"/> | ||
| 1991 | + </label> | ||
| 1992 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="248" verticalHuggingPriority="251" text="BOX" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9Ag-Sp-uXt" userLabel="Title"> | ||
| 1993 | + <rect key="frame" x="42" y="50" width="295.5" height="20"/> | ||
| 1994 | + <constraints> | ||
| 1995 | + <constraint firstAttribute="height" constant="20" id="U6X-e9-8w7"/> | ||
| 1996 | + </constraints> | ||
| 1997 | + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/> | ||
| 1998 | + <nil key="textColor"/> | ||
| 1999 | + <nil key="highlightedColor"/> | ||
| 2000 | + </label> | ||
| 2001 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="248" verticalHuggingPriority="251" text="Έκπτωτικό κουπόνι" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4bA-Ab-3q1" userLabel="Subtitle"> | ||
| 2002 | + <rect key="frame" x="42" y="72" width="295.5" height="21.5"/> | ||
| 2003 | + <fontDescription key="fontDescription" type="system" pointSize="18"/> | ||
| 2004 | + <nil key="textColor"/> | ||
| 2005 | + <nil key="highlightedColor"/> | ||
| 2006 | + </label> | ||
| 2007 | + </subviews> | ||
| 2008 | + <constraints> | ||
| 2009 | + <constraint firstItem="9Ag-Sp-uXt" firstAttribute="leading" secondItem="VHu-ds-i1E" secondAttribute="trailing" constant="4" id="5Df-Np-oYZ"/> | ||
| 2010 | + <constraint firstAttribute="trailing" secondItem="ZGs-RN-c7E" secondAttribute="trailing" constant="20" id="7wc-o5-29i"/> | ||
| 2011 | + <constraint firstItem="ZGs-RN-c7E" firstAttribute="leading" secondItem="9Ag-Sp-uXt" secondAttribute="trailing" constant="4" id="Hjq-nc-G40"/> | ||
| 2012 | + <constraint firstItem="ZqN-UN-x9M" firstAttribute="leading" secondItem="4Lb-Ez-2D5" secondAttribute="leading" constant="10" id="PT7-de-Fld"/> | ||
| 2013 | + <constraint firstItem="VHu-ds-i1E" firstAttribute="leading" secondItem="4Lb-Ez-2D5" secondAttribute="leading" constant="10" id="Psu-2D-Icf"/> | ||
| 2014 | + <constraint firstItem="9Ag-Sp-uXt" firstAttribute="centerY" secondItem="VHu-ds-i1E" secondAttribute="centerY" id="Px2-r8-FUX"/> | ||
| 2015 | + <constraint firstItem="4bA-Ab-3q1" firstAttribute="top" secondItem="9Ag-Sp-uXt" secondAttribute="bottom" constant="2" id="VrB-Ui-gWz"/> | ||
| 2016 | + <constraint firstItem="4bA-Ab-3q1" firstAttribute="trailing" secondItem="9Ag-Sp-uXt" secondAttribute="trailing" id="bhA-o7-Cso"/> | ||
| 2017 | + <constraint firstItem="ZGs-RN-c7E" firstAttribute="centerY" secondItem="VHu-ds-i1E" secondAttribute="centerY" id="hDC-IU-u0r"/> | ||
| 2018 | + <constraint firstAttribute="trailing" secondItem="ZqN-UN-x9M" secondAttribute="trailing" constant="10" id="rSB-Gw-mg0"/> | ||
| 2019 | + <constraint firstItem="VHu-ds-i1E" firstAttribute="top" secondItem="ZqN-UN-x9M" secondAttribute="bottom" constant="10" id="rY7-hZ-thV"/> | ||
| 2020 | + <constraint firstItem="4bA-Ab-3q1" firstAttribute="leading" secondItem="9Ag-Sp-uXt" secondAttribute="leading" id="vSP-D0-3lM"/> | ||
| 2021 | + <constraint firstItem="ZqN-UN-x9M" firstAttribute="top" secondItem="4Lb-Ez-2D5" secondAttribute="top" constant="20" id="wui-T5-7cH"/> | ||
| 2022 | + </constraints> | ||
| 2023 | + </tableViewCellContentView> | ||
| 2024 | + <connections> | ||
| 2025 | + <outlet property="dateLabel" destination="ZqN-UN-x9M" id="GvG-Jp-72t"/> | ||
| 2026 | + <outlet property="itemImage" destination="VHu-ds-i1E" id="hie-z9-0r4"/> | ||
| 2027 | + <outlet property="priceLabel" destination="ZGs-RN-c7E" id="pMD-5S-hAB"/> | ||
| 2028 | + <outlet property="subtitleLabel" destination="4bA-Ab-3q1" id="cGH-SR-2cx"/> | ||
| 2029 | + <outlet property="titleLabel" destination="9Ag-Sp-uXt" id="FN2-u8-I6a"/> | ||
| 2030 | + </connections> | ||
| 2031 | + </tableViewCell> | ||
| 2032 | + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="AnalysisHeaderViewCell" rowHeight="280" id="TXv-Qw-94X" customClass="AnalysisHeaderViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target"> | ||
| 2033 | + <rect key="frame" x="0.0" y="204.5" width="414" height="280"/> | ||
| 2034 | + <autoresizingMask key="autoresizingMask"/> | ||
| 2035 | + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="TXv-Qw-94X" id="fmq-OF-USg"> | ||
| 2036 | + <rect key="frame" x="0.0" y="0.0" width="414" height="280"/> | ||
| 2037 | + <autoresizingMask key="autoresizingMask"/> | ||
| 2038 | + <subviews> | ||
| 2039 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Lul-sk-Xaj"> | ||
| 2040 | + <rect key="frame" x="124" y="31" width="166" height="166"/> | ||
| 2041 | + <constraints> | ||
| 2042 | + <constraint firstAttribute="height" constant="166" id="gOb-nT-us3"/> | ||
| 2043 | + <constraint firstAttribute="width" constant="166" id="pY8-aZ-nnb"/> | ||
| 2044 | + </constraints> | ||
| 2045 | + </imageView> | ||
| 2046 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Αναλυτικά:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XjQ-Dg-ucn"> | ||
| 2047 | + <rect key="frame" x="162" y="248" width="90" height="22"/> | ||
| 2048 | + <constraints> | ||
| 2049 | + <constraint firstAttribute="height" constant="22" id="Ccg-Xm-m6C"/> | ||
| 2050 | + </constraints> | ||
| 2051 | + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/> | ||
| 2052 | + <nil key="textColor"/> | ||
| 2053 | + <nil key="highlightedColor"/> | ||
| 2054 | + </label> | ||
| 2055 | + </subviews> | ||
| 2056 | + <constraints> | ||
| 2057 | + <constraint firstItem="XjQ-Dg-ucn" firstAttribute="centerX" secondItem="fmq-OF-USg" secondAttribute="centerX" id="Lbh-ZU-mWb"/> | ||
| 2058 | + <constraint firstAttribute="bottom" secondItem="XjQ-Dg-ucn" secondAttribute="bottom" constant="10" id="b1r-ZX-eVt"/> | ||
| 2059 | + <constraint firstItem="Lul-sk-Xaj" firstAttribute="centerX" secondItem="fmq-OF-USg" secondAttribute="centerX" id="hOd-Db-G3B"/> | ||
| 2060 | + <constraint firstItem="Lul-sk-Xaj" firstAttribute="top" secondItem="fmq-OF-USg" secondAttribute="topMargin" constant="20" id="p5M-bI-lEn"/> | ||
| 2061 | + </constraints> | ||
| 2062 | + </tableViewCellContentView> | ||
| 2063 | + <connections> | ||
| 2064 | + <outlet property="itemImage" destination="Lul-sk-Xaj" id="yG3-o7-77x"/> | ||
| 2065 | + <outlet property="titleLabel" destination="XjQ-Dg-ucn" id="1uG-vu-ajJ"/> | ||
| 2066 | + </connections> | ||
| 2067 | + </tableViewCell> | ||
| 2068 | + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="AnalysisHeaderMessageViewCell" rowHeight="380" id="9cE-DQ-oc7" customClass="AnalysisHeaderMessageViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target"> | ||
| 2069 | + <rect key="frame" x="0.0" y="484.5" width="414" height="380"/> | ||
| 2070 | + <autoresizingMask key="autoresizingMask"/> | ||
| 2071 | + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="9cE-DQ-oc7" id="Kcf-Zv-eMe"> | ||
| 2072 | + <rect key="frame" x="0.0" y="0.0" width="414" height="380"/> | ||
| 2073 | + <autoresizingMask key="autoresizingMask"/> | ||
| 2074 | + <subviews> | ||
| 2075 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Μέχρι τώρα έχεις κερδίσει 20,00€ σε προσφορές από 3 κουπόνια!" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Yth-0S-P60"> | ||
| 2076 | + <rect key="frame" x="50" y="237" width="314" height="60"/> | ||
| 2077 | + <constraints> | ||
| 2078 | + <constraint firstAttribute="height" constant="60" id="Ams-n8-yUP"/> | ||
| 2079 | + </constraints> | ||
| 2080 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 2081 | + <nil key="textColor"/> | ||
| 2082 | + <nil key="highlightedColor"/> | ||
| 2083 | + </label> | ||
| 2084 | + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="QY9-ar-jbw"> | ||
| 2085 | + <rect key="frame" x="124" y="31" width="166" height="166"/> | ||
| 2086 | + <constraints> | ||
| 2087 | + <constraint firstAttribute="width" constant="166" id="ZuH-X9-Nie"/> | ||
| 2088 | + <constraint firstAttribute="height" constant="166" id="dUQ-Ou-Apu"/> | ||
| 2089 | + </constraints> | ||
| 2090 | + </imageView> | ||
| 2091 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Αναλυτικά:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nzx-D5-LHo"> | ||
| 2092 | + <rect key="frame" x="166" y="339" width="82" height="20"/> | ||
| 2093 | + <constraints> | ||
| 2094 | + <constraint firstAttribute="height" constant="20" id="K9D-vL-Saj"/> | ||
| 2095 | + </constraints> | ||
| 2096 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | ||
| 2097 | + <nil key="textColor"/> | ||
| 2098 | + <nil key="highlightedColor"/> | ||
| 2099 | + </label> | ||
| 2100 | + </subviews> | ||
| 2101 | + <constraints> | ||
| 2102 | + <constraint firstAttribute="trailingMargin" secondItem="Yth-0S-P60" secondAttribute="trailing" constant="30" id="6SE-2z-kcV"/> | ||
| 2103 | + <constraint firstItem="QY9-ar-jbw" firstAttribute="top" secondItem="Kcf-Zv-eMe" secondAttribute="topMargin" constant="20" id="7r7-Q0-rq4"/> | ||
| 2104 | + <constraint firstItem="nzx-D5-LHo" firstAttribute="centerX" secondItem="Kcf-Zv-eMe" secondAttribute="centerX" id="9MU-dy-Lh7"/> | ||
| 2105 | + <constraint firstItem="Yth-0S-P60" firstAttribute="top" secondItem="QY9-ar-jbw" secondAttribute="bottom" constant="40" id="f7j-JG-hqO"/> | ||
| 2106 | + <constraint firstItem="Yth-0S-P60" firstAttribute="leading" secondItem="Kcf-Zv-eMe" secondAttribute="leadingMargin" constant="30" id="qsD-vg-jYM"/> | ||
| 2107 | + <constraint firstAttribute="bottomMargin" secondItem="nzx-D5-LHo" secondAttribute="bottom" constant="10" id="tgQ-Ov-G72"/> | ||
| 2108 | + <constraint firstItem="QY9-ar-jbw" firstAttribute="centerX" secondItem="Kcf-Zv-eMe" secondAttribute="centerX" id="xiH-Cs-G6E"/> | ||
| 2109 | + </constraints> | ||
| 2110 | + </tableViewCellContentView> | ||
| 2111 | + <connections> | ||
| 2112 | + <outlet property="itemImage" destination="QY9-ar-jbw" id="UHu-bz-9Uk"/> | ||
| 2113 | + <outlet property="messageLabel" destination="Yth-0S-P60" id="tVN-jB-FvL"/> | ||
| 2114 | + <outlet property="titleLabel" destination="nzx-D5-LHo" id="cU7-6c-HiO"/> | ||
| 2115 | + </connections> | ||
| 2116 | + </tableViewCell> | ||
| 2117 | + </prototypes> | ||
| 2118 | + <connections> | ||
| 2119 | + <outlet property="dataSource" destination="ze6-Kr-Io4" id="XcZ-cQ-TzG"/> | ||
| 2120 | + <outlet property="delegate" destination="ze6-Kr-Io4" id="pAt-Pk-8Z1"/> | ||
| 2121 | + </connections> | ||
| 2122 | + </tableView> | ||
| 2123 | + </tableViewController> | ||
| 2124 | + <placeholder placeholderIdentifier="IBFirstResponder" id="8Bf-SH-BtT" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> | ||
| 2125 | + </objects> | ||
| 2126 | + <point key="canvasLocation" x="4654" y="836"/> | ||
| 1949 | </scene> | 2127 | </scene> |
| 1950 | </scenes> | 2128 | </scenes> |
| 1951 | <resources> | 2129 | <resources> | ... | ... |
| ... | @@ -13,7 +13,7 @@ class SharingHistoryViewController: AnalysisChildViewController { | ... | @@ -13,7 +13,7 @@ class SharingHistoryViewController: AnalysisChildViewController { |
| 13 | var items: Array<swiftApi.SharingCouponModel> = Array() | 13 | var items: Array<swiftApi.SharingCouponModel> = Array() |
| 14 | 14 | ||
| 15 | // TODO: remove this when configuring model | 15 | // TODO: remove this when configuring model |
| 16 | - let hasMessage = true | 16 | + let hasMessage = false |
| 17 | 17 | ||
| 18 | // lifecycle | 18 | // lifecycle |
| 19 | override func viewDidLoad() { | 19 | override func viewDidLoad() { |
| ... | @@ -35,7 +35,7 @@ class SharingHistoryViewController: AnalysisChildViewController { | ... | @@ -35,7 +35,7 @@ class SharingHistoryViewController: AnalysisChildViewController { |
| 35 | 35 | ||
| 36 | showLoading() | 36 | showLoading() |
| 37 | 37 | ||
| 38 | - // TODO: Implement API call | 38 | + swiftApi().getSharingHistoryAsync(responseCallback) |
| 39 | } | 39 | } |
| 40 | 40 | ||
| 41 | private func showLoading() { | 41 | private func showLoading() { |
| ... | @@ -53,7 +53,7 @@ class SharingHistoryViewController: AnalysisChildViewController { | ... | @@ -53,7 +53,7 @@ class SharingHistoryViewController: AnalysisChildViewController { |
| 53 | 53 | ||
| 54 | private func showContent() { | 54 | private func showContent() { |
| 55 | 55 | ||
| 56 | - loading = true | 56 | + loading = false |
| 57 | self.refreshControl!.endRefreshing() | 57 | self.refreshControl!.endRefreshing() |
| 58 | } | 58 | } |
| 59 | 59 | ||
| ... | @@ -90,7 +90,7 @@ class SharingHistoryViewController: AnalysisChildViewController { | ... | @@ -90,7 +90,7 @@ class SharingHistoryViewController: AnalysisChildViewController { |
| 90 | return hasMessage ? 380.0 : 280 | 90 | return hasMessage ? 380.0 : 280 |
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | - return 160.0 | 93 | + return 140.0 |
| 94 | } | 94 | } |
| 95 | 95 | ||
| 96 | override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | 96 | override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ... | ... |
-
Please register or login to post a comment