* Add the timeline controller factory to the timeline view model.
In preparation for building a timeline to swipe through media in QuickLook.
* Refactor RoomTimelineControllerFactory.
* Refactor RoomTimelineController.
* Refactor RoomTimelineProvider.
* Overlay a progress indicator for downloads instead of using a toast indicator.
* Update the SDK.
* Remove the feature flag for the media browser.
* Remove the media captions feature flag too.
* Add unit test cases for download failure and swiping between items.
* Snapshots (with the media browser visible in the screen).
* Embed the media preview quick look inside a full screen cover
With a zoom transition on iOS 18.
* Use a the representable coordinator properly.
* Fix a bug with the toolbar appearance.
* Format
* Try prevent the zoom transition being upside down.
* Fix the snapshot test configuration.
* WIP RequestToJoin struct
* implemented the logic to display the cells
* knock request banner accept flow
* mark all knocks as seen implemented
* details logic
* implemented accept, decline and ban in the list
* added a loader and modified the stacked view
of the banner
* pr suggestions
* updated naming and loading strings
* added the initial loading state
improved code and the tests
* updated a string that has changed
* code improvement
* tests for the room screen view model
* room details tests
and improved the knock requests tests for the room screen
* knock requests list tests
* added error state alerts with retry
* struct has been renamed on the sdk
so I renamed it also on the app side
* update SDK
* 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.
* Use native video call picture in picture!
* Handle isSupported, isPossible and web view errors.
* Use new canEnterPip method.
* Hide a room's Call button when already joined to the call.
* Tweak feature flag description.
* PR comments.
* Add the networkMonitor to the NSE and delete the old MockMediaLoader
* Generate a MediaLoaderMock through AutoMockable and use it in the MediaProviderTests
* Implement an ImageProvider mechanism that automatically tries reloading images when connectivity is established again and use it for LoadableImages
* Merge the ImageProvider protocol back into the MediaProvider
* Address PR review comments
* Provide a default sdk client request configuration
* Address tasks not automatically cancelling themselves when views get deallocated
* Refactor the timeline item menu action provider.
- Move it into its own struct.
- Use an item, not an ID so it doesn't randomly change.
- Move permissions into the room screen view model.
* Use the stable ID when redacting/editing/forwarding a message.
Just like we do when fetching the item in the actions menu.
* Move Sentry setup outside of the BugReportService
* Setup Sentry SwiftUI tracing for the homeScreen and roomScreen roots
* Setup Sentry instrumentation on top of the existing Signposter
* Various tweaks
* Fixes#2808 - Switch the message sending failure options from a dialog to an alert
- this prevents it from showing up as a popup on the room list on an iPad
- it used to be set on the timeline and not on the timeline item because of our use of a UITableView
* Cleanup room screen action names
* Seemlesly switch for the RichTextEditor based message composer to the plain one depending on whether formatting options are enabled or not.
* Address PR comments
* Fixes#2803 - Add extra padding at the bottom of the composer suggestions list
* Update preview test snapshots
* Update UI test snapshots
* Fix unbalanced padding.
* Animate the scroll to an event when it is already loaded.
* Perform the timeline clearance immediately before replacing the items.
Hides the empty timeline that was briefly shown.
* Make switching timeline more resilient.
* Missing changelog.
* Parse bare room aliases as permalinks.
Update the SDK.
* Fix tapping the same permalink twice.
Add a test.
Don't clear the focussed item when reaching the bottom of the timeline.
* Make sure sending a message returns to live.
- combine multiple services to handle app wide requests
- remove direct UIApplication access from everywhere
- fix#2703 by combining UIApplication.applicationState with the WindowManager's main window appearance
- leave the door open for more app control in the future (especiall for the mac)