Media gallery - part 1(#3588)

* Introduce a `MediaEventsTimelineFlowCoordinator`
* Update SDK API and architecture
* Add a feature flag, add translations
* Move the media events timeline presentation under the room flow coordinator state machine
* Rename `TimelineViewState.timelineViewState` of type `TimelineState` to `timelineState`
* Enabled SwiftLint's `trailing_closure` rule and fix the warnings.
This commit is contained in:
Stefan Ceriu
2024-12-06 16:58:14 +02:00
committed by GitHub
parent a9e4837b62
commit caaa89af62
83 changed files with 1247 additions and 279 deletions
@@ -51,6 +51,7 @@ protocol DeveloperOptionsProtocol: AnyObject {
var elementCallBaseURLOverride: URL? { get set }
var knockingEnabled: Bool { get set }
var createMediaCaptionsEnabled: Bool { get set }
var mediaBrowserEnabled: Bool { get set }
}
extension AppSettings: DeveloperOptionsProtocol { }
@@ -49,7 +49,7 @@ struct DeveloperOptionsScreen: View {
}
}
Section("Timeline") {
Section("Room") {
Toggle(isOn: $context.hideTimelineMedia) {
Text("Hide image & video previews")
}
@@ -57,6 +57,10 @@ struct DeveloperOptionsScreen: View {
Toggle(isOn: $context.createMediaCaptionsEnabled) {
Text("Allow creation of media captions")
}
Toggle(isOn: $context.mediaBrowserEnabled) {
Text("Enable the media browser")
}
}
Section("Join rules") {
@@ -123,7 +123,7 @@ class NotificationSettingsEditScreenViewModel: NotificationSettingsEditScreenVie
guard !Task.isCancelled else { return }
let filteredRoomsSummary = roomSummaryProvider.roomListPublisher.value.filter { summary in
roomsWithUserDefinedRules.contains(where: { summary.id == $0 })
roomsWithUserDefinedRules.contains { summary.id == $0 }
}
var roomsWithUserDefinedMode: [NotificationSettingsEditScreenRoom] = []
@@ -142,7 +142,7 @@ class NotificationSettingsEditScreenViewModel: NotificationSettingsEditScreenVie
}
// Sort the room list
roomsWithUserDefinedMode.sort(by: { $0.name.localizedCompare($1.name) == .orderedAscending })
roomsWithUserDefinedMode.sort { $0.name.localizedCompare($1.name) == .orderedAscending }
state.roomsWithUserDefinedMode = roomsWithUserDefinedMode
}