Skip to content

Commit 36c4817

Browse files
authored
Merge pull request #719 from Iterable/evan/MOB-7565-ootb-view-refactoring
[MOB-7565] OOTB view refactoring
2 parents cd1c892 + a6607fe commit 36c4817

File tree

2 files changed

+45
-20
lines changed

2 files changed

+45
-20
lines changed

swift-sdk/Internal/IterableEmbeddedManager.swift

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import Foundation
66
import UIKit
77

8-
public struct ResolvedMessage {
8+
public struct ResolvedMessage: Equatable {
99
public let title: String?
1010
public let description: String?
1111
public var image: UIImage?
@@ -29,6 +29,15 @@ public struct ResolvedMessage {
2929
self.buttonTwoText = buttonTwoText
3030
self.message = message
3131
}
32+
33+
public static func ==(lhs: ResolvedMessage, rhs: ResolvedMessage) -> Bool {
34+
return lhs.title == rhs.title &&
35+
lhs.description == rhs.description &&
36+
lhs.image == rhs.image &&
37+
lhs.buttonText == rhs.buttonText &&
38+
lhs.buttonTwoText == rhs.buttonTwoText &&
39+
lhs.message == rhs.message
40+
}
3241
}
3342

3443
class IterableEmbeddedManager: NSObject, IterableEmbeddedManagerProtocol {

swift-sdk/uicomponents/IterableEmbeddedView.swift

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public class IterableEmbeddedView:UIView {
5656
/// Title
5757
private var EMtitle: String? = "Placeholding Title" {
5858
didSet {
59-
if let title = EMtitle {
59+
if let title = embeddedMessageTitle {
6060
labelTitle.text = title
6161
labelTitle.isHidden = false
6262
} else {
@@ -68,10 +68,10 @@ public class IterableEmbeddedView:UIView {
6868
public var EMimage: UIImage? = nil
6969

7070
/// Description
71-
var EMdescription: String? = "Placeholding Description" {
71+
var embeddedMessageBody: String? = "Placeholding Description" {
7272
didSet {
73-
if let description = EMdescription {
74-
labelDescription.text = description
73+
if let body = embeddedMessageBody {
74+
labelDescription.text = body
7575
labelDescription.isHidden = false
7676
} else {
7777
labelDescription.isHidden = true
@@ -82,7 +82,7 @@ public class IterableEmbeddedView:UIView {
8282
/// Primary Button Text
8383
var EMbuttonText: String? = "Placeholding BTN 1" {
8484
didSet {
85-
if let btn = EMbuttonText {
85+
if let btn = embeddedMessagePrimaryBtnTitle {
8686
primaryBtn.titleText = btn
8787
primaryBtn.isHidden = false
8888
} else {
@@ -94,7 +94,7 @@ public class IterableEmbeddedView:UIView {
9494
/// Secondary Button Text
9595
var EMbuttonTwoText: String? = "Placeholding BTN 2" {
9696
didSet {
97-
if let btn = EMbuttonTwoText {
97+
if let btn = embeddedMessageSecondaryBtnTitle {
9898
secondaryBtn.titleText = btn
9999
secondaryBtn.isHidden = false
100100
} else {
@@ -226,6 +226,11 @@ public class IterableEmbeddedView:UIView {
226226
titleTextColor = config?.titleTextColor ?? defaultTitleTextColor
227227
descriptionTextColor = config?.bodyTextColor ?? defaultBodyTextColor
228228
}
229+
230+
embeddedMessageTitle = message.elements?.title
231+
embeddedMessageBody = message.elements?.body
232+
embeddedMessagePrimaryBtnTitle = message.elements?.buttons?.first?.title
233+
embeddedMessageSecondaryBtnTitle = message.elements?.buttons?[1].title
229234

230235
private func loadViewType(viewType: IterableEmbeddedViewType) {
231236
switch viewType {
@@ -237,29 +242,53 @@ public class IterableEmbeddedView:UIView {
237242
cardImageView.image = EMimage
238243
cardImageView.isHidden = false
239244
cardImageTopConstraint.isActive = true
245+
titleToTopConstraint.isActive = false
240246
titleToTopConstraint?.isActive = false
241247
} else {
242248
// Hide cardImageView and deactivate its constraints
243249
cardImageView.isHidden = true
244250
cardImageTopConstraint.isActive = false
251+
titleToTopConstraint.isActive = true
245252
titleToTopConstraint?.isActive = true
246253

247254
// Remove cardImageView from its superview and release it
248255
cardImageView.removeFromSuperview()
249256
cardImageView = nil
250257
}
251258
case .banner:
259+
imgView.isHidden = EMimage == nil
260+
bannerBorderColor = cardBorderColor
252261
imgView.isHidden = self.EMimage == nil
253262
imgView.image = EMimage
254263
cardImageView.isHidden = true
264+
cardImageTopConstraint.isActive = false
265+
titleToTopConstraint.isActive = true
255266
cardImageTopConstraint?.isActive = false
256267
titleToTopConstraint?.isActive = true
257268
case .notification:
258269
imgView.isHidden = true
259270
cardImageView.isHidden = true
271+
cardImageTopConstraint.isActive = false
272+
titleToTopConstraint.isActive = true
260273
cardImageTopConstraint?.isActive = false
261274
titleToTopConstraint?.isActive = true
262275
}
276+
277+
bannerBackgroundColor = config?.backgroundColor ?? defaultBackgroundColor
278+
bannerBorderColor = config?.borderColor ?? defaultBorderColor
279+
bannerBorderWidth = config?.borderWidth ?? 1.0
280+
bannerCornerRadius = config?.borderCornerRadius ?? 8.0
281+
primaryBtnColor = config?.primaryBtnBackgroundColor ?? defaultPrimaryBtnColor
282+
primaryBtnTextColor = config?.primaryBtnTextColor ?? defaultPrimaryBtnTextColor
283+
secondaryBtnColor = config?.secondaryBtnBackgroundColor ?? defaultSecondaryBtnColor
284+
secondaryBtnTextColor = config?.secondaryBtnTextColor ?? defaultSecondaryBtnTextColor
285+
titleTextColor = config?.titleTextColor ?? defaultTitleTextColor
286+
descriptionTextColor = config?.bodyTextColor ?? defaultBodyTextColor
287+
288+
embeddedMessageTitle = message.elements?.title
289+
embeddedMessageBody = message.elements?.body
290+
embeddedMessagePrimaryBtnTitle = message.elements?.buttons?.first?.title
291+
embeddedMessageSecondaryBtnTitle = message.elements?.buttons?[1].title
263292
}
264293

265294
private func loadImage(from url: URL, withViewType viewType: IterableEmbeddedViewType) {
@@ -475,12 +504,6 @@ public class IterableEmbeddedView:UIView {
475504
IterableAPI.embeddedManager.handleEmbeddedClick(message: message!, buttonIdentifier: buttonIdentifier, clickedUrl: clickedUrl)
476505
}
477506
}
478-
479-
//TODO: Delegate handling
480-
// if (iterableEmbeddedViewDelegate != nil) {
481-
// iterableEmbeddedViewDelegate.didPressPrimaryButton(button: sender, viewTag: self.tag, message: message)
482-
// }
483-
else { }
484507
}
485508

486509
// MARK: Second Button
@@ -546,13 +569,6 @@ public class IterableEmbeddedView:UIView {
546569
IterableAPI.embeddedManager.handleEmbeddedClick(message: message!, buttonIdentifier: buttonIdentifier, clickedUrl: clickedUrl)
547570
}
548571
}
549-
550-
//TODO: Delegate handling
551-
// if (iterableEmbeddedViewDelegate != nil) {
552-
// iterableEmbeddedViewDelegate.didPressSecondaryButton(button: sender, viewTag: self.tag, message: message)
553-
// }
554-
// else { }
555-
556572
}
557573

558574
// MARK: Image

0 commit comments

Comments
 (0)