Merge branch 'feature/4519_voice_over_texte_secure_textfield' into 'develop'

Feature/4519 voice over texte secure textfield

See merge request bwmessenger/bundesmessenger/bundesmessenger-ios!131
This commit is contained in:
Arnfried Griesert
2023-05-03 04:42:05 +00:00
6 changed files with 20 additions and 3 deletions
+4
View File
@@ -612,3 +612,7 @@
// MARK: - Device Manager
"user_session_verified_session_description" = "Du hast deine Sitzung durch Eingabe des Wiederherstellungsschlüssels oder durch die Verifizierung mit einem anderen Gerät bestätigt. Dies bedeutet, dass du alle Schlüssel zum Entschlüsseln deiner Nachrichten hast und anderen bestätigst, dieser Sitzung zu vertrauen.";
"user_session_button_view_all" = "Alle anzeigen (%d)";
// MARK: - Voice Over
"textfield_reveal_secret" = "Texteingabe anzeigen";
"textfield_hide_secret" = "Texteingabe verbergen";
+7 -1
View File
@@ -198,7 +198,7 @@
"secure_key_backup_setup_intro_use_security_passphrase_title" = "Recovery Key";
"secure_key_backup_setup_intro_use_security_passphrase_info" = "Set up recovery key.";
"key_backup_setup_passphrase_confirm_passphrase_title" = "";
"key_backup_setup_passphrase_confirm_passphrase_placeholder" = "Recovery Key";
"key_backup_setup_passphrase_confirm_passphrase_placeholder" = "Recovery Key";
"key_backup_setup_passphrase_confirm_passphrase_invalid" = "doesnt match";
"key_backup_recover_invalid_passphrase_title" = "Incorrect Recovery Key";
"key_backup_recover_invalid_passphrase" = "Backup could not be decrypted with this phrase: please verify that you entered the correct recovery key.";
@@ -459,6 +459,7 @@
"welcome_experience_title5" = "Get started today!";
"welcome_experience_description5" = "Next, you can find out whether your organization is already using BundesMessenger. If not, try to convince your boss to become part of the community!";
"welcome_experience_start" = "Start now";
// MARK: - new login flow
@@ -518,3 +519,8 @@
// MARK: - Device Manager
"user_session_verified_session_description" = "You have confirmed your session by entering the recovery key or verifying with another device. This means that you have all the keys to decrypt your messages and are confirming to others to trust this session.";
"user_session_button_view_all" = "View all (%d)";
// MARK: - Voice Over
"textfield_reveal_secret" = "reveal text input";
"textfield_hide_secret" = "hide text input";
@@ -109,7 +109,7 @@ final class SecretsRecoveryWithPassphraseViewController: UIViewController {
let visibilityImage = Asset.Images.revealPasswordButton.image.withRenderingMode(.alwaysTemplate)
self.passphraseVisibilityButton.setImage(visibilityImage, for: .normal)
self.passphraseVisibilityButton.accessibilityLabel = BWIL10n.textfieldRevealSecret
let informationText: String
switch self.viewModel.recoveryGoal {
@@ -198,8 +198,10 @@ final class SecretsRecoveryWithPassphraseViewController: UIViewController {
private func updateShowHidePassphraseButton() {
if self.passphraseTextField.isSecureTextEntry {
passphraseVisibilityButton.setImage(Asset.Images.revealPasswordButton.image, for: .normal)
passphraseVisibilityButton.accessibilityLabel = BWIL10n.textfieldRevealSecret
} else {
passphraseVisibilityButton.setImage(Asset.Images.hidePasswordButton.image, for: .normal)
passphraseVisibilityButton.accessibilityLabel = BWIL10n.textfieldHideSecret
}
}
@@ -46,6 +46,7 @@ struct PasswordButtonModifier: ViewModifier {
.frame(width: iconSize, height: iconSize)
.foregroundColor(theme.colors.secondaryContent)
}
.accessibilityLabel(isSecureTextVisible ? BWIL10n.textfieldHideSecret : BWIL10n.textfieldRevealSecret)
.padding(.top, alignment == .top ? 8 : 0)
.padding(.bottom, alignment == .bottom ? 8 : 0)
.padding(.trailing, 12)
@@ -78,7 +78,6 @@ struct RoundedBorderTextField: View {
.frame(height: 30)
.allowsHitTesting(isEnabled)
.opacity(isEnabled ? 1 : 0.5)
.accessibilityLabel(text.isEmpty ? placeHolder : "")
}
.padding(EdgeInsets(top: 8, leading: 8, bottom: 8, trailing: text.isEmpty ? 8 : 0))
.background(RoundedRectangle(cornerRadius: 8).fill(theme.colors.background))
@@ -138,6 +138,11 @@ struct ThemableTextField: UIViewRepresentable {
@objc func textFieldEditingChanged(sender: UITextField) {
parent.replaceText(with: sender.text ?? "")
if let text = sender.text, !text.isEmpty {
sender.accessibilityLabel = text
} else {
sender.accessibilityLabel = sender.placeholder ?? ""
}
}
}