Merge branch 'develop' of https://gitlab.verizon.com/BPHV_MIPS/mvm_core_ui into feature/unified_grid
This commit is contained in:
commit
30e02ea9e7
@ -6,7 +6,8 @@
|
||||
// Copyright © 2020 Verizon Wireless. All rights reserved.
|
||||
//
|
||||
|
||||
public class ListLeftVariableIconWithRightCaretAllTextLinksModel: ListItemModel, MoleculeModelProtocol {
|
||||
public class ListLeftVariableIconWithRightCaretAllTextLinksModel: ListItemModel, ParentMoleculeModelProtocol {
|
||||
|
||||
//-----------------------------------------------------
|
||||
// MARK: - Properties
|
||||
//-----------------------------------------------------
|
||||
@ -16,6 +17,10 @@ public class ListLeftVariableIconWithRightCaretAllTextLinksModel: ListItemModel,
|
||||
public var eyebrowHeadlineBodyLink: EyebrowHeadlineBodyLinkModel
|
||||
public var rightLabel: LabelModel
|
||||
|
||||
public var children: [MoleculeModelProtocol] {
|
||||
return [image, eyebrowHeadlineBodyLink, rightLabel]
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
// MARK: - Methods
|
||||
//-----------------------------------------------------
|
||||
|
||||
@ -73,7 +73,7 @@ public class EyebrowHeadlineBodyLinkModel: MoleculeModelProtocol, ParentMolecule
|
||||
backgroundColor = try typeContainer.decodeIfPresent(Color.self, forKey: .backgroundColor)
|
||||
eyebrow = try typeContainer.decodeIfPresent(LabelModel.self, forKey: .eyebrow)
|
||||
headline = try typeContainer.decodeMoleculeIfPresent(codingKey: .headline)
|
||||
body = try typeContainer.decodeIfPresent(LabelModel.self, forKey: .body)
|
||||
body = try typeContainer.decodeMoleculeIfPresent(codingKey: .body)
|
||||
link = try typeContainer.decodeIfPresent(LinkModel.self, forKey: .link)
|
||||
setDefaults()
|
||||
// TODO: This class initializers should ensure that atleast one item is set.
|
||||
|
||||
@ -653,7 +653,7 @@ import UIKit
|
||||
// MARK: - Behavior Execution
|
||||
//--------------------------------------------------
|
||||
|
||||
func executeBehaviors<T>(_ behaviorBlock: (_ behavior: T) -> Void) {
|
||||
public func executeBehaviors<T>(_ behaviorBlock: (_ behavior: T) -> Void) {
|
||||
behaviors?.compactMap { $0 as? T }.forEach { behaviorBlock($0) }
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@ public class PageGetContactBehaviorModel: PageBehaviorModelProtocol {
|
||||
}
|
||||
|
||||
public class PageGetContactBehavior: PageVisibilityBehavior {
|
||||
|
||||
var delegate: MVMCoreUIDelegateObject?
|
||||
|
||||
public required init(model: PageBehaviorModelProtocol, delegateObject: MVMCoreUIDelegateObject?) {
|
||||
@ -35,21 +36,25 @@ public class PageGetContactBehavior: PageVisibilityBehavior {
|
||||
error == nil,
|
||||
let rootMolecules = self?.delegate?.moleculeDelegate?.getRootMolecules() else { return }
|
||||
// Iterate models and provide contact
|
||||
let store = CNContactStore()
|
||||
let consumers: [PageGetContactBehaviorConsumerProtocol] = rootMolecules.allMoleculesOfType()
|
||||
for consumer in consumers {
|
||||
guard let parameters = consumer.getMatchParameters(),
|
||||
let contacts = try? store.unifiedContacts(matching: parameters.0, keysToFetch: parameters.1) else { return }
|
||||
consumer.consume(contacts: contacts)
|
||||
}
|
||||
self?.getContacts(for: rootMolecules)
|
||||
|
||||
// Tell template to update
|
||||
MVMCoreDispatchUtility.performBlock(onMainThread: {
|
||||
// TODO: move to protocol function instead
|
||||
(self?.delegate?.moleculeDelegate as? ViewController)?.handleNewData()
|
||||
(self?.delegate?.moleculeDelegate as? ViewController)?.handleNewDataAndUpdateUI()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
public func getContacts(for molecules: [MoleculeModelProtocol]) {
|
||||
let consumers: [PageGetContactBehaviorConsumerProtocol] = molecules.allMoleculesOfType()
|
||||
let store = CNContactStore()
|
||||
for consumer in consumers {
|
||||
guard let parameters = consumer.getMatchParameters(),
|
||||
let contacts = try? store.unifiedContacts(matching: parameters.0, keysToFetch: parameters.1) else { return }
|
||||
consumer.consume(contacts: contacts)
|
||||
}
|
||||
}
|
||||
|
||||
public func onPageHidden(_ delegateObject: MVMCoreUIDelegateObject?) {}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user