core: chat items for group preferences (#1402)

* core: chat items for group preferences

* chat items for group preference changes and sent item for contact/user prerences changes

* prohibited features, tests

* enable all tests

* fix
This commit is contained in:
Evgeny Poberezkin
2022-11-23 11:04:08 +00:00
committed by GitHub
parent 67d78e14be
commit e6e5faeb9c
8 changed files with 249 additions and 103 deletions

View File

@@ -220,6 +220,10 @@ public struct FeatureEnabled: Decodable {
: forContact ? NSLocalizedString("enabled for contact", comment: "enabled status")
: NSLocalizedString("off", comment: "enabled status")
}
public var iconColor: Color {
forUser ? .green : forContact ? .yellow : .secondary
}
}
public enum ContactUserPref: Decodable {
@@ -467,6 +471,13 @@ public enum GroupFeatureEnabled: String, Codable, Identifiable {
case .off: return NSLocalizedString("off", comment: "group pref value")
}
}
public var iconColor: Color {
switch self {
case .on: return .green
case .off: return .secondary
}
}
}
public enum ChatInfo: Identifiable, Decodable, NamedChat {
@@ -1485,6 +1496,8 @@ public enum CIContent: Decodable, ItemContent {
case sndConnEvent(sndConnEvent: SndConnEvent)
case rcvChatFeature(feature: Feature, enabled: FeatureEnabled)
case sndChatFeature(feature: Feature, enabled: FeatureEnabled)
case rcvGroupFeature(feature: Feature, preference: GroupPreference)
case sndGroupFeature(feature: Feature, preference: GroupPreference)
case rcvChatFeatureRejected(feature: Feature)
public var text: String {
@@ -1505,6 +1518,8 @@ public enum CIContent: Decodable, ItemContent {
case let .sndConnEvent(sndConnEvent): return sndConnEvent.text
case let .rcvChatFeature(feature, enabled): return "\(feature.text): \(enabled.text)"
case let .sndChatFeature(feature, enabled): return "\(feature.text): \(enabled.text)"
case let .rcvGroupFeature(feature, preference): return "\(feature.text): \(preference.enable.text)"
case let .sndGroupFeature(feature, preference): return "\(feature.text): \(preference.enable.text)"
case let .rcvChatFeatureRejected(feature): return String.localizedStringWithFormat("%@: received, prohibited", feature.text)
}
}