change: hiding timeline media has three options

This commit is contained in:
Mauro Romito
2025-04-09 17:03:47 +02:00
committed by Mauro
parent fe9cb2e2f0
commit bf875a23ce
5 changed files with 56 additions and 10 deletions
@@ -34,7 +34,7 @@ protocol AdvancedSettingsProtocol: AnyObject {
var viewSourceEnabled: Bool { get set }
var appAppearance: AppAppearance { get set }
var sharePresence: Bool { get set }
var hideTimelineMedia: Bool { get set }
var timelineMediaVisibility: TimelineMediaVisibility { get set }
var hideInviteAvatars: Bool { get set }
var optimizeMediaUploads: Bool { get set }
}
@@ -35,6 +35,7 @@ struct AdvancedSettingsScreen: View {
}
moderationAndSafetySection
timelineMediaSection
}
.compoundList()
.navigationTitle(L10n.commonAdvancedSettings)
@@ -43,8 +44,6 @@ struct AdvancedSettingsScreen: View {
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: {
@@ -52,6 +51,23 @@ struct AdvancedSettingsScreen: View {
.compoundListSectionHeader()
}
}
private var timelineMediaSection: some View {
Section {
ListRow(label: .plain(title: L10n.screenAdvancedSettingsShowMediaTimelineAlwaysShow),
kind: .selection(isSelected: context.timelineMediaVisibility == .always) { context.timelineMediaVisibility = .always })
ListRow(label: .plain(title: L10n.screenAdvancedSettingsShowMediaTimelinePrivateRooms),
kind: .selection(isSelected: context.timelineMediaVisibility == .privateOnly) { context.timelineMediaVisibility = .privateOnly })
ListRow(label: .plain(title: L10n.screenAdvancedSettingsShowMediaTimelineAlwaysHide),
kind: .selection(isSelected: context.timelineMediaVisibility == .never) { context.timelineMediaVisibility = .never })
} header: {
Text(L10n.screenAdvancedSettingsShowMediaTimelineTitle)
.compoundListSectionHeader()
} footer: {
Text(L10n.screenAdvancedSettingsShowMediaTimelineSubtitle)
.compoundListSectionFooter()
}
}
}
private extension AppAppearance {