Toggle navigation
Toggle navigation
This project
Loading...
Sign in
open-source
/
warply_sdk_framework
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Graphs
Network
Create a new issue
Commits
Issue Boards
Authored by
Manos Chorianopoulos
2022-05-20 12:12:43 +0300
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
456ea6be87ded4f8db83dd65756b8d2225e06815
456ea6be
1 parent
af8323fe
add CouponBarcodeViewController
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
194 additions
and
4 deletions
SwiftWarplyFramework/Pods/Pods.xcodeproj/xcuserdata/manos.xcuserdatad/xcschemes/xcschememanagement.plist
SwiftWarplyFramework/SwiftWarplyFramework.xcodeproj/project.pbxproj
SwiftWarplyFramework/SwiftWarplyFramework.xcodeproj/xcuserdata/manos.xcuserdatad/xcschemes/xcschememanagement.plist
SwiftWarplyFramework/SwiftWarplyFramework.xcworkspace/xcuserdata/manos.xcuserdatad/UserInterfaceState.xcuserstate
SwiftWarplyFramework/SwiftWarplyFramework/CouponBarcodeViewController.swift
SwiftWarplyFramework/SwiftWarplyFramework/CouponViewController.swift
SwiftWarplyFramework/SwiftWarplyFramework/CouponsTableViewCell.swift
SwiftWarplyFramework/SwiftWarplyFramework/Main.storyboard
SwiftWarplyFramework/SwiftWarplyFramework/ViewControllerExtensions.swift
SwiftWarplyFramework/Pods/Pods.xcodeproj/xcuserdata/manos.xcuserdatad/xcschemes/xcschememanagement.plist
View file @
456ea6b
...
...
@@ -7,7 +7,7 @@
<key>
Pods-SwiftWarplyFramework.xcscheme_^#shared#^_
</key>
<dict>
<key>
orderHint
</key>
<integer>
1
</integer>
<integer>
0
</integer>
</dict>
</dict>
</dict>
...
...
SwiftWarplyFramework/SwiftWarplyFramework.xcodeproj/project.pbxproj
View file @
456ea6b
...
...
@@ -7,6 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
1E74838D28378AF40042A589 /* CouponBarcodeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E74838C28378AF40042A589 /* CouponBarcodeViewController.swift */; };
1EA1AF0A2835346A008998AA /* CouponsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EA1AF092835346A008998AA /* CouponsTableViewCell.swift */; };
7630AD9A6242D60846D6750C /* Pods_SwiftWarplyFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0D5F56DD4E5371A50AD2D87 /* Pods_SwiftWarplyFramework.framework */; };
E6A77853282933340045BBA8 /* SwiftWarplyFramework.docc in Sources */ = {isa = PBXBuildFile; fileRef = E6A77852282933340045BBA8 /* SwiftWarplyFramework.docc */; };
...
...
@@ -138,6 +139,7 @@
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
1E74838C28378AF40042A589 /* CouponBarcodeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponBarcodeViewController.swift; sourceTree = "<group>"; };
1EA1AF092835346A008998AA /* CouponsTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponsTableViewCell.swift; sourceTree = "<group>"; };
A9B7BE01A4E812DE49866EF8 /* Pods-SwiftWarplyFramework.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwiftWarplyFramework.debug.xcconfig"; path = "Target Support Files/Pods-SwiftWarplyFramework/Pods-SwiftWarplyFramework.debug.xcconfig"; sourceTree = "<group>"; };
B9EB8A451EF0C5AD75094EEE /* Pods-SwiftWarplyFramework.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwiftWarplyFramework.release.xcconfig"; path = "Target Support Files/Pods-SwiftWarplyFramework/Pods-SwiftWarplyFramework.release.xcconfig"; sourceTree = "<group>"; };
...
...
@@ -324,6 +326,7 @@
E6A7785E282933E40045BBA8 /* CouponsViewController.swift */,
1EA1AF092835346A008998AA /* CouponsTableViewCell.swift */,
E6A7785D282933E40045BBA8 /* CouponViewController.swift */,
1E74838C28378AF40042A589 /* CouponBarcodeViewController.swift */,
E6A77863282933E50045BBA8 /* DetailsViewController.swift */,
E6A778DE282933E60045BBA8 /* GiftsViewController.swift */,
E6A778DB282933E60045BBA8 /* MFYViewController.swift */,
...
...
@@ -729,6 +732,7 @@
E6A7791E282933E60045BBA8 /* WLSMSActionHanlder.m in Sources */,
E6A778F5282933E60045BBA8 /* WLCustomNativeAdTableViewCell.m in Sources */,
E6A77901282933E60045BBA8 /* WLBaseItem.m in Sources */,
1E74838D28378AF40042A589 /* CouponBarcodeViewController.swift in Sources */,
E6A778F0282933E60045BBA8 /* WLNativeAdsCollectionMode.m in Sources */,
E6A7791C282933E60045BBA8 /* WLSMSActionHandlerDeprecated.m in Sources */,
E6A77934282933E70045BBA8 /* UIActivityIndicatorView+AFNetworking.m in Sources */,
...
...
SwiftWarplyFramework/SwiftWarplyFramework.xcodeproj/xcuserdata/manos.xcuserdatad/xcschemes/xcschememanagement.plist
View file @
456ea6b
...
...
@@ -7,7 +7,7 @@
<key>
SwiftWarplyFramework.xcscheme_^#shared#^_
</key>
<dict>
<key>
orderHint
</key>
<integer>
0
</integer>
<integer>
1
</integer>
</dict>
</dict>
</dict>
...
...
SwiftWarplyFramework/SwiftWarplyFramework.xcworkspace/xcuserdata/manos.xcuserdatad/UserInterfaceState.xcuserstate
View file @
456ea6b
No preview for this file type
SwiftWarplyFramework/SwiftWarplyFramework/CouponBarcodeViewController.swift
0 → 100644
View file @
456ea6b
//
// CouponBarcodeViewController.swift
// SwiftWarplyFramework
//
// Created by Manos Chorianopoulos on 20/5/22.
//
import
UIKit
import
WarplySDKFrameworkIOS
@objc
class
CouponBarcodeViewController
:
UIViewController
{
@IBOutlet
weak
var
backgroundImage
:
UIImageView
!
@IBOutlet
weak
var
scrollView
:
UIScrollView
!
@IBOutlet
weak
var
scrollContentView
:
UIView
!
@IBOutlet
weak
var
couponImage
:
UIImageView
!
@IBOutlet
weak
var
couponImageHeight
:
NSLayoutConstraint
!
@IBOutlet
weak
var
nameLabel
:
UILabel
!
@IBOutlet
weak
var
discriptionLabel
:
UILabel
!
@IBOutlet
weak
var
couponView
:
UIView
!
@IBOutlet
weak
var
couponNumberLabel
:
UILabel
!
@IBOutlet
weak
var
barcodeLabel
:
UILabel
!
@IBOutlet
weak
var
expirationLabel
:
UILabel
!
@IBOutlet
weak
var
redeemButton
:
UIButton
!
@IBOutlet
weak
var
termsButton
:
UIButton
!
@IBOutlet
weak
var
termsTextView
:
UITextView
!
@IBOutlet
weak
var
termsTextViewHeight
:
NSLayoutConstraint
!
let
uiscreen
:
CGRect
=
UIScreen
.
main
.
bounds
var
termsVisible
:
Bool
=
false
;
var
coupon
:
swiftApi
.
CouponItemModel
?
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
// Do any additional setup after loading the view.
setBackButton
()
setNavigationTitle
(
"Εκπτωτικό κουπόνι"
)
backgroundImage
.
image
=
UIImage
(
named
:
"coupons_scrollview_white"
)
scrollView
.
clipsToBounds
=
true
scrollView
.
layer
.
cornerRadius
=
30
scrollView
.
layer
.
maskedCorners
=
[
.
layerMinXMinYCorner
]
// Top left corner radius
// COUPONSET: desc, img_preview, name, terms
// COUPON: coupon, expiration, discount, status
let
couponSetData
:
swiftApi
.
CouponSetItemModel
?
=
coupon
?
.
couponset_data
couponImage
.
load
(
link
:
couponSetData
?
.
img_preview
??
""
,
placeholder
:
UIImage
(),
cache
:
URLCache
())
couponImage
.
contentMode
=
.
scaleAspectFill
couponImageHeight
.
constant
=
self
.
uiscreen
.
height
*
0.25
nameLabel
.
text
=
couponSetData
?
.
name
??
""
discriptionLabel
.
text
=
couponSetData
?
.
short_description
??
""
couponView
.
layer
.
cornerRadius
=
10
couponNumberLabel
.
text
=
coupon
?
.
coupon
??
""
let
barcodeString
=
constructBarcode
()
??
""
barcodeLabel
.
text
=
barcodeString
expirationLabel
.
text
=
"Το κουπόνι ισχύει έως "
+
(
coupon
?
.
expiration
??
""
)
redeemButton
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
15
,
weight
:
.
medium
)
termsButton
.
titleLabel
?
.
font
=
.
systemFont
(
ofSize
:
15.0
,
weight
:
.
semibold
)
// termsButton.imageView?.layer.transform = CATransform3DMakeScale(1.5, 1.5, 1.5)
let
htmlText
=
couponSetData
?
.
terms
??
""
termsTextView
.
attributedText
=
htmlText
.
htmlToAttributedString
termsTextView
.
font
=
UIFont
.
systemFont
(
ofSize
:
14
,
weight
:
UIFont
.
Weight
.
regular
)
termsTextView
.
textColor
=
UIColor
(
red
:
0.25
,
green
:
0.33
,
blue
:
0.39
,
alpha
:
1.00
)
termsTextView
.
textAlignment
=
.
center
termsTextView
.
isScrollEnabled
=
false
toggleTerms
()
}
// MARK: - Functions
func
toggleTerms
()
{
if
(
termsVisible
)
{
termsTextView
.
isHidden
=
false
let
targetSize
=
CGSize
(
width
:
termsTextView
.
frame
.
width
,
height
:
CGFloat
(
MAXFLOAT
))
termsTextViewHeight
.
constant
=
termsTextView
.
sizeThatFits
(
targetSize
)
.
height
termsButton
.
setImage
(
UIImage
(
named
:
"ic_up_dark.png"
),
for
:
.
normal
)
}
else
{
termsTextView
.
isHidden
=
true
termsTextViewHeight
.
constant
=
CGFloat
(
0
)
termsButton
.
setImage
(
UIImage
(
named
:
"ic_down_dark.png"
),
for
:
.
normal
)
}
}
func
constructBarcode
()
->
String
?
{
// EAN 13 barcode construction
let
couponData
=
coupon
?
.
couponset_data
let
couponString
=
coupon
?
.
coupon
??
""
if
(
!
couponString
.
isEmpty
)
{
var
checkDigit
=
0
;
var
result
=
0
;
var
fixedCouponCode
=
couponString
;
if
(
fixedCouponCode
.
count
<
12
)
{
let
loops
=
12
-
fixedCouponCode
.
count
;
var
zerosStr
=
""
;
for
i
in
0
..<
loops
{
zerosStr
+=
"0"
}
fixedCouponCode
=
zerosStr
+
fixedCouponCode
;
}
var
multiplier
=
3
;
for
idx
in
(
0
...
(
fixedCouponCode
.
count
-
1
))
.
reversed
()
{
let
curChar
=
fixedCouponCode
[
idx
];
result
+=
(
Int
(
curChar
)
??
0
)
*
multiplier
;
multiplier
=
multiplier
==
3
?
1
:
3
;
}
checkDigit
=
10
-
(
result
%
10
);
let
barcodeStr
=
fixedCouponCode
+
String
(
checkDigit
);
return
barcodeStr
;
}
return
""
}
// MARK: - Actions
@IBAction
func
redeemButtomAction
(
_
sender
:
Any
)
{
// TODO: Add redeem action
let
alert
=
UIAlertController
(
title
:
"Το κουπόνι σου ενεργοποιήθηκε"
,
message
:
"Μπορείς να το βρεις στην αρχική οθόνη της εφαρμογής και στην ενότητα ενεργά δώρα!"
,
preferredStyle
:
.
alert
)
alert
.
addAction
(
UIAlertAction
(
title
:
"OK"
,
style
:
.
default
,
handler
:
{
action
in
switch
action
.
style
{
case
.
default
:
print
(
"default"
)
case
.
cancel
:
print
(
"cancel"
)
case
.
destructive
:
print
(
"destructive"
)
}
}))
self
.
present
(
alert
,
animated
:
true
,
completion
:
nil
)
}
@IBAction
func
termsButtonAction
(
_
sender
:
Any
)
{
termsVisible
=
!
termsVisible
toggleTerms
()
}
}
SwiftWarplyFramework/SwiftWarplyFramework/CouponViewController.swift
View file @
456ea6b
...
...
@@ -7,7 +7,7 @@
import
UIKit
class
CouponViewController
:
UIViewController
{
@objc
class
CouponViewController
:
UIViewController
{
@IBOutlet
weak
var
mainView
:
UIView
!
@IBOutlet
weak
var
backgroundImage
:
UIImageView
!
@IBOutlet
weak
var
scrollView
:
UIScrollView
!
...
...
SwiftWarplyFramework/SwiftWarplyFramework/CouponsTableViewCell.swift
View file @
456ea6b
...
...
@@ -9,7 +9,7 @@ import Foundation
import
UIKit
import
WarplySDKFrameworkIOS
class
CouponsTableViewCell
:
UITableViewCell
{
@objc
class
CouponsTableViewCell
:
UITableViewCell
{
@IBOutlet
weak
var
couponBgImage
:
UIImageView
!
@IBOutlet
weak
var
couponImage
:
UIImageView
!
@IBOutlet
weak
var
borderView
:
UIView
!
...
...
SwiftWarplyFramework/SwiftWarplyFramework/Main.storyboard
View file @
456ea6b
This diff is collapsed. Click to expand it.
SwiftWarplyFramework/SwiftWarplyFramework/ViewControllerExtensions.swift
View file @
456ea6b
...
...
@@ -64,6 +64,33 @@ extension String {
}
}
extension
String
{
var
length
:
Int
{
return
count
}
subscript
(
i
:
Int
)
->
String
{
return
self
[
i
..<
i
+
1
]
}
func
substring
(
fromIndex
:
Int
)
->
String
{
return
self
[
min
(
fromIndex
,
length
)
..<
length
]
}
func
substring
(
toIndex
:
Int
)
->
String
{
return
self
[
0
..<
max
(
0
,
toIndex
)]
}
subscript
(
r
:
Range
<
Int
>
)
->
String
{
let
range
=
Range
(
uncheckedBounds
:
(
lower
:
max
(
0
,
min
(
length
,
r
.
lowerBound
)),
upper
:
min
(
length
,
max
(
0
,
r
.
upperBound
))))
let
start
=
index
(
startIndex
,
offsetBy
:
range
.
lowerBound
)
let
end
=
index
(
start
,
offsetBy
:
range
.
upperBound
-
range
.
lowerBound
)
return
String
(
self
[
start
..<
end
])
}
}
extension
UIView
{
func
addDashedBorderVertical
(
color
:
UIColor
,
width
:
CGFloat
,
height
:
CGFloat
)
{
...
...
Please
register
or
login
to post a comment