Adding localized string because I didn't see it there for existing key. Updating Toggle to handle accessibility text.
This commit is contained in:
parent
7e89e58cd1
commit
88349bc651
@ -190,7 +190,10 @@ public typealias ActionBlockConfirmation = () -> (Bool)
|
||||
public override func setupView() {
|
||||
super.setupView()
|
||||
|
||||
guard subviews.isEmpty else { return }
|
||||
isAccessibilityElement = true
|
||||
accessibilityTraits = .button
|
||||
accessibilityHint = MVMCoreUIUtility.hardcodedString(withKey: "AccToggleHint")
|
||||
accessibilityLabel = MVMCoreUIUtility.hardcodedString(withKey: "Toggle_buttonlabel")
|
||||
|
||||
heightConstraint = heightAnchor.constraint(equalToConstant: Self.containerSize.height)
|
||||
heightConstraint?.isActive = true
|
||||
@ -214,8 +217,6 @@ public typealias ActionBlockConfirmation = () -> (Bool)
|
||||
knobTrailingConstraint = trailingAnchor.constraint(equalTo: knobView.trailingAnchor, constant: 1)
|
||||
knobLeadingConstraint = knobView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 1)
|
||||
knobLeadingConstraint?.isActive = true
|
||||
|
||||
accessibilityLabel = MVMCoreUIUtility.hardcodedString(withKey: "Toggle_buttonlabel")
|
||||
}
|
||||
|
||||
public override func reset() {
|
||||
@ -336,16 +337,15 @@ public typealias ActionBlockConfirmation = () -> (Bool)
|
||||
|
||||
// MARK:- ModelMoleculeViewProtocol
|
||||
public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) {
|
||||
guard let toggleModel = model as? ToggleModel else {
|
||||
return
|
||||
}
|
||||
|
||||
self.model = model
|
||||
self.delegateObject = delegateObject
|
||||
let toggleModelJSON = toggleModel.toJSON()
|
||||
self.model = model
|
||||
|
||||
guard let model = model as? ToggleModel else { return }
|
||||
|
||||
FormValidator.setupValidation(molecule: toggleModel, delegate: delegateObject?.formHolderDelegate)
|
||||
setWithJSON(toggleModelJSON, delegateObject: delegateObject, additionalData: additionalData)
|
||||
accessibilityLabel = model.accessibilityText ?? MVMCoreUIUtility.hardcodedString(withKey: "Toggle_buttonlabel")
|
||||
|
||||
FormValidator.setupValidation(molecule: model, delegate: delegateObject?.formHolderDelegate)
|
||||
setWithJSON(model.toJSON(), delegateObject: delegateObject, additionalData: additionalData)
|
||||
}
|
||||
|
||||
//TODO: change to setWith Model
|
||||
|
||||
@ -9,16 +9,24 @@
|
||||
import UIKit
|
||||
|
||||
public class ToggleModel: MoleculeModelProtocol, FormFieldProtocol {
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Properties
|
||||
//--------------------------------------------------
|
||||
|
||||
public static var identifier: String = "toggle"
|
||||
public var backgroundColor: Color?
|
||||
public var state: Bool = true
|
||||
public var action: ActionModelProtocol?
|
||||
public var alternateAction: ActionModelProtocol?
|
||||
public var accessibilityText: String?
|
||||
public var fieldKey: String?
|
||||
public var groupName: String? = FormValidator.defaultGroupName
|
||||
public var baseValue: AnyHashable?
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Keys
|
||||
//--------------------------------------------------
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case moleculeName
|
||||
case state
|
||||
@ -27,16 +35,29 @@ public class ToggleModel: MoleculeModelProtocol, FormFieldProtocol {
|
||||
case fieldKey
|
||||
case alternateAction
|
||||
case groupName
|
||||
case accessibilityText
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Methods
|
||||
//--------------------------------------------------
|
||||
|
||||
public func formFieldValue() -> AnyHashable? {
|
||||
return state
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Initializer
|
||||
//--------------------------------------------------
|
||||
|
||||
public init(_ state: Bool) {
|
||||
self.state = state
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Codec
|
||||
//--------------------------------------------------
|
||||
|
||||
required public init(from decoder: Decoder) throws {
|
||||
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
|
||||
if let state = try typeContainer.decodeIfPresent(Bool.self, forKey: .state) {
|
||||
@ -49,6 +70,8 @@ public class ToggleModel: MoleculeModelProtocol, FormFieldProtocol {
|
||||
if let groupName = try typeContainer.decodeIfPresent(String.self, forKey: .groupName) {
|
||||
self.groupName = groupName
|
||||
}
|
||||
|
||||
accessibilityText = try typeContainer.decodeIfPresent(String.self, forKey: .accessibilityText)
|
||||
}
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
@ -60,5 +83,6 @@ public class ToggleModel: MoleculeModelProtocol, FormFieldProtocol {
|
||||
try container.encode(state, forKey: .state)
|
||||
try container.encodeIfPresent(fieldKey, forKey: .fieldKey)
|
||||
try container.encodeIfPresent(groupName, forKey: .groupName)
|
||||
try container.encodeIfPresent(accessibilityText, forKey: .accessibilityText)
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,10 +24,7 @@ import UIKit
|
||||
(molecule as? ModelMoleculeViewProtocol)?.set(with: castModel.molecule, delegateObject, additionalData)
|
||||
} else if let moleculeView = MVMCoreUIMoleculeMappingObject.shared()?.createMolecule(castModel.molecule, delegateObject, false) {
|
||||
addMolecule(moleculeView)
|
||||
|
||||
if ((moleculeView as? Label) != nil) {
|
||||
accessibilityElements = [moleculeView]
|
||||
}
|
||||
accessibilityElements = [moleculeView]
|
||||
}
|
||||
super.set(with: model, delegateObject, additionalData)
|
||||
}
|
||||
@ -36,7 +33,7 @@ import UIKit
|
||||
guard let moleculeModel = (model as? MoleculeListItemModel)?.molecule else { return "\(self)<>" }
|
||||
|
||||
let className = MVMCoreUIMoleculeMappingObject.shared()?.getMoleculeClass(moleculeModel) as? ModelMoleculeViewProtocol.Type
|
||||
let moleculeName = className?.nameForReuse(with: moleculeModel, delegateObject) ?? moleculeModel.moleculeName ?? ""
|
||||
let moleculeName = className?.nameForReuse(with: moleculeModel, delegateObject) ?? moleculeModel.moleculeName
|
||||
|
||||
return "\(self)<\(moleculeName)>"
|
||||
}
|
||||
|
||||
@ -31,6 +31,7 @@
|
||||
// Camera
|
||||
"AccCameraButton" = "Camera Button";
|
||||
"AccCameraHint" = "Double tap to launch camera for scanning";
|
||||
|
||||
// Checkbox
|
||||
"checkbox_action_hint" = "Double tap to change state";
|
||||
"checkbox_checked_state" = "Checked";
|
||||
@ -43,14 +44,17 @@
|
||||
"radio_not_selected_state" = "Not Selected";
|
||||
"radio_desc_state" = "Option";
|
||||
|
||||
// Switch
|
||||
// Switch / Toggle
|
||||
"mfswitch_buttonlabel" = "Switch Button";
|
||||
"Toggle_buttonlabel" = "Toggle Button"
|
||||
"AccOn" = "on";
|
||||
"AccOff" = "off";
|
||||
"AccToggleHint" = "double tap to toggle";
|
||||
|
||||
// Carousel
|
||||
"MVMCoreUIPageControl_currentpage_index" = "page %ld of %ld";
|
||||
"MVMCoreUIPageControlslides_currentpage_index" = "slide %ld of %ld";
|
||||
|
||||
//Styler
|
||||
"CountDownDay" = " day";
|
||||
"CountDownHour" = " hour";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user