Fixed an accessibility regression
This commit is contained in:
parent
56164ab7f4
commit
2983086837
|
@ -688,7 +688,6 @@
|
|||
FD71164628E2CC1300B47552 /* SessionHighlightingBackgroundLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD71164528E2CC1300B47552 /* SessionHighlightingBackgroundLabel.swift */; };
|
||||
FD71164828E2CE8700B47552 /* SessionCell+AccessoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD71164728E2CE8700B47552 /* SessionCell+AccessoryView.swift */; };
|
||||
FD71164A28E3EA5B00B47552 /* DismissType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD71164928E3EA5B00B47552 /* DismissType.swift */; };
|
||||
FD71164C28E3F5AA00B47552 /* SessionCell+Accessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD71164B28E3F5AA00B47552 /* SessionCell+Accessibility.swift */; };
|
||||
FD71164E28E3F8CC00B47552 /* SessionCell+Info.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD71164D28E3F8CC00B47552 /* SessionCell+Info.swift */; };
|
||||
FD71165028E3F9FA00B47552 /* SessionTableViewModel+NavItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD71164F28E3F9FA00B47552 /* SessionTableViewModel+NavItem.swift */; };
|
||||
FD71165228E410BE00B47552 /* SessionTableSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD71165128E410BE00B47552 /* SessionTableSection.swift */; };
|
||||
|
@ -822,6 +821,7 @@
|
|||
FDDF074429C3E3D000E5E8B5 /* FetchRequest+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDDF074329C3E3D000E5E8B5 /* FetchRequest+Utilities.swift */; };
|
||||
FDE658A129418C7900A33BC1 /* CryptoKit+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDE658A029418C7900A33BC1 /* CryptoKit+Utilities.swift */; };
|
||||
FDE658A329418E2F00A33BC1 /* KeyPair.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDE658A229418E2F00A33BC1 /* KeyPair.swift */; };
|
||||
FDE6E99829F8E63A00F93C5D /* Accessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDE6E99729F8E63A00F93C5D /* Accessibility.swift */; };
|
||||
FDE77F6B280FEB28002CFC5D /* ControlMessageProcessRecord.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDE77F6A280FEB28002CFC5D /* ControlMessageProcessRecord.swift */; };
|
||||
FDED2E3C282E1B5D00B2CD2A /* UICollectionView+ReusableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDED2E3B282E1B5D00B2CD2A /* UICollectionView+ReusableView.swift */; };
|
||||
FDF0B73C27FFD3D6004C14C5 /* LinkPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDF0B73B27FFD3D6004C14C5 /* LinkPreview.swift */; };
|
||||
|
@ -1824,7 +1824,6 @@
|
|||
FD71164528E2CC1300B47552 /* SessionHighlightingBackgroundLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionHighlightingBackgroundLabel.swift; sourceTree = "<group>"; };
|
||||
FD71164728E2CE8700B47552 /* SessionCell+AccessoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SessionCell+AccessoryView.swift"; sourceTree = "<group>"; };
|
||||
FD71164928E3EA5B00B47552 /* DismissType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DismissType.swift; sourceTree = "<group>"; };
|
||||
FD71164B28E3F5AA00B47552 /* SessionCell+Accessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SessionCell+Accessibility.swift"; sourceTree = "<group>"; };
|
||||
FD71164D28E3F8CC00B47552 /* SessionCell+Info.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SessionCell+Info.swift"; sourceTree = "<group>"; };
|
||||
FD71164F28E3F9FA00B47552 /* SessionTableViewModel+NavItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SessionTableViewModel+NavItem.swift"; sourceTree = "<group>"; };
|
||||
FD71165128E410BE00B47552 /* SessionTableSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionTableSection.swift; sourceTree = "<group>"; };
|
||||
|
@ -1954,6 +1953,7 @@
|
|||
FDDF074329C3E3D000E5E8B5 /* FetchRequest+Utilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FetchRequest+Utilities.swift"; sourceTree = "<group>"; };
|
||||
FDE658A029418C7900A33BC1 /* CryptoKit+Utilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CryptoKit+Utilities.swift"; sourceTree = "<group>"; };
|
||||
FDE658A229418E2F00A33BC1 /* KeyPair.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyPair.swift; sourceTree = "<group>"; };
|
||||
FDE6E99729F8E63A00F93C5D /* Accessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Accessibility.swift; sourceTree = "<group>"; };
|
||||
FDE7214F287E50D50093DF33 /* ProtoWrappers.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = ProtoWrappers.py; sourceTree = "<group>"; };
|
||||
FDE72150287E50D50093DF33 /* LintLocalizableStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LintLocalizableStrings.swift; sourceTree = "<group>"; };
|
||||
FDE77F68280F9EDA002CFC5D /* JobRunnerError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JobRunnerError.swift; sourceTree = "<group>"; };
|
||||
|
@ -3967,6 +3967,7 @@
|
|||
children = (
|
||||
FD71162B28E1451400B47552 /* Position.swift */,
|
||||
FD71163128E2C42A00B47552 /* IconSize.swift */,
|
||||
FDE6E99729F8E63A00F93C5D /* Accessibility.swift */,
|
||||
);
|
||||
path = Types;
|
||||
sourceTree = "<group>";
|
||||
|
@ -3989,7 +3990,6 @@
|
|||
FD71163328E2C48400B47552 /* TransitionType.swift */,
|
||||
FD71164D28E3F8CC00B47552 /* SessionCell+Info.swift */,
|
||||
FD71164328E2CB8A00B47552 /* SessionCell+Accessory.swift */,
|
||||
FD71164B28E3F5AA00B47552 /* SessionCell+Accessibility.swift */,
|
||||
FDF848F429413EEC007DCAE5 /* SessionCell+Styling.swift */,
|
||||
FD71165128E410BE00B47552 /* SessionTableSection.swift */,
|
||||
FD71164F28E3F9FA00B47552 /* SessionTableViewModel+NavItem.swift */,
|
||||
|
@ -5426,6 +5426,7 @@
|
|||
C331FFE92558FB0000070591 /* Separator.swift in Sources */,
|
||||
FD71163228E2C42A00B47552 /* IconSize.swift in Sources */,
|
||||
C33100282559000A00070591 /* UIView+Utilities.swift in Sources */,
|
||||
FDE6E99829F8E63A00F93C5D /* Accessibility.swift in Sources */,
|
||||
FD37E9CA28A1E4BD003AE748 /* Theme+ClassicLight.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
@ -5899,7 +5900,6 @@
|
|||
B8CCF63723961D6D0091D419 /* NewDMVC.swift in Sources */,
|
||||
FDFDE12A282D056B0098B17F /* MediaZoomAnimationController.swift in Sources */,
|
||||
4C1885D2218F8E1C00B67051 /* PhotoGridViewCell.swift in Sources */,
|
||||
FD71164C28E3F5AA00B47552 /* SessionCell+Accessibility.swift in Sources */,
|
||||
34D1F0501F7D45A60066283D /* GifPickerCell.swift in Sources */,
|
||||
7BFA8AE32831D0D4001876F3 /* ContextMenuVC+EmojiReactsView.swift in Sources */,
|
||||
C3E5C2FA251DBABB0040DFFC /* EditClosedGroupVC.swift in Sources */,
|
||||
|
|
|
@ -214,7 +214,7 @@ final class NewClosedGroupVC: BaseVC, UITableViewDataSource, UITableViewDelegate
|
|||
self?.selectedContacts.contains(profile.id) == true
|
||||
}),
|
||||
styling: SessionCell.StyleInfo(backgroundStyle: .edgeToEdge),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "Contact"
|
||||
)
|
||||
)
|
||||
|
|
|
@ -71,8 +71,7 @@ extension ConversationVC:
|
|||
title: "modal_call_permission_request_title".localized(),
|
||||
explanation: "modal_call_permission_request_explanation".localized(),
|
||||
confirmTitle: "vc_settings_title".localized(),
|
||||
confirmAccessibilityLabel: "Settings",
|
||||
cancelAccessibilityLabel: "Cancel",
|
||||
confirmAccessibility: Accessibility(identifier: "Settings"),
|
||||
dismissOnConfirm: false // Custom dismissal logic
|
||||
) { [weak self] _ in
|
||||
self?.dismiss(animated: true) {
|
||||
|
@ -139,8 +138,8 @@ extension ConversationVC:
|
|||
range: (message as NSString).range(of: self.viewModel.threadData.displayName)
|
||||
),
|
||||
confirmTitle: "modal_blocked_button_title".localized(),
|
||||
confirmAccessibilityLabel: "Confirm block",
|
||||
cancelAccessibilityLabel: "Cancel block",
|
||||
confirmAccessibility: Accessibility(identifier: "Confirm block"),
|
||||
cancelAccessibility: Accessibility(identifier: "Cancel block"),
|
||||
dismissOnConfirm: false // Custom dismissal logic
|
||||
) { [weak self] _ in
|
||||
self?.viewModel.unblockContact()
|
||||
|
@ -912,8 +911,8 @@ extension ConversationVC:
|
|||
range: (message as NSString).range(of: cellViewModel.authorName)
|
||||
),
|
||||
confirmTitle: "modal_download_button_title".localized(),
|
||||
confirmAccessibilityLabel: "Download media",
|
||||
cancelAccessibilityLabel: "Don't download media",
|
||||
confirmAccessibility: Accessibility(identifier: "Download media"),
|
||||
cancelAccessibility: Accessibility(identifier: "Don't download media"),
|
||||
dismissOnConfirm: false // Custom dismissal logic
|
||||
) { [weak self] _ in
|
||||
self?.viewModel.trustContact()
|
||||
|
|
|
@ -285,7 +285,7 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
),
|
||||
backgroundStyle: .noBackground
|
||||
),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "Username",
|
||||
label: threadViewModel.displayName
|
||||
),
|
||||
|
@ -311,7 +311,7 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
),
|
||||
backgroundStyle: .noBackground
|
||||
),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "Session ID",
|
||||
label: threadViewModel.id
|
||||
)
|
||||
|
@ -333,7 +333,7 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
"COPY_GROUP_URL".localized() :
|
||||
"vc_conversation_settings_copy_session_id_button_title".localized()
|
||||
),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "\(ThreadSettingsViewModel.self).copy_thread_id",
|
||||
label: "Copy Session ID"
|
||||
),
|
||||
|
@ -371,7 +371,7 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
.withRenderingMode(.alwaysTemplate)
|
||||
),
|
||||
title: MediaStrings.allMedia,
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "\(ThreadSettingsViewModel.self).all_media",
|
||||
label: "All media"
|
||||
),
|
||||
|
@ -393,7 +393,7 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
.withRenderingMode(.alwaysTemplate)
|
||||
),
|
||||
title: "CONVERSATION_SETTINGS_SEARCH".localized(),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "\(ThreadSettingsViewModel.self).search",
|
||||
label: "Search"
|
||||
),
|
||||
|
@ -410,7 +410,7 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
.withRenderingMode(.alwaysTemplate)
|
||||
),
|
||||
title: "vc_conversation_settings_invite_button_title".localized(),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "\(ThreadSettingsViewModel.self).add_to_open_group"
|
||||
),
|
||||
onTap: { [weak self] in
|
||||
|
@ -439,7 +439,7 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
"ic_timer_disabled"
|
||||
)
|
||||
)?.withRenderingMode(.alwaysTemplate),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
label: "Timer icon"
|
||||
)
|
||||
),
|
||||
|
@ -451,7 +451,7 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
) :
|
||||
"DISAPPEARING_MESSAGES_SUBTITLE_OFF".localized()
|
||||
),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "\(ThreadSettingsViewModel.self).disappearing_messages",
|
||||
label: "Disappearing messages"
|
||||
),
|
||||
|
@ -477,7 +477,7 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
.withRenderingMode(.alwaysTemplate)
|
||||
),
|
||||
title: "EDIT_GROUP_ACTION".localized(),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "Edit group",
|
||||
label: "Edit group"
|
||||
),
|
||||
|
@ -497,7 +497,7 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
.withRenderingMode(.alwaysTemplate)
|
||||
),
|
||||
title: "LEAVE_GROUP_ACTION".localized(),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "Leave group",
|
||||
label: "Leave group"
|
||||
),
|
||||
|
@ -579,7 +579,7 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
) ||
|
||||
currentUserIsClosedGroupMember
|
||||
),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "Mentions only notification setting",
|
||||
label: "Mentions only"
|
||||
),
|
||||
|
@ -617,7 +617,7 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
) ||
|
||||
currentUserIsClosedGroupMember
|
||||
),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "\(ThreadSettingsViewModel.self).mute",
|
||||
label: "Mute notifications"
|
||||
),
|
||||
|
@ -656,7 +656,7 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
rightAccessory: .toggle(
|
||||
.boolValue(threadViewModel.threadIsBlocked == true)
|
||||
),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "\(ThreadSettingsViewModel.self).block",
|
||||
label: "Block"
|
||||
),
|
||||
|
@ -682,7 +682,7 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
"BLOCK_LIST_UNBLOCK_BUTTON".localized() :
|
||||
"BLOCK_LIST_BLOCK_BUTTON".localized()
|
||||
),
|
||||
confirmAccessibilityLabel: "Confirm block",
|
||||
confirmAccessibility: Accessibility(identifier: "Confirm block"),
|
||||
confirmStyle: .danger,
|
||||
cancelStyle: .alert_text
|
||||
),
|
||||
|
@ -820,10 +820,12 @@ class ThreadSettingsViewModel: SessionTableViewModel<ThreadSettingsViewModel.Nav
|
|||
) :
|
||||
nil
|
||||
),
|
||||
accessibilityLabel: oldBlockedState == false ? "User blocked" : "Confirm unblock",
|
||||
accessibilityId: "Test_name",
|
||||
accessibility: Accessibility(
|
||||
identifier: "Test_name",
|
||||
label: (oldBlockedState == false ? "User blocked" : "Confirm unblock")
|
||||
),
|
||||
cancelTitle: "BUTTON_OK".localized(),
|
||||
cancelAccessibilityLabel: "OK_BUTTON",
|
||||
cancelAccessibility: Accessibility(identifier: "OK_BUTTON"),
|
||||
cancelStyle: .alert_text
|
||||
)
|
||||
)
|
||||
|
|
|
@ -209,7 +209,7 @@ class PrivacySettingsViewModel: SessionTableViewModel<PrivacySettingsViewModel.N
|
|||
title: "PRIVACY_CALLS_TITLE".localized(),
|
||||
subtitle: "PRIVACY_CALLS_DESCRIPTION".localized(),
|
||||
rightAccessory: .toggle(.settingBool(key: .areCallsEnabled)),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
label: "Allow voice and video calls"
|
||||
),
|
||||
confirmationInfo: ConfirmationModal.Info(
|
||||
|
@ -217,7 +217,7 @@ class PrivacySettingsViewModel: SessionTableViewModel<PrivacySettingsViewModel.N
|
|||
explanation: "PRIVACY_CALLS_WARNING_DESCRIPTION".localized(),
|
||||
stateToShow: .whenDisabled,
|
||||
confirmTitle: "continue_2".localized(),
|
||||
confirmAccessibilityLabel: "Enable",
|
||||
confirmAccessibility: Accessibility(identifier: "Enable"),
|
||||
confirmStyle: .textPrimary,
|
||||
onConfirm: { _ in Permissions.requestMicrophonePermissionIfNeeded() }
|
||||
),
|
||||
|
|
|
@ -254,7 +254,7 @@ class SettingsViewModel: SessionTableViewModel<SettingsViewModel.NavButton, Sett
|
|||
customPadding: SessionCell.Padding(bottom: Values.smallSpacing),
|
||||
backgroundStyle: .noBackground
|
||||
),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
label: "Profile picture"
|
||||
),
|
||||
onTap: {
|
||||
|
@ -278,7 +278,7 @@ class SettingsViewModel: SessionTableViewModel<SettingsViewModel.NavButton, Sett
|
|||
customPadding: SessionCell.Padding(top: Values.smallSpacing),
|
||||
backgroundStyle: .noBackground
|
||||
),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "Username",
|
||||
label: profile.displayName()
|
||||
),
|
||||
|
@ -301,7 +301,7 @@ class SettingsViewModel: SessionTableViewModel<SettingsViewModel.NavButton, Sett
|
|||
customPadding: SessionCell.Padding(bottom: Values.smallSpacing),
|
||||
backgroundStyle: .noBackground
|
||||
),
|
||||
accessibility: SessionCell.Accessibility(
|
||||
accessibility: Accessibility(
|
||||
identifier: "Session ID",
|
||||
label: profile.id
|
||||
)
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
|
||||
|
||||
import Foundation
|
||||
|
||||
public extension SessionCell {
|
||||
struct Accessibility: Hashable, Equatable {
|
||||
let identifier: String?
|
||||
let label: String?
|
||||
|
||||
public init(
|
||||
identifier: String? = nil,
|
||||
label: String? = nil
|
||||
) {
|
||||
self.identifier = identifier
|
||||
self.label = label
|
||||
}
|
||||
}
|
||||
}
|
|
@ -13,33 +13,33 @@ extension SessionCell {
|
|||
size: IconSize,
|
||||
customTint: ThemeValue?,
|
||||
shouldFill: Bool,
|
||||
accessibility: SessionCell.Accessibility?
|
||||
accessibility: Accessibility?
|
||||
)
|
||||
case iconAsync(
|
||||
size: IconSize,
|
||||
customTint: ThemeValue?,
|
||||
shouldFill: Bool,
|
||||
accessibility: SessionCell.Accessibility?,
|
||||
accessibility: Accessibility?,
|
||||
setter: (UIImageView) -> Void
|
||||
)
|
||||
case toggle(
|
||||
DataSource,
|
||||
accessibility: SessionCell.Accessibility?
|
||||
accessibility: Accessibility?
|
||||
)
|
||||
case dropDown(
|
||||
DataSource,
|
||||
accessibility: SessionCell.Accessibility?
|
||||
accessibility: Accessibility?
|
||||
)
|
||||
case radio(
|
||||
size: RadioSize,
|
||||
isSelected: () -> Bool,
|
||||
storedSelection: Bool,
|
||||
accessibility: SessionCell.Accessibility?
|
||||
accessibility: Accessibility?
|
||||
)
|
||||
|
||||
case highlightingBackgroundLabel(
|
||||
title: String,
|
||||
accessibility: SessionCell.Accessibility?
|
||||
accessibility: Accessibility?
|
||||
)
|
||||
case profile(
|
||||
id: String,
|
||||
|
@ -49,18 +49,18 @@ extension SessionCell {
|
|||
profile: Profile?,
|
||||
additionalProfile: Profile?,
|
||||
cornerIcon: UIImage?,
|
||||
accessibility: SessionCell.Accessibility?
|
||||
accessibility: Accessibility?
|
||||
)
|
||||
|
||||
case search(
|
||||
placeholder: String,
|
||||
accessibility: SessionCell.Accessibility?,
|
||||
accessibility: Accessibility?,
|
||||
searchTermChanged: (String?) -> Void
|
||||
)
|
||||
case button(
|
||||
style: SessionButton.Style,
|
||||
title: String,
|
||||
accessibility: SessionCell.Accessibility?,
|
||||
accessibility: Accessibility?,
|
||||
run: (SessionButton?) -> Void
|
||||
)
|
||||
case customView(
|
||||
|
@ -283,7 +283,7 @@ extension SessionCell.Accessory {
|
|||
return .icon(image, size: .medium, customTint: nil, shouldFill: shouldFill, accessibility: nil)
|
||||
}
|
||||
|
||||
public static func icon(_ image: UIImage?, accessibility: SessionCell.Accessibility) -> SessionCell.Accessory {
|
||||
public static func icon(_ image: UIImage?, accessibility: Accessibility) -> SessionCell.Accessory {
|
||||
return .icon(image, size: .medium, customTint: nil, shouldFill: false, accessibility: accessibility)
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ extension SessionCell {
|
|||
let rightAccessory: SessionCell.Accessory?
|
||||
let styling: StyleInfo
|
||||
let isEnabled: Bool
|
||||
let accessibility: SessionCell.Accessibility?
|
||||
let accessibility: Accessibility?
|
||||
let confirmationInfo: ConfirmationModal.Info?
|
||||
let onTap: (() -> Void)?
|
||||
let onTapView: ((UIView?) -> Void)?
|
||||
|
@ -37,7 +37,7 @@ extension SessionCell {
|
|||
rightAccessory: SessionCell.Accessory? = nil,
|
||||
styling: StyleInfo = StyleInfo(),
|
||||
isEnabled: Bool = true,
|
||||
accessibility: SessionCell.Accessibility? = nil,
|
||||
accessibility: Accessibility? = nil,
|
||||
confirmationInfo: ConfirmationModal.Info? = nil,
|
||||
onTap: (() -> Void)? = nil,
|
||||
onTapView: ((UIView?) -> Void)? = nil
|
||||
|
@ -119,7 +119,7 @@ public extension SessionCell.Info {
|
|||
accessory: SessionCell.Accessory,
|
||||
styling: SessionCell.StyleInfo = SessionCell.StyleInfo(),
|
||||
isEnabled: Bool = true,
|
||||
accessibility: SessionCell.Accessibility? = nil,
|
||||
accessibility: Accessibility? = nil,
|
||||
confirmationInfo: ConfirmationModal.Info? = nil,
|
||||
onTap: (() -> Void)? = nil
|
||||
) {
|
||||
|
@ -146,7 +146,7 @@ public extension SessionCell.Info {
|
|||
rightAccessory: SessionCell.Accessory,
|
||||
styling: SessionCell.StyleInfo = SessionCell.StyleInfo(),
|
||||
isEnabled: Bool = true,
|
||||
accessibility: SessionCell.Accessibility? = nil,
|
||||
accessibility: Accessibility? = nil,
|
||||
confirmationInfo: ConfirmationModal.Info? = nil
|
||||
) {
|
||||
self.id = id
|
||||
|
@ -173,7 +173,7 @@ public extension SessionCell.Info {
|
|||
rightAccessory: SessionCell.Accessory? = nil,
|
||||
styling: SessionCell.StyleInfo = SessionCell.StyleInfo(),
|
||||
isEnabled: Bool = true,
|
||||
accessibility: SessionCell.Accessibility? = nil,
|
||||
accessibility: Accessibility? = nil,
|
||||
confirmationInfo: ConfirmationModal.Info? = nil,
|
||||
onTap: (() -> Void)? = nil
|
||||
) {
|
||||
|
@ -201,7 +201,7 @@ public extension SessionCell.Info {
|
|||
rightAccessory: SessionCell.Accessory? = nil,
|
||||
styling: SessionCell.StyleInfo = SessionCell.StyleInfo(),
|
||||
isEnabled: Bool = true,
|
||||
accessibility: SessionCell.Accessibility? = nil,
|
||||
accessibility: Accessibility? = nil,
|
||||
confirmationInfo: ConfirmationModal.Info? = nil,
|
||||
onTap: (() -> Void)? = nil
|
||||
) {
|
||||
|
@ -230,7 +230,7 @@ public extension SessionCell.Info {
|
|||
rightAccessory: SessionCell.Accessory? = nil,
|
||||
styling: SessionCell.StyleInfo = SessionCell.StyleInfo(),
|
||||
isEnabled: Bool = true,
|
||||
accessibility: SessionCell.Accessibility? = nil,
|
||||
accessibility: Accessibility? = nil,
|
||||
confirmationInfo: ConfirmationModal.Info? = nil,
|
||||
onTap: (() -> Void)? = nil,
|
||||
onTapView: ((UIView?) -> Void)? = nil
|
||||
|
|
|
@ -75,7 +75,7 @@ final class UserSelectionVC: BaseVC, UITableViewDataSource, UITableViewDelegate
|
|||
self?.selectedUsers.contains(profile.id) == true
|
||||
}),
|
||||
styling: SessionCell.StyleInfo(backgroundStyle: .edgeToEdge),
|
||||
accessibility: SessionCell.Accessibility(identifier: "Contact")
|
||||
accessibility: Accessibility(identifier: "Contact")
|
||||
)
|
||||
)
|
||||
|
||||
|
|
|
@ -151,6 +151,9 @@ public extension UIContextualAction {
|
|||
title: "hide_note_to_self_confirmation_alert_title".localized(),
|
||||
attributedExplanation: confirmationModalExplanation,
|
||||
confirmTitle: "TXT_HIDE_TITLE".localized(),
|
||||
confirmAccessibility: Accessibility(
|
||||
identifier: "Hide"
|
||||
),
|
||||
confirmStyle: .danger,
|
||||
cancelStyle: .alert_text,
|
||||
dismissOnConfirm: true,
|
||||
|
@ -337,6 +340,9 @@ public extension UIContextualAction {
|
|||
info: ConfirmationModal.Info(
|
||||
title: "MESSAGE_REQUESTS_BLOCK_CONFIRMATION_ACTON".localized(),
|
||||
confirmTitle: "BLOCK_LIST_BLOCK_BUTTON".localized(),
|
||||
confirmAccessibility: Accessibility(
|
||||
identifier: "Block"
|
||||
),
|
||||
confirmStyle: .danger,
|
||||
cancelStyle: .alert_text,
|
||||
dismissOnConfirm: true,
|
||||
|
@ -398,6 +404,9 @@ public extension UIContextualAction {
|
|||
title: confirmationModalTitle,
|
||||
attributedExplanation: confirmationModalExplanation,
|
||||
confirmTitle: "LEAVE_BUTTON_TITLE".localized(),
|
||||
confirmAccessibility: Accessibility(
|
||||
identifier: "Leave"
|
||||
),
|
||||
confirmStyle: .danger,
|
||||
cancelStyle: .alert_text,
|
||||
dismissOnConfirm: true,
|
||||
|
@ -493,6 +502,9 @@ public extension UIContextualAction {
|
|||
title: confirmationModalTitle,
|
||||
attributedExplanation: confirmationModalExplanation,
|
||||
confirmTitle: "TXT_DELETE_TITLE".localized(),
|
||||
confirmAccessibility: Accessibility(
|
||||
identifier: "Delete"
|
||||
),
|
||||
confirmStyle: .danger,
|
||||
cancelStyle: .alert_text,
|
||||
dismissOnConfirm: true,
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
|
||||
|
||||
import UIKit
|
||||
import SessionUtilitiesKit
|
||||
|
||||
public class ConfirmationModal: Modal {
|
||||
public struct Info: Equatable, Hashable {
|
||||
|
@ -21,14 +22,13 @@ public class ConfirmationModal: Modal {
|
|||
let title: String
|
||||
let explanation: String?
|
||||
let attributedExplanation: NSAttributedString?
|
||||
let accessibilityLabel: String?
|
||||
let accessibilityIdentifier: String?
|
||||
let accessibility: Accessibility?
|
||||
public let stateToShow: State
|
||||
let confirmTitle: String?
|
||||
let confirmAccessibilityLabel: String?
|
||||
let confirmAccessibility: Accessibility?
|
||||
let confirmStyle: ThemeValue
|
||||
let cancelTitle: String
|
||||
let cancelAccessibilityLabel: String?
|
||||
let cancelAccessibility: Accessibility?
|
||||
let cancelStyle: ThemeValue
|
||||
let dismissOnConfirm: Bool
|
||||
let onConfirm: ((UIViewController) -> ())?
|
||||
|
@ -40,14 +40,15 @@ public class ConfirmationModal: Modal {
|
|||
title: String,
|
||||
explanation: String? = nil,
|
||||
attributedExplanation: NSAttributedString? = nil,
|
||||
accessibilityLabel: String? = nil,
|
||||
accessibilityId: String? = nil,
|
||||
accessibility: Accessibility? = nil,
|
||||
stateToShow: State = .always,
|
||||
confirmTitle: String? = nil,
|
||||
confirmAccessibilityLabel: String? = nil,
|
||||
confirmAccessibility: Accessibility? = nil,
|
||||
confirmStyle: ThemeValue = .alert_text,
|
||||
cancelTitle: String = "TXT_CANCEL_TITLE".localized(),
|
||||
cancelAccessibilityLabel: String? = nil,
|
||||
cancelAccessibility: Accessibility? = Accessibility(
|
||||
identifier: "Cancel"
|
||||
),
|
||||
cancelStyle: ThemeValue = .danger,
|
||||
dismissOnConfirm: Bool = true,
|
||||
onConfirm: ((UIViewController) -> ())? = nil,
|
||||
|
@ -56,14 +57,13 @@ public class ConfirmationModal: Modal {
|
|||
self.title = title
|
||||
self.explanation = explanation
|
||||
self.attributedExplanation = attributedExplanation
|
||||
self.accessibilityLabel = accessibilityLabel
|
||||
self.accessibilityIdentifier = accessibilityId
|
||||
self.accessibility = accessibility
|
||||
self.stateToShow = stateToShow
|
||||
self.confirmTitle = confirmTitle
|
||||
self.confirmAccessibilityLabel = confirmAccessibilityLabel
|
||||
self.confirmAccessibility = confirmAccessibility
|
||||
self.confirmStyle = confirmStyle
|
||||
self.cancelTitle = cancelTitle
|
||||
self.cancelAccessibilityLabel = cancelAccessibilityLabel
|
||||
self.cancelAccessibility = cancelAccessibility
|
||||
self.cancelStyle = cancelStyle
|
||||
self.dismissOnConfirm = dismissOnConfirm
|
||||
self.onConfirm = onConfirm
|
||||
|
@ -80,13 +80,13 @@ public class ConfirmationModal: Modal {
|
|||
title: self.title,
|
||||
explanation: self.explanation,
|
||||
attributedExplanation: self.attributedExplanation,
|
||||
accessibilityLabel: self.accessibilityLabel,
|
||||
accessibility: self.accessibility,
|
||||
stateToShow: self.stateToShow,
|
||||
confirmTitle: self.confirmTitle,
|
||||
confirmAccessibilityLabel: self.confirmAccessibilityLabel,
|
||||
confirmAccessibility: self.confirmAccessibility,
|
||||
confirmStyle: self.confirmStyle,
|
||||
cancelTitle: self.cancelTitle,
|
||||
cancelAccessibilityLabel: self.cancelAccessibilityLabel,
|
||||
cancelAccessibility: self.cancelAccessibility,
|
||||
cancelStyle: self.cancelStyle,
|
||||
dismissOnConfirm: self.dismissOnConfirm,
|
||||
onConfirm: (onConfirm ?? self.onConfirm),
|
||||
|
@ -101,13 +101,13 @@ public class ConfirmationModal: Modal {
|
|||
lhs.title == rhs.title &&
|
||||
lhs.explanation == rhs.explanation &&
|
||||
lhs.attributedExplanation == rhs.attributedExplanation &&
|
||||
lhs.accessibilityLabel == rhs.accessibilityLabel &&
|
||||
lhs.accessibility == rhs.accessibility &&
|
||||
lhs.stateToShow == rhs.stateToShow &&
|
||||
lhs.confirmTitle == rhs.confirmTitle &&
|
||||
lhs.confirmAccessibilityLabel == rhs.confirmAccessibilityLabel &&
|
||||
lhs.confirmAccessibility == rhs.confirmAccessibility &&
|
||||
lhs.confirmStyle == rhs.confirmStyle &&
|
||||
lhs.cancelTitle == rhs.cancelTitle &&
|
||||
lhs.cancelAccessibilityLabel == rhs.cancelAccessibilityLabel &&
|
||||
lhs.cancelAccessibility == rhs.cancelAccessibility &&
|
||||
lhs.cancelStyle == rhs.cancelStyle &&
|
||||
lhs.dismissOnConfirm == rhs.dismissOnConfirm
|
||||
)
|
||||
|
@ -117,13 +117,13 @@ public class ConfirmationModal: Modal {
|
|||
title.hash(into: &hasher)
|
||||
explanation.hash(into: &hasher)
|
||||
attributedExplanation.hash(into: &hasher)
|
||||
accessibilityLabel.hash(into: &hasher)
|
||||
accessibility.hash(into: &hasher)
|
||||
stateToShow.hash(into: &hasher)
|
||||
confirmTitle.hash(into: &hasher)
|
||||
confirmAccessibilityLabel.hash(into: &hasher)
|
||||
confirmAccessibility.hash(into: &hasher)
|
||||
confirmStyle.hash(into: &hasher)
|
||||
cancelTitle.hash(into: &hasher)
|
||||
cancelAccessibilityLabel.hash(into: &hasher)
|
||||
cancelAccessibility.hash(into: &hasher)
|
||||
cancelStyle.hash(into: &hasher)
|
||||
dismissOnConfirm.hash(into: &hasher)
|
||||
}
|
||||
|
@ -229,20 +229,20 @@ public class ConfirmationModal: Modal {
|
|||
info.explanation == nil &&
|
||||
info.attributedExplanation == nil
|
||||
)
|
||||
confirmButton.accessibilityLabel = info.confirmAccessibilityLabel
|
||||
confirmButton.accessibilityIdentifier = info.confirmAccessibilityLabel
|
||||
confirmButton.accessibilityLabel = info.confirmAccessibility?.label
|
||||
confirmButton.accessibilityIdentifier = info.confirmAccessibility?.identifier
|
||||
confirmButton.isAccessibilityElement = true
|
||||
confirmButton.setTitle(info.confirmTitle, for: .normal)
|
||||
confirmButton.setThemeTitleColor(info.confirmStyle, for: .normal)
|
||||
confirmButton.isHidden = (info.confirmTitle == nil)
|
||||
cancelButton.accessibilityLabel = info.cancelAccessibilityLabel
|
||||
cancelButton.accessibilityIdentifier = info.cancelAccessibilityLabel
|
||||
cancelButton.accessibilityLabel = info.cancelAccessibility?.label
|
||||
cancelButton.accessibilityIdentifier = info.cancelAccessibility?.identifier
|
||||
cancelButton.isAccessibilityElement = true
|
||||
cancelButton.setTitle(info.cancelTitle, for: .normal)
|
||||
cancelButton.setThemeTitleColor(info.cancelStyle, for: .normal)
|
||||
|
||||
self.contentView.accessibilityLabel = info.accessibilityLabel
|
||||
self.contentView.accessibilityIdentifier = info.accessibilityIdentifier
|
||||
contentView.accessibilityLabel = info.accessibility?.label
|
||||
contentView.accessibilityIdentifier = info.accessibility?.identifier
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
// Copyright © 2023 Rangeproof Pty Ltd. All rights reserved.
|
||||
|
||||
import Foundation
|
||||
|
||||
public struct Accessibility: Hashable, Equatable {
|
||||
public let identifier: String?
|
||||
public let label: String?
|
||||
|
||||
public init(
|
||||
identifier: String? = nil,
|
||||
label: String? = nil
|
||||
) {
|
||||
self.identifier = identifier
|
||||
self.label = label
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue