mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
change: hiding timeline media has three options
This commit is contained in:
@@ -88,13 +88,21 @@ class TimelineViewModel: TimelineViewModelType, TimelineViewModelProtocol {
|
||||
timelineControllerFactory: timelineControllerFactory,
|
||||
clientProxy: clientProxy)
|
||||
|
||||
let hideTimelineMedia = switch appSettings.timelineMediaVisibility {
|
||||
case .always:
|
||||
false
|
||||
case .privateOnly:
|
||||
roomProxy.infoPublisher.value.isPublic
|
||||
case .never:
|
||||
true
|
||||
}
|
||||
super.init(initialViewState: TimelineViewState(timelineKind: timelineController.timelineKind,
|
||||
roomID: roomProxy.id,
|
||||
isDirectOneToOneRoom: roomProxy.isDirectOneToOneRoom,
|
||||
timelineState: TimelineState(focussedEvent: focussedEventID.map { .init(eventID: $0, appearance: .immediate) }),
|
||||
ownUserID: roomProxy.ownUserID,
|
||||
isViewSourceEnabled: appSettings.viewSourceEnabled,
|
||||
hideTimelineMedia: appSettings.hideTimelineMedia,
|
||||
hideTimelineMedia: hideTimelineMedia,
|
||||
pinnedEventIDs: roomProxy.infoPublisher.value.pinnedEventIDs,
|
||||
emojiProvider: emojiProvider,
|
||||
mapTilerConfiguration: appSettings.mapTilerConfiguration,
|
||||
@@ -519,7 +527,21 @@ class TimelineViewModel: TimelineViewModelType, TimelineViewModelProtocol {
|
||||
.weakAssign(to: \.state.isViewSourceEnabled, on: self)
|
||||
.store(in: &cancellables)
|
||||
|
||||
appSettings.$hideTimelineMedia
|
||||
appSettings.$timelineMediaVisibility
|
||||
.combineLatest(roomProxy.infoPublisher
|
||||
.map(\.isPublic)
|
||||
.removeDuplicates()
|
||||
.receive(on: DispatchQueue.main))
|
||||
.map { timelineMediaVisibility, isPublic in
|
||||
switch timelineMediaVisibility {
|
||||
case .always:
|
||||
false
|
||||
case .privateOnly:
|
||||
isPublic
|
||||
case .never:
|
||||
true
|
||||
}
|
||||
}
|
||||
.weakAssign(to: \.state.hideTimelineMedia, on: self)
|
||||
.store(in: &cancellables)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user