diff --git a/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/NumberedListModel.swift b/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/NumberedListModel.swift index f40069a6..7399a756 100644 --- a/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/NumberedListModel.swift +++ b/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/NumberedListModel.swift @@ -12,23 +12,24 @@ import Foundation public override class var identifier: String { return "numberedList" } + public var numberColor: Color? private enum CodingKeys: String, CodingKey { case moleculeName case backgroundColor case list - case stringColor + case numberColor } // Numbered list model comes in the from of list = [MoleculeModelProtocol] public required init(from decoder: Decoder) throws { let typeContainer = try decoder.container(keyedBy: CodingKeys.self) - let stringColor = try typeContainer.decodeIfPresent(Color.self, forKey: .stringColor) + numberColor = try typeContainer.decodeIfPresent(Color.self, forKey: .numberColor) let list: [MoleculeModelProtocol] = try typeContainer.decodeModels(codingKey: .list) var models: [MoleculeStackItemModel] = [] for (index, molecule) in list.enumerated() { - models.append(MoleculeStackItemModel(with: StringAndMoleculeModel(string: "\(index+1).", molecule: molecule, stringColor: stringColor))) + models.append(MoleculeStackItemModel(with: StringAndMoleculeModel(string: "\(index+1).", molecule: molecule, stringColor: numberColor ?? Color(uiColor: .mvmBlack)))) } super.init(molecules: models, spacing: 0) } @@ -38,15 +39,12 @@ import Foundation try container.encodeIfPresent(backgroundColor, forKey: .backgroundColor) try container.encode(moleculeName, forKey: .moleculeName) - var indexColor: Color? var models: [MoleculeModelProtocol] = [] for molecule in molecules { - let stringAndMoleculeModel: StringAndMoleculeModel = ((molecule as! MoleculeStackItemModel).molecule as! StringAndMoleculeModel) - indexColor = stringAndMoleculeModel.stringColor - models.append(stringAndMoleculeModel.molecule) + models.append(((molecule as! MoleculeStackItemModel).molecule as! StringAndMoleculeModel).molecule) } try container.encodeModels(models, forKey: .list) - try container.encodeIfPresent(indexColor, forKey: .stringColor) + try container.encodeIfPresent(numberColor, forKey: .numberColor) } } diff --git a/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/StringAndMoleculeStack/StringAndMoleculeModel.swift b/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/StringAndMoleculeStack/StringAndMoleculeModel.swift index c87007f2..c22a1c17 100644 --- a/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/StringAndMoleculeStack/StringAndMoleculeModel.swift +++ b/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/StringAndMoleculeStack/StringAndMoleculeModel.swift @@ -13,9 +13,9 @@ public class StringAndMoleculeModel: MoleculeModelProtocol { public var backgroundColor: Color? public var string: String public var molecule: MoleculeModelProtocol - public var stringColor: Color? + public var stringColor: Color - public init(string: String, molecule: MoleculeModelProtocol, stringColor: Color?) { + public init(string: String, molecule: MoleculeModelProtocol, stringColor: Color) { self.string = string self.molecule = molecule self.stringColor = stringColor @@ -34,7 +34,7 @@ public class StringAndMoleculeModel: MoleculeModelProtocol { backgroundColor = try typeContainer.decodeIfPresent(Color.self, forKey: .backgroundColor) string = try typeContainer.decode(String.self, forKey: .string) molecule = try typeContainer.decodeModel(codingKey: .molecule) - stringColor = try typeContainer.decodeIfPresent(Color.self, forKey: .stringColor) + stringColor = try typeContainer.decode(Color.self, forKey: .stringColor) } public func encode(to encoder: Encoder) throws { diff --git a/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/StringAndMoleculeStack/StringAndMoleculeView.swift b/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/StringAndMoleculeStack/StringAndMoleculeView.swift index 29f6ccf6..a9fd5da8 100644 --- a/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/StringAndMoleculeStack/StringAndMoleculeView.swift +++ b/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/StringAndMoleculeStack/StringAndMoleculeView.swift @@ -84,7 +84,7 @@ open class StringAndMoleculeView: View { super.set(with: model, delegateObject, additionalData) guard let model = model as? StringAndMoleculeModel else { return } label.text = model.string - label.textColor = model.stringColor?.uiColor + label.textColor = model.stringColor.uiColor molecule.set(with: model.molecule, delegateObject, additionalData) } diff --git a/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/UnOrderedListModel.swift b/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/UnOrderedListModel.swift index 067429e3..89cb391f 100644 --- a/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/UnOrderedListModel.swift +++ b/MVMCoreUI/Atomic/Molecules/VerticalCombinationViews/Lists/UnOrderedListModel.swift @@ -13,13 +13,14 @@ import Foundation return "unOrderedList" } public var bulletChar = "•" - + public var bulletColor: Color? + private enum CodingKeys: String, CodingKey { case moleculeName case backgroundColor case list case bulletChar - case stringColor + case bulletColor } // Numbered list model comes in the from of list = [MoleculeModelProtocol] @@ -29,11 +30,11 @@ import Foundation self.bulletChar = bulletChar } - let stringColor = try typeContainer.decodeIfPresent(Color.self, forKey: .stringColor) + bulletColor = try typeContainer.decodeIfPresent(Color.self, forKey: .bulletColor) let list: [MoleculeModelProtocol] = try typeContainer.decodeModels(codingKey: .list) var models: [MoleculeStackItemModel] = [] for molecule in list { - models.append(MoleculeStackItemModel(with: StringAndMoleculeModel(string: bulletChar, molecule: molecule, stringColor: stringColor))) + models.append(MoleculeStackItemModel(with: StringAndMoleculeModel(string: bulletChar, molecule: molecule, stringColor: bulletColor ?? Color(uiColor: .mvmBlack)))) } super.init(molecules: models, spacing: 0) } @@ -44,14 +45,11 @@ import Foundation try container.encodeIfPresent(backgroundColor, forKey: .backgroundColor) try container.encode(moleculeName, forKey: .moleculeName) - var stringColor: Color? var models: [MoleculeModelProtocol] = [] for molecule in molecules { - let stringAndMoleculeModel: StringAndMoleculeModel = ((molecule as! MoleculeStackItemModel).molecule as! StringAndMoleculeModel) - stringColor = stringAndMoleculeModel.stringColor - models.append(stringAndMoleculeModel.molecule) + models.append(((molecule as! MoleculeStackItemModel).molecule as! StringAndMoleculeModel).molecule) } try container.encodeModels(models, forKey: .list) - try container.encodeIfPresent(stringColor, forKey: .stringColor) + try container.encodeIfPresent(bulletColor, forKey: .bulletColor) } }