Added a chevron to collapsed call buttons in the DM (#5755)

* Added a chevron to collapsed call buttons in the DM

This makes the context menu more intuitive and easy to find. Inspired by the collapsed state of call buttons in Whatsapp that I saw recently

* Shortening video/voice call button strings

Currently the text is unnecessarily long, I have reduced to button text

# Conflicts:
#	ElementX/Sources/Generated/Strings+Untranslated.swift

* Move translations to localazy

---------

Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>
This commit is contained in:
amshak
2026-06-22 11:23:37 +01:00
committed by GitHub
parent 9672c73564
commit 9f92e181b0
5 changed files with 37 additions and 6 deletions
@@ -186,9 +186,11 @@
"action_translate" = "Translate"; "action_translate" = "Translate";
"action_try_again" = "Try again"; "action_try_again" = "Try again";
"action_unpin" = "Unpin"; "action_unpin" = "Unpin";
"action_video_call" = "Video call";
"action_view" = "View"; "action_view" = "View";
"action_view_in_timeline" = "View in timeline"; "action_view_in_timeline" = "View in timeline";
"action_view_source" = "View source"; "action_view_source" = "View source";
"action_voice_call" = "Voice call";
"action_yes" = "Yes"; "action_yes" = "Yes";
"action_yes_try_again" = "Yes, try again"; "action_yes_try_again" = "Yes, try again";
"banner_migrate_to_native_sliding_sync_action" = "Log Out & Upgrade"; "banner_migrate_to_native_sliding_sync_action" = "Log Out & Upgrade";
@@ -1058,7 +1060,7 @@
"screen_notification_settings_sound_system_calypso_ios" = "Calypso"; "screen_notification_settings_sound_system_calypso_ios" = "Calypso";
"screen_notification_settings_sound_system_chime_ios" = "Chime"; "screen_notification_settings_sound_system_chime_ios" = "Chime";
"screen_notification_settings_sound_system_choo_choo_ios" = "Choo Choo"; "screen_notification_settings_sound_system_choo_choo_ios" = "Choo Choo";
"screen_notification_settings_sound_system_default_ios" = "System Default"; "screen_notification_settings_sound_system_default" = "System Default";
"screen_notification_settings_sound_system_descent_ios" = "Descent"; "screen_notification_settings_sound_system_descent_ios" = "Descent";
"screen_notification_settings_sound_system_electronic_ios" = "Electronic"; "screen_notification_settings_sound_system_electronic_ios" = "Electronic";
"screen_notification_settings_sound_system_fanfare_ios" = "Fanfare"; "screen_notification_settings_sound_system_fanfare_ios" = "Fanfare";
@@ -186,9 +186,11 @@
"action_translate" = "Translate"; "action_translate" = "Translate";
"action_try_again" = "Try again"; "action_try_again" = "Try again";
"action_unpin" = "Unpin"; "action_unpin" = "Unpin";
"action_video_call" = "Video call";
"action_view" = "View"; "action_view" = "View";
"action_view_in_timeline" = "View in timeline"; "action_view_in_timeline" = "View in timeline";
"action_view_source" = "View source"; "action_view_source" = "View source";
"action_voice_call" = "Voice call";
"action_yes" = "Yes"; "action_yes" = "Yes";
"action_yes_try_again" = "Yes, try again"; "action_yes_try_again" = "Yes, try again";
"banner_migrate_to_native_sliding_sync_action" = "Log Out & Upgrade"; "banner_migrate_to_native_sliding_sync_action" = "Log Out & Upgrade";
@@ -1058,7 +1060,7 @@
"screen_notification_settings_sound_system_calypso_ios" = "Calypso"; "screen_notification_settings_sound_system_calypso_ios" = "Calypso";
"screen_notification_settings_sound_system_chime_ios" = "Chime"; "screen_notification_settings_sound_system_chime_ios" = "Chime";
"screen_notification_settings_sound_system_choo_choo_ios" = "Choo Choo"; "screen_notification_settings_sound_system_choo_choo_ios" = "Choo Choo";
"screen_notification_settings_sound_system_default_ios" = "System Default"; "screen_notification_settings_sound_system_default" = "System Default";
"screen_notification_settings_sound_system_descent_ios" = "Descent"; "screen_notification_settings_sound_system_descent_ios" = "Descent";
"screen_notification_settings_sound_system_electronic_ios" = "Electronic"; "screen_notification_settings_sound_system_electronic_ios" = "Electronic";
"screen_notification_settings_sound_system_fanfare_ios" = "Fanfare"; "screen_notification_settings_sound_system_fanfare_ios" = "Fanfare";
@@ -562,6 +562,22 @@
<key>NSStringLocalizedFormatKey</key> <key>NSStringLocalizedFormatKey</key>
<string>%#@COUNT@</string> <string>%#@COUNT@</string>
</dict> </dict>
<key>screen_timeline_active_call_extra_joined_count</key>
<dict>
<key>COUNT</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>+ %1$d joined</string>
<key>other</key>
<string>+ %1$d joined</string>
</dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@COUNT@</string>
</dict>
<key>troubleshoot_notifications_test_blocked_users_result_some</key> <key>troubleshoot_notifications_test_blocked_users_result_some</key>
<dict> <dict>
<key>COUNT</key> <key>COUNT</key>
+9 -1
View File
@@ -408,12 +408,16 @@ internal nonisolated enum L10n {
internal static var actionTryAgain: String { return L10n.tr("Localizable", "action_try_again") } internal static var actionTryAgain: String { return L10n.tr("Localizable", "action_try_again") }
/// Unpin /// Unpin
internal static var actionUnpin: String { return L10n.tr("Localizable", "action_unpin") } internal static var actionUnpin: String { return L10n.tr("Localizable", "action_unpin") }
/// Video call
internal static var actionVideoCall: String { return L10n.tr("Localizable", "action_video_call") }
/// View /// View
internal static var actionView: String { return L10n.tr("Localizable", "action_view") } internal static var actionView: String { return L10n.tr("Localizable", "action_view") }
/// View in timeline /// View in timeline
internal static var actionViewInTimeline: String { return L10n.tr("Localizable", "action_view_in_timeline") } internal static var actionViewInTimeline: String { return L10n.tr("Localizable", "action_view_in_timeline") }
/// View source /// View source
internal static var actionViewSource: String { return L10n.tr("Localizable", "action_view_source") } internal static var actionViewSource: String { return L10n.tr("Localizable", "action_view_source") }
/// Voice call
internal static var actionVoiceCall: String { return L10n.tr("Localizable", "action_voice_call") }
/// Yes /// Yes
internal static var actionYes: String { return L10n.tr("Localizable", "action_yes") } internal static var actionYes: String { return L10n.tr("Localizable", "action_yes") }
/// Yes, try again /// Yes, try again
@@ -2455,7 +2459,7 @@ internal nonisolated enum L10n {
/// Choo Choo /// Choo Choo
internal static var screenNotificationSettingsSoundSystemChooChooIos: String { return L10n.tr("Localizable", "screen_notification_settings_sound_system_choo_choo_ios") } internal static var screenNotificationSettingsSoundSystemChooChooIos: String { return L10n.tr("Localizable", "screen_notification_settings_sound_system_choo_choo_ios") }
/// System Default /// System Default
internal static var screenNotificationSettingsSoundSystemDefaultIos: String { return L10n.tr("Localizable", "screen_notification_settings_sound_system_default_ios") } internal static var screenNotificationSettingsSoundSystemDefault: String { return L10n.tr("Localizable", "screen_notification_settings_sound_system_default") }
/// Descent /// Descent
internal static var screenNotificationSettingsSoundSystemDescentIos: String { return L10n.tr("Localizable", "screen_notification_settings_sound_system_descent_ios") } internal static var screenNotificationSettingsSoundSystemDescentIos: String { return L10n.tr("Localizable", "screen_notification_settings_sound_system_descent_ios") }
/// Electronic /// Electronic
@@ -3557,6 +3561,10 @@ internal nonisolated enum L10n {
} }
/// On the map /// On the map
internal static var screenStaticLocationSheetTitle: String { return L10n.tr("Localizable", "screen_static_location_sheet_title") } internal static var screenStaticLocationSheetTitle: String { return L10n.tr("Localizable", "screen_static_location_sheet_title") }
/// Plural format key: "%#@COUNT@"
internal static func screenTimelineActiveCallExtraJoinedCount(_ p1: Int) -> String {
return L10n.tr("Localizable", "screen_timeline_active_call_extra_joined_count", p1)
}
/// Message not sent because %1$@’s verified digital identity was reset. /// Message not sent because %1$@’s verified digital identity was reset.
internal static func screenTimelineItemMenuSendFailureChangedIdentity(_ p1: Any) -> String { internal static func screenTimelineItemMenuSendFailureChangedIdentity(_ p1: Any) -> String {
return L10n.tr("Localizable", "screen_timeline_item_menu_send_failure_changed_identity", String(describing: p1)) return L10n.tr("Localizable", "screen_timeline_item_menu_send_failure_changed_identity", String(describing: p1))
@@ -31,16 +31,19 @@ struct RoomCallControlsToolbar: ToolbarContent {
Button { Button {
onCallTap(true) onCallTap(true)
} label: { } label: {
Label(L10n.a11yStartVoiceCall, icon: \.voiceCallSolid) Label(L10n.actionVoiceCall, icon: \.voiceCallSolid)
} }
Button { Button {
onCallTap(false) onCallTap(false)
} label: { } label: {
Label(L10n.a11yStartVideoCall, icon: \.videoCallSolid) Label(L10n.actionVideoCall, icon: \.videoCallSolid)
} }
} label: { } label: {
CompoundIcon(\.voiceCallSolid) HStack(spacing: 2) {
CompoundIcon(\.voiceCallSolid)
CompoundIcon(\.chevronDown, size: .xSmall, relativeTo: .compound.bodyLG)
}
} }
.accessibilityLabel(L10n.a11yStartCall) .accessibilityLabel(L10n.a11yStartCall)
.disabled(!viewState.canJoinCall) .disabled(!viewState.canJoinCall)