* Create AnalyticsServiceProtocol and conform AnalyticsService
* Replace AnalyticsService properties and arguments with AnalyticsServiceProtocol
* Inline AnalyticsServiceMock replacing old mock
* handle more complex AnalyticsServiceMock callsites
* move documentation from AnalyticsService to AnalyticsServiceProtocol
* Implemented opening the LLS on our own user when tapping on the banner
* added a test for moving the map as soon as the first update arrives.
* updated preview tests
* Live Location Sharing Banner
# Conflicts:
# ElementX.xcodeproj/project.pbxproj
* updated the top banner modifier and the top banner views
# Conflicts:
# ElementX/Resources/Localizations/en-US.lproj/Localizable.strings
# ElementX/Resources/Localizations/en.lproj/Localizable.strings
* improved the stopping function from the timeline item
* stop live location sharing before starting a new one.
* added some tests for LiveLocationManager
* pr suggestions
* feat: Start voice call from DM
* rename voiceCall:bool to isVoiceCall
* review: Fix a typo
* review: use one displayCall(bool) instead of 2 actions
* review: Add a new specific preview for DM calls
* combine startCall and startVoiceCall in single enum with isVoiceCall
* review: add isVoiceCall to presentCallScreen action
* review: Use proper a11y for voice vs video
* add voice/video options to UserProfile Screen
* fixup: move config params to the roomInfo object
* review: Revert changes on preview as the toolbar cannot be snapshot'd
* review: Extract call controls in specific file
* oups: Add voice call option in room details screen
* Update room details screenshots
* Update user profile screenshots
* Update room member details screenshots
* fixup: remove dead code
* refactored the static location screen to the location sharing screen
# Conflicts:
# UnitTests/Sources/LocationSharingScreenViewModelTests.swift
# Conflicts:
# ElementX.xcodeproj/project.pbxproj
* implemented a custom pin with an overlayable view
* implemented the render of the user when the location is sender instead of the pin type
* removed description and body they are not used at all.
* reimplemented single button for sharing this or user location + implemented an experimental way to update annotations
* removed unnecessary @Suite description
* implemented a way to display the alert on top of the sheet and added a spinner to the center user location button
* fixed alerts strings
* fixed a failing test
* improved preview tests
* implemented focussing a threaded event through the banner tap
* view in timeline implementation for threaded events
* added a test and improved the existing one
* pr suggestions
* put the logic for fetching the event in the view models
* Use the SDK's offline state to drive the offline indicator.
* Only use network reachability for restarting the sync loop, use the homeserver reachability for requests.
* Add a separate indicator to distinguish when the server is unreachable but the device is online.
* presenting media actions from the media timeline
* implemented view in timeline and fixed an issue that made dark mode being when trying to delete the file
* pr suggestions
Without them, following the link fails as previously the server could use the server name from the room ID (which in and of itself seems somewhat error prone).
* Allow MediaPickerScreen users to select the media selection mode (single or multiple)
* Fix cancellation
* Add support for multiple media URLs on the MediaUploadPreviewScreen.
* Support processing more URLs on the `MediaUploadingPreprocessor` and sending more on the `MediaUploadPreviewScreen`
* Add feature flag for `multipleAttachmentUploadEnabled`
* Add a label showing the current preview item index in the MediaUploadPreviewScreen
* Add support for dragging and dropping or pasting multiple items at the same time.
* Support sharing more than one file through the share extension.
* Limit the number of items that can be shared in one go to 5.
* Fix unit tests
* Fix incorrect fatal error when dealing with single selection media pickers.
* Document the `multipleAttachmentUploadEnabled` usage in the context of the MediaPicker.
* Use a task group for processing selected media in the photo library picker.
* Use a task group for processing multiple selected media in the MediaUploadingPreprocessor
* Switch the maximum number of items that can be shared to 10.
* Allow multiple items to be pasted at the same time.
This patch add the `threadRootEventID` as a parameter to media sending functions and forwards the timeline thread root between various application states to the place where its needed.
The 2 missing items are Locations and Polls which currently don't have any support on the Rust side for being sent within threads. That will come in a separate PR.
* Make the map tiler key optional.
* Make the bug report URL optional.
* Make the sentry URL optional.
* Make the analytics configuration optional and handle consent taking Sentry into account.
* Stop prompting users to report crashes when Sentry is disabled.
* added a way to render the room and the message
pills, but is WIP
* permalinks now get converted into pills!
* fixed an issue where room address mentions
were not adding a URL properly but a string
* updated tests
* c
* Revert "c"
This reverts commit 5c80252fa23dba7e4d44f2a07fbf1e9500e37c82.
* updated tests
* more tests
* created APIs to get a specific RoomSummary
given the id or the alias
* small mention builder improvement
* pr suggestions
* Use the new TimelineMediaPreview modifier on the room and pinned timeline screens.
* Use the same presentation logic for all timeline media previews.
* Fix a bug with the detection of the timeline end.
* Send pagination requests from the media preview screen.
* Add SwiftLint to the Danger workflow (it is no longer installed on the runner).
* Put SwiftLint back on all of the GitHub runners too.
* Set the function_parameter_count lint rule to 10.
* Make sure to clean-up any previews when the coordinator is done.
* Handle the viewInRoomTimeline action more appropriately.
* 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.
* feat(crypto): Warn and block sending on verification violation
* fixup: Fix ComposerToolbar previews
* fixup! add ComposerToolBarViewModelTests for canSend
* add new preview tests for verification violations
* Use `deferFulfillment`s in the unit tests.
---------
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
* 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.