move swap label to mf

This commit is contained in:
Pfeil, Scott Robert 2021-03-30 14:41:22 -04:00
parent 7a689ea7eb
commit 9dcd7afbac
4 changed files with 5 additions and 25 deletions

View File

@ -7,12 +7,12 @@
// //
@objcMembers public class LabelModel: MoleculeModelProtocol { @objcMembers open class LabelModel: MoleculeModelProtocol {
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Properties // MARK: - Properties
//-------------------------------------------------- //--------------------------------------------------
public class var identifier: String { "label" } open class var identifier: String { "label" }
public var backgroundColor: Color? public var backgroundColor: Color?
public var text: String public var text: String
public var accessibilityText: String? public var accessibilityText: String?

View File

@ -80,7 +80,7 @@ open class VideoModel: MoleculeModelProtocol, PageBehaviorProtocolRequirer {
} }
public func getRequiredBehaviors() -> [PageBehaviorModelProtocol] { public func getRequiredBehaviors() -> [PageBehaviorModelProtocol] {
return [VisibleBehaviorForVideoModel(with: self), ScrollBehaviorForVideoModel(with: self)] return [VisibleBehaviorForVideoModel(with: self)]
} }
open func addVisibilityHalting(for view: Video, delegateObject: MVMCoreUIDelegateObject?) { open func addVisibilityHalting(for view: Video, delegateObject: MVMCoreUIDelegateObject?) {

View File

@ -264,7 +264,6 @@ import Foundation
// MARK:- Behaviors // MARK:- Behaviors
try? ModelRegistry.register(handler: ScreenBrightnessModifierBehavior.self, for: ScreenBrightnessModifierBehaviorModel.self) try? ModelRegistry.register(handler: ScreenBrightnessModifierBehavior.self, for: ScreenBrightnessModifierBehaviorModel.self)
try? ModelRegistry.register(handler: PageGetContactBehavior.self, for: PageGetContactBehaviorModel.self) try? ModelRegistry.register(handler: PageGetContactBehavior.self, for: PageGetContactBehaviorModel.self)
MoleculeObjectMapping.shared()?.register(viewClass: Label.self, viewModelClass: SwapMDNWithContactNameLabelModel.self)
} }
/// Convenience function to get required modules for a give model /// Convenience function to get required modules for a give model

View File

@ -9,27 +9,6 @@
import Foundation import Foundation
import Contacts import Contacts
public class SwapMDNWithContactNameLabelModel: LabelModel, PageGetContactBehaviorConsumerProtocol, PageBehaviorProtocolRequirer {
public class override var identifier: String { "swapMDNWithContactNameLabel" }
public func getRequiredBehaviors() -> [PageBehaviorModelProtocol] {
return [PageGetContactBehaviorModel()]
}
public func getMatchParameters() -> (NSPredicate, [CNKeyDescriptor])? {
guard let mdn = MVMCoreUIUtility.removeMdnFormat(text) else { return nil }
return (CNContact.predicateForContacts(matching: CNPhoneNumber(stringValue: mdn)), [CNContactFormatter.descriptorForRequiredKeys(for: .fullName)])
}
public func consume(contacts: [CNContact]) {
guard let contact = contacts.first else { return }
let nameArray: [String?] = [contact.givenName, contact.middleName, contact.familyName]
let name = nameArray.compactMap { $0 }.joined(separator: " ")
guard name.count > 0 else { return }
text = name
}
}
public protocol PageGetContactBehaviorConsumerProtocol { public protocol PageGetContactBehaviorConsumerProtocol {
func getMatchParameters() -> (NSPredicate, [CNKeyDescriptor])? func getMatchParameters() -> (NSPredicate, [CNKeyDescriptor])?
func consume(contacts: [CNContact]) func consume(contacts: [CNContact])
@ -38,6 +17,8 @@ public protocol PageGetContactBehaviorConsumerProtocol {
public class PageGetContactBehaviorModel: PageBehaviorModelProtocol { public class PageGetContactBehaviorModel: PageBehaviorModelProtocol {
public class var identifier: String { "pageGetContactBehavior" } public class var identifier: String { "pageGetContactBehavior" }
public var shouldAllowMultipleInstances: Bool { false } public var shouldAllowMultipleInstances: Bool { false }
public init() {}
} }
public class PageGetContactBehavior: PageVisibilityBehavior { public class PageGetContactBehavior: PageVisibilityBehavior {