-
Notifications
You must be signed in to change notification settings - Fork 114
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Media gallery #3588
Media gallery #3588
Conversation
…rs and various other tweaks
…inator state machine.
…to `timelineState`
Generated by 🚫 Danger Swift against ad3f2c7 |
❌ 2 Tests Failed:
View the full list of 2 ❄️ flaky tests
To view more test analytics, go to the Test Analytics Dashboard |
ElementX/Sources/FlowCoordinators/MediaEventsTimelineFlowCoordinator.swift
Show resolved
Hide resolved
ElementX/Sources/Screens/MediaEventsTimelineScreen/MediaEventsTimelineScreenCoordinator.swift
Outdated
Show resolved
Hide resolved
ElementX/Sources/Screens/MediaEventsTimelineScreen/View/MediaEventsTimelineScreen.swift
Show resolved
Hide resolved
ElementX/Sources/Screens/MediaEventsTimelineScreen/MediaEventsTimelineScreenViewModel.swift
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice, I like the composition of view models like that, seems reasonable that we should do the same and pass the timeline view model into the room screen view model too at some point. 😎
ElementX/Sources/Screens/RoomDetailsScreen/View/RoomDetailsScreen.swift
Outdated
Show resolved
Hide resolved
ElementX/Sources/Services/Timeline/TimelineController/RoomTimelineControllerProtocol.swift
Show resolved
Hide resolved
ElementX/Sources/Screens/MediaEventsTimelineScreen/MediaEventsTimelineScreenViewModel.swift
Outdated
Show resolved
Hide resolved
ElementX/Sources/Screens/MediaEventsTimelineScreen/MediaEventsTimelineScreenViewModel.swift
Outdated
Show resolved
Hide resolved
ElementX/Sources/Screens/MediaEventsTimelineScreen/View/MediaEventsTimelineScreen.swift
Show resolved
Hide resolved
ElementX/Sources/Screens/MediaEventsTimelineScreen/View/MediaEventsTimelineScreen.swift
Outdated
Show resolved
Hide resolved
ElementX/Sources/Screens/MediaEventsTimelineScreen/View/MediaEventsTimelineScreen.swift
Show resolved
Hide resolved
Oh yeah, we should probably figure out if that ordering makes sense too, but that doesn't need to block this PR. |
Quality Gate passedIssues Measures |
This PR contains the initial work done for the new Media Gallery feature which is very much still a work in progress. We've decided to merge it early under a feature flag in order to avoid later conflicts.
This screen is following a novel architecture where 2 different
TimelineViewModel
s are composed together under theMediaEventsTimelineScreenViewModel
to provide the 2 separate sections. They're powered by a new RustSDK API that allows filtering room messages based on their type (introduced in 4365)We're doing this in order to reuse most of the timeline logic we already had in play for the room screen and pinned events timeline. The UI on the other hand is completely custom and only makes use of the
TimelineViewState
s and related models.I haven't bothered with cleaning up the commits as I intend to squash all of it on merge and they still might prove useful to see the evolution.
What's not working:
Simulator.Screen.Recording.-.iPhone.16.-.2024-12-05.at.15.47.52.mp4