Merge branch 'feature/navigationImageButton_accessibility_text' into 'develop'

adding aem driven accessibilityText to navigationImageButton

See merge request BPHV_MIPS/mvm_core_ui!638
This commit is contained in:
Pfeil, Scott Robert 2020-12-17 13:14:26 -05:00
commit b962c1c002

View File

@ -13,6 +13,7 @@ public class NavigationImageButtonModel: NavigationButtonModelProtocol, Molecule
public var image: String
public var action: ActionModelProtocol
public var accessibilityText: String?
public init(with image: String, action: ActionModelProtocol) {
self.image = image
@ -23,12 +24,14 @@ public class NavigationImageButtonModel: NavigationButtonModelProtocol, Molecule
case image
case action
case moleculeName
case accessibilityText
}
required public init(from decoder: Decoder) throws {
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
image = try typeContainer.decode(String.self, forKey: .image)
action = try typeContainer.decodeModel(codingKey: .action)
accessibilityText = try typeContainer.decodeIfPresent(String.self, forKey: .accessibilityText)
}
open func encode(to encoder: Encoder) throws {
@ -36,11 +39,17 @@ public class NavigationImageButtonModel: NavigationButtonModelProtocol, Molecule
try container.encode(image, forKey: .image)
try container.encode(moleculeName, forKey: .moleculeName)
try container.encodeModel(action, forKey: .action)
try container.encodeIfPresent(accessibilityText, forKey: .accessibilityText)
}
/// Convenience function that creates a BarButtonItem for the model.
public func createNavigationItemButton(delegateObject: MVMCoreUIDelegateObject? = nil, additionalData: [AnyHashable: Any]? = nil) -> UIBarButtonItem {
let uiImage = MVMCoreCache.shared()?.getImageFromRegisteredBundles(image)
return ImageBarButtonItem.create(with: uiImage, actionModel: action, delegateObject: delegateObject, additionalData: additionalData)
let navigationImageButton = ImageBarButtonItem.create(with: uiImage, actionModel: action, delegateObject: delegateObject, additionalData: additionalData)
if let accessibilityString = accessibilityText {
navigationImageButton.accessibilityLabel = accessibilityString
navigationImageButton.isAccessibilityElement = true
}
return navigationImageButton
}
}