updated test for hidden avatars in invites
This commit is contained in:
@@ -262,6 +262,8 @@
|
||||
"common_waiting_for_decryption_key" = "Waiting for this message";
|
||||
"common.copied_to_clipboard" = "Copied to clipboard";
|
||||
"common.do_not_show_this_again" = "Do not show this again";
|
||||
"common.empty_file" = "Empty file";
|
||||
"common.line_copied_to_clipboard" = "Line copied to clipboard";
|
||||
"common.open_source_licenses" = "Open source licenses";
|
||||
"common.pinned" = "Pinned";
|
||||
"common.send_to" = "Send to";
|
||||
@@ -381,6 +383,9 @@
|
||||
"screen_advanced_settings_element_call_base_url" = "Custom Element Call base URL";
|
||||
"screen_advanced_settings_element_call_base_url_description" = "Set a custom base URL for Element Call.";
|
||||
"screen_advanced_settings_element_call_base_url_validation_error" = "Invalid URL, please make sure you include the protocol (http/https) and the correct address.";
|
||||
"screen_advanced_settings_hide_invite_avatars_toggle_title" = "Hide avatars in room invite requests";
|
||||
"screen_advanced_settings_hide_timeline_media_toggle_title" = "Hide media previews in timeline";
|
||||
"screen_advanced_settings_moderation_and_safety_section_title" = "Moderation and Safety";
|
||||
"screen_bottom_sheet_create_dm_confirmation_button_title" = "Send invite";
|
||||
"screen_bottom_sheet_create_dm_message" = "Would you like to start a chat with %1$@?";
|
||||
"screen_bottom_sheet_create_dm_title" = "Send invite?";
|
||||
|
||||
@@ -262,6 +262,8 @@
|
||||
"common_waiting_for_decryption_key" = "Waiting for this message";
|
||||
"common.copied_to_clipboard" = "Copied to clipboard";
|
||||
"common.do_not_show_this_again" = "Do not show this again";
|
||||
"common.empty_file" = "Empty file";
|
||||
"common.line_copied_to_clipboard" = "Line copied to clipboard";
|
||||
"common.open_source_licenses" = "Open source licenses";
|
||||
"common.pinned" = "Pinned";
|
||||
"common.send_to" = "Send to";
|
||||
@@ -381,6 +383,9 @@
|
||||
"screen_advanced_settings_element_call_base_url" = "Custom Element Call base URL";
|
||||
"screen_advanced_settings_element_call_base_url_description" = "Set a custom base URL for Element Call.";
|
||||
"screen_advanced_settings_element_call_base_url_validation_error" = "Invalid URL, please make sure you include the protocol (http/https) and the correct address.";
|
||||
"screen_advanced_settings_hide_invite_avatars_toggle_title" = "Hide avatars in room invite requests";
|
||||
"screen_advanced_settings_hide_timeline_media_toggle_title" = "Hide media previews in timeline";
|
||||
"screen_advanced_settings_moderation_and_safety_section_title" = "Moderation and Safety";
|
||||
"screen_bottom_sheet_create_dm_confirmation_button_title" = "Send invite";
|
||||
"screen_bottom_sheet_create_dm_message" = "Would you like to start a chat with %1$@?";
|
||||
"screen_bottom_sheet_create_dm_title" = "Send invite?";
|
||||
|
||||
@@ -928,10 +928,16 @@ internal enum L10n {
|
||||
internal static var screenAdvancedSettingsElementCallBaseUrlDescription: String { return L10n.tr("Localizable", "screen_advanced_settings_element_call_base_url_description") }
|
||||
/// Invalid URL, please make sure you include the protocol (http/https) and the correct address.
|
||||
internal static var screenAdvancedSettingsElementCallBaseUrlValidationError: String { return L10n.tr("Localizable", "screen_advanced_settings_element_call_base_url_validation_error") }
|
||||
/// Hide avatars in room invite requests
|
||||
internal static var screenAdvancedSettingsHideInviteAvatarsToggleTitle: String { return L10n.tr("Localizable", "screen_advanced_settings_hide_invite_avatars_toggle_title") }
|
||||
/// Hide media previews in timeline
|
||||
internal static var screenAdvancedSettingsHideTimelineMediaToggleTitle: String { return L10n.tr("Localizable", "screen_advanced_settings_hide_timeline_media_toggle_title") }
|
||||
/// Upload photos and videos faster and reduce data usage
|
||||
internal static var screenAdvancedSettingsMediaCompressionDescription: String { return L10n.tr("Localizable", "screen_advanced_settings_media_compression_description") }
|
||||
/// Optimise media quality
|
||||
internal static var screenAdvancedSettingsMediaCompressionTitle: String { return L10n.tr("Localizable", "screen_advanced_settings_media_compression_title") }
|
||||
/// Moderation and Safety
|
||||
internal static var screenAdvancedSettingsModerationAndSafetySectionTitle: String { return L10n.tr("Localizable", "screen_advanced_settings_moderation_and_safety_section_title") }
|
||||
/// Disable the rich text editor to type Markdown manually.
|
||||
internal static var screenAdvancedSettingsRichTextEditorDescription: String { return L10n.tr("Localizable", "screen_advanced_settings_rich_text_editor_description") }
|
||||
/// Read receipts
|
||||
@@ -2879,6 +2885,10 @@ internal enum L10n {
|
||||
internal static var copiedToClipboard: String { return L10n.tr("Localizable", "common.copied_to_clipboard") }
|
||||
/// Do not show this again
|
||||
internal static var doNotShowThisAgain: String { return L10n.tr("Localizable", "common.do_not_show_this_again") }
|
||||
/// Empty file
|
||||
internal static var emptyFile: String { return L10n.tr("Localizable", "common.empty_file") }
|
||||
/// Line copied to clipboard
|
||||
internal static var lineCopiedToClipboard: String { return L10n.tr("Localizable", "common.line_copied_to_clipboard") }
|
||||
/// Open source licenses
|
||||
internal static var openSourceLicenses: String { return L10n.tr("Localizable", "common.open_source_licenses") }
|
||||
/// Pinned
|
||||
|
||||
@@ -15,9 +15,10 @@ struct HomeScreenInviteCell: View {
|
||||
|
||||
let room: HomeScreenRoom
|
||||
let context: HomeScreenViewModel.Context
|
||||
let hideInviteAvatars: Bool
|
||||
|
||||
private var avatar: RoomAvatar {
|
||||
context.viewState.hideInviteAvatars ? .room(id: room.id, name: room.name, avatarURL: nil) : room.avatar
|
||||
hideInviteAvatars ? .room(id: room.id, name: room.name, avatarURL: nil) : room.avatar
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
@@ -140,32 +141,32 @@ struct HomeScreenInviteCell: View {
|
||||
|
||||
struct HomeScreenInviteCell_Previews: PreviewProvider, TestablePreview {
|
||||
static var previews: some View {
|
||||
ScrollView {
|
||||
VStack(spacing: 0) {
|
||||
HomeScreenInviteCell(room: .dmInvite,
|
||||
context: viewModel().context)
|
||||
|
||||
HomeScreenInviteCell(room: .dmInvite,
|
||||
context: viewModel().context)
|
||||
|
||||
HomeScreenInviteCell(room: .roomInvite(),
|
||||
context: viewModel().context)
|
||||
|
||||
HomeScreenInviteCell(room: .roomInvite(),
|
||||
context: viewModel().context)
|
||||
|
||||
HomeScreenInviteCell(room: .roomInvite(alias: "#footest:somewhere.org", avatarURL: .mockMXCAvatar),
|
||||
context: viewModel().context)
|
||||
|
||||
HomeScreenInviteCell(room: .roomInvite(alias: "#footest:somewhere.org"),
|
||||
context: viewModel().context)
|
||||
.dynamicTypeSize(.accessibility1)
|
||||
.previewDisplayName("Aliased room (AX1)")
|
||||
}
|
||||
VStack(spacing: 0) {
|
||||
HomeScreenInviteCell(room: .dmInvite,
|
||||
context: viewModel().context, hideInviteAvatars: false)
|
||||
|
||||
HomeScreenInviteCell(room: .dmInvite,
|
||||
context: viewModel().context, hideInviteAvatars: false)
|
||||
|
||||
HomeScreenInviteCell(room: .roomInvite(),
|
||||
context: viewModel().context, hideInviteAvatars: false)
|
||||
|
||||
HomeScreenInviteCell(room: .roomInvite(),
|
||||
context: viewModel().context, hideInviteAvatars: false)
|
||||
|
||||
HomeScreenInviteCell(room: .roomInvite(alias: "#footest:somewhere.org", avatarURL: .mockMXCAvatar),
|
||||
context: viewModel().context, hideInviteAvatars: false)
|
||||
HomeScreenInviteCell(room: .roomInvite(alias: "#footest:somewhere.org", avatarURL: .mockMXCAvatar),
|
||||
context: viewModel(hideInviteAvatars: true).context, hideInviteAvatars: true)
|
||||
HomeScreenInviteCell(room: .roomInvite(alias: "#footest:somewhere.org"),
|
||||
context: viewModel().context, hideInviteAvatars: false)
|
||||
.dynamicTypeSize(.accessibility1)
|
||||
.previewDisplayName("Aliased room (AX1)")
|
||||
}
|
||||
.previewLayout(.sizeThatFits)
|
||||
}
|
||||
|
||||
static func viewModel() -> HomeScreenViewModel {
|
||||
static func viewModel(hideInviteAvatars: Bool = false) -> HomeScreenViewModel {
|
||||
let clientProxy = ClientProxyMock(.init())
|
||||
|
||||
let userSession = UserSessionMock(.init(clientProxy: clientProxy))
|
||||
|
||||
@@ -27,7 +27,7 @@ struct HomeScreenRoomList: View {
|
||||
HomeScreenRoomCell(room: room, context: context, isSelected: false)
|
||||
.redacted(reason: .placeholder)
|
||||
case .invite:
|
||||
HomeScreenInviteCell(room: room, context: context)
|
||||
HomeScreenInviteCell(room: room, context: context, hideInviteAvatars: context.viewState.hideInviteAvatars)
|
||||
case .knock:
|
||||
HomeScreenKnockedCell(room: room, context: context)
|
||||
case .room:
|
||||
|
||||
@@ -314,6 +314,8 @@ struct JoinRoomScreen_Previews: PreviewProvider, TestablePreview {
|
||||
static let inviteRequiredViewModel = makeViewModel(mode: .inviteRequired)
|
||||
static let invitedViewModel = makeViewModel(mode: .invited(isDM: false))
|
||||
static let invitedDMViewModel = makeViewModel(mode: .invited(isDM: true))
|
||||
static let invitedViewModelWithHiddenAvatars = makeViewModel(mode: .invited(isDM: false), hideInviteAvatars: true)
|
||||
static let invitedDMViewModelWithHiddenAvatars = makeViewModel(mode: .invited(isDM: true), hideInviteAvatars: true)
|
||||
static let knockableViewModel = makeViewModel(mode: .knockable)
|
||||
static let knockedViewModel = makeViewModel(mode: .knocked)
|
||||
static let bannedViewModel = makeViewModel(mode: .banned(sender: "Bob", reason: "Spamming"))
|
||||
@@ -326,6 +328,9 @@ struct JoinRoomScreen_Previews: PreviewProvider, TestablePreview {
|
||||
makePreview(viewModel: inviteRequiredViewModel, mode: .inviteRequired)
|
||||
makePreview(viewModel: invitedViewModel, mode: .invited(isDM: false))
|
||||
makePreview(viewModel: invitedDMViewModel, mode: .invited(isDM: true))
|
||||
makePreview(viewModel: invitedViewModelWithHiddenAvatars,
|
||||
mode: .invited(isDM: false),
|
||||
customPreviewName: "InvitedWithHiddenAvatars")
|
||||
makePreview(viewModel: knockableViewModel, mode: .knockable)
|
||||
makePreview(viewModel: knockedViewModel, mode: .knocked)
|
||||
makePreview(viewModel: bannedViewModel, mode: .banned(sender: nil, reason: nil))
|
||||
@@ -358,8 +363,10 @@ struct JoinRoomScreen_Previews: PreviewProvider, TestablePreview {
|
||||
}
|
||||
}
|
||||
|
||||
static func makeViewModel(mode: JoinRoomScreenMode) -> JoinRoomScreenViewModel {
|
||||
ServiceLocator.shared.settings.knockingEnabled = true
|
||||
static func makeViewModel(mode: JoinRoomScreenMode, hideInviteAvatars: Bool = false) -> JoinRoomScreenViewModel {
|
||||
let appSettings = AppSettings()
|
||||
appSettings.knockingEnabled = true
|
||||
appSettings.hideInviteAvatars = hideInviteAvatars
|
||||
|
||||
let clientProxy = ClientProxyMock(.init())
|
||||
|
||||
@@ -413,7 +420,7 @@ struct JoinRoomScreen_Previews: PreviewProvider, TestablePreview {
|
||||
|
||||
return JoinRoomScreenViewModel(roomID: "1",
|
||||
via: [],
|
||||
appSettings: ServiceLocator.shared.settings,
|
||||
appSettings: appSettings,
|
||||
clientProxy: clientProxy,
|
||||
mediaProvider: MediaProviderMock(configuration: .init()),
|
||||
userIndicatorController: ServiceLocator.shared.userIndicatorController)
|
||||
|
||||
@@ -32,21 +32,26 @@ struct AdvancedSettingsScreen: View {
|
||||
.onChange(of: context.optimizeMediaUploads) {
|
||||
context.send(viewAction: .optimizeMediaUploadsChanged)
|
||||
}
|
||||
|
||||
// TODO: Waiting for designs and copies
|
||||
ListRow(label: .plain(title: "hide avatars",
|
||||
description: ""),
|
||||
kind: .toggle($context.hideInviteAvatars))
|
||||
|
||||
ListRow(label: .plain(title: "hide media",
|
||||
description: ""),
|
||||
kind: .toggle($context.hideTimelineMedia))
|
||||
}
|
||||
|
||||
moderationAndSafetySection
|
||||
}
|
||||
.compoundList()
|
||||
.navigationTitle(L10n.commonAdvancedSettings)
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
}
|
||||
|
||||
private var moderationAndSafetySection: some View {
|
||||
Section {
|
||||
ListRow(label: .plain(title: L10n.screenAdvancedSettingsHideTimelineMediaToggleTitle),
|
||||
kind: .toggle($context.hideTimelineMedia))
|
||||
ListRow(label: .plain(title: L10n.screenAdvancedSettingsHideInviteAvatarsToggleTitle),
|
||||
kind: .toggle($context.hideInviteAvatars))
|
||||
} header: {
|
||||
Text(L10n.screenAdvancedSettingsModerationAndSafetySectionTitle)
|
||||
.compoundListSectionHeader()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private extension AppAppearance {
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7dbc230120926d73fde55e42c43e36ef868bd893e600e749c66f979daa3f5659
|
||||
size 139055
|
||||
oid sha256:56abc8e0527cef938e91400dcee94e42e175c6a16c004623ab449fbe73c6f128
|
||||
size 164157
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:57b1efef6213243fdf44df0ff92c086e5997c42df2ad6065cd2d31c41df84543
|
||||
size 159487
|
||||
oid sha256:f43d6fd518a5e05fddc64d8a8202a156cb7281a75df14f5a34879af7ab8b1471
|
||||
size 192479
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a505289fc465bfdb3a40660c5fff6828c528574669cd4967fd9c63ce810043f8
|
||||
size 89637
|
||||
oid sha256:757b7bee819f1553d1470763a003da399c368ea722b29aef090b9bbf4095fb8f
|
||||
size 114474
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8aeb3ce65022cdfc26f7f4c87166cb58b76cf48645d4c7069d8c4fe12577788c
|
||||
size 126940
|
||||
oid sha256:b2bc7dc5754c2802ac9f7c2ea28e43cc9c50ccd2ddb4ff3c051437225707e604
|
||||
size 163544
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:af04ac75b6cbaac778ddde75a61a13740f3f20e6b14d228d0008e63fefe894d7
|
||||
size 269741
|
||||
oid sha256:3d675d9e609a6c653409fd340cb93307ea2a06d1f3603d4bac8cd5f48b47db7b
|
||||
size 312144
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:da6c66849638864f495f9c9fbeca4ed00a1135057a4fce2969c1f712a7b0f555
|
||||
size 285733
|
||||
oid sha256:3e55fbb94a46655b7ca88aef7dd71c88447de3383c695b5b35169c3480045a7d
|
||||
size 331760
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:eb23902ceb5e67de3d7ab7964ac5b3212f112e93ff36ea1e3f689e2b721cfb16
|
||||
size 185380
|
||||
oid sha256:4f75c56f0788459cf6e26aed0c3cab9f05265b27e5e3a751221bb0c70c6e04ab
|
||||
size 251916
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ff6ed21c446ef1f2697c5f857ca96892be1852d7fcbfdc961cef1e20181370fc
|
||||
size 204198
|
||||
oid sha256:5c434f5efdb18dd5cb3158342736a076286583e05dc9c6348e9256573a1c03a2
|
||||
size 333485
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0a7b43824b56503b7e74a50ac850bb7202fbf96aea3d21c4e0d0ba64ed2ff5f7
|
||||
size 142282
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a5018f37bf0d6022a7a0138914d0ccfd533862bb4649f5c7af401996baba4509
|
||||
size 145718
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2450ea4e8db4a826e2f37384c1e5885ecdcb45ed937f6bbb6fe198514caf5b77
|
||||
size 90370
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:384e8ddcd330416b356690e856ed5ae6ff917654f927bbaf7e17079297e87347
|
||||
size 100437
|
||||
Reference in New Issue
Block a user