@ -11,6 +11,8 @@ final class SettingsVC : BaseVC, AvatarViewHelperDelegate {
result . size = size
result . size = size
result . set ( . width , to : size )
result . set ( . width , to : size )
result . set ( . height , to : size )
result . set ( . height , to : size )
result . accessibilityLabel = " Edit profile picture button "
result . isAccessibilityElement = true
return result
return result
} ( )
} ( )
@ -32,6 +34,7 @@ final class SettingsVC : BaseVC, AvatarViewHelperDelegate {
private lazy var displayNameTextField : TextField = {
private lazy var displayNameTextField : TextField = {
let result = TextField ( placeholder : NSLocalizedString ( " vc_settings_display_name_text_field_hint " , comment : " " ) , usesDefaultHeight : false )
let result = TextField ( placeholder : NSLocalizedString ( " vc_settings_display_name_text_field_hint " , comment : " " ) , usesDefaultHeight : false )
result . textAlignment = . center
result . textAlignment = . center
result . accessibilityLabel = " Edit display name text field "
return result
return result
} ( )
} ( )
@ -69,6 +72,8 @@ final class SettingsVC : BaseVC, AvatarViewHelperDelegate {
displayNameLabel . text = OWSProfileManager . shared ( ) . profileNameForRecipient ( withID : getUserHexEncodedPublicKey ( ) )
displayNameLabel . text = OWSProfileManager . shared ( ) . profileNameForRecipient ( withID : getUserHexEncodedPublicKey ( ) )
// S e t u p d i s p l a y n a m e c o n t a i n e r
// S e t u p d i s p l a y n a m e c o n t a i n e r
let displayNameContainer = UIView ( )
let displayNameContainer = UIView ( )
displayNameContainer . accessibilityLabel = " Edit display name text field "
displayNameContainer . isAccessibilityElement = true
displayNameContainer . addSubview ( displayNameLabel )
displayNameContainer . addSubview ( displayNameLabel )
displayNameLabel . pin ( to : displayNameContainer )
displayNameLabel . pin ( to : displayNameContainer )
displayNameContainer . addSubview ( displayNameTextField )
displayNameContainer . addSubview ( displayNameTextField )
@ -236,13 +241,19 @@ final class SettingsVC : BaseVC, AvatarViewHelperDelegate {
if isEditingDisplayName {
if isEditingDisplayName {
let cancelButton = UIBarButtonItem ( barButtonSystemItem : . cancel , target : self , action : #selector ( handleCancelDisplayNameEditingButtonTapped ) )
let cancelButton = UIBarButtonItem ( barButtonSystemItem : . cancel , target : self , action : #selector ( handleCancelDisplayNameEditingButtonTapped ) )
cancelButton . tintColor = Colors . text
cancelButton . tintColor = Colors . text
cancelButton . accessibilityLabel = " Cancel button "
cancelButton . isAccessibilityElement = true
navigationItem . leftBarButtonItem = cancelButton
navigationItem . leftBarButtonItem = cancelButton
let doneButton = UIBarButtonItem ( barButtonSystemItem : . done , target : self , action : #selector ( handleSaveDisplayNameButtonTapped ) )
let doneButton = UIBarButtonItem ( barButtonSystemItem : . done , target : self , action : #selector ( handleSaveDisplayNameButtonTapped ) )
doneButton . tintColor = Colors . text
doneButton . tintColor = Colors . text
doneButton . accessibilityLabel = " Done button "
doneButton . isAccessibilityElement = true
navigationItem . rightBarButtonItem = doneButton
navigationItem . rightBarButtonItem = doneButton
} else {
} else {
let closeButton = UIBarButtonItem ( image : # imageLiteral ( resourceName : " X " ) , style : . plain , target : self , action : #selector ( close ) )
let closeButton = UIBarButtonItem ( image : # imageLiteral ( resourceName : " X " ) , style : . plain , target : self , action : #selector ( close ) )
closeButton . tintColor = Colors . text
closeButton . tintColor = Colors . text
closeButton . accessibilityLabel = " Close button "
closeButton . isAccessibilityElement = true
navigationItem . leftBarButtonItem = closeButton
navigationItem . leftBarButtonItem = closeButton
if #available ( iOS 13 , * ) { // P r e i O S 1 3 t h e u s e r c a n ' t s w i t c h a c t i v e l y b u t t h e a p p s t i l l r e s p o n d s t o s y s t e m c h a n g e s
if #available ( iOS 13 , * ) { // P r e i O S 1 3 t h e u s e r c a n ' t s w i t c h a c t i v e l y b u t t h e a p p s t i l l r e s p o n d s t o s y s t e m c h a n g e s
let appModeIcon = isDarkMode ? # imageLiteral ( resourceName : " ic_dark_theme_on " ) . withTintColor ( . white ) : # imageLiteral ( resourceName : " ic_dark_theme_off " ) . withTintColor ( . black )
let appModeIcon = isDarkMode ? # imageLiteral ( resourceName : " ic_dark_theme_on " ) . withTintColor ( . white ) : # imageLiteral ( resourceName : " ic_dark_theme_off " ) . withTintColor ( . black )
@ -250,11 +261,13 @@ final class SettingsVC : BaseVC, AvatarViewHelperDelegate {
appModeButton . setImage ( appModeIcon , for : UIControl . State . normal )
appModeButton . setImage ( appModeIcon , for : UIControl . State . normal )
appModeButton . tintColor = Colors . text
appModeButton . tintColor = Colors . text
appModeButton . addTarget ( self , action : #selector ( switchAppMode ) , for : UIControl . Event . touchUpInside )
appModeButton . addTarget ( self , action : #selector ( switchAppMode ) , for : UIControl . Event . touchUpInside )
appModeButton . accessibilityLabel = " Switch app mode button "
let qrCodeIcon = isDarkMode ? # imageLiteral ( resourceName : " QRCode " ) . withTintColor ( . white ) : # imageLiteral ( resourceName : " QRCode " ) . withTintColor ( . black )
let qrCodeIcon = isDarkMode ? # imageLiteral ( resourceName : " QRCode " ) . withTintColor ( . white ) : # imageLiteral ( resourceName : " QRCode " ) . withTintColor ( . black )
let qrCodeButton = UIButton ( )
let qrCodeButton = UIButton ( )
qrCodeButton . setImage ( qrCodeIcon , for : UIControl . State . normal )
qrCodeButton . setImage ( qrCodeIcon , for : UIControl . State . normal )
qrCodeButton . tintColor = Colors . text
qrCodeButton . tintColor = Colors . text
qrCodeButton . addTarget ( self , action : #selector ( showQRCode ) , for : UIControl . Event . touchUpInside )
qrCodeButton . addTarget ( self , action : #selector ( showQRCode ) , for : UIControl . Event . touchUpInside )
qrCodeButton . accessibilityLabel = " Show QR code button "
let stackView = UIStackView ( arrangedSubviews : [ appModeButton , qrCodeButton ] )
let stackView = UIStackView ( arrangedSubviews : [ appModeButton , qrCodeButton ] )
stackView . axis = . horizontal
stackView . axis = . horizontal
stackView . spacing = Values . mediumSpacing
stackView . spacing = Values . mediumSpacing