Dimitris Togias

fix implementation details

...@@ -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 = "Αναλυτικά:"
......
...@@ -34,27 +34,41 @@ class AnalysisItemViewCell: UITableViewCell { ...@@ -34,27 +34,41 @@ class AnalysisItemViewCell: UITableViewCell {
34 } 34 }
35 35
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 {
......