* Enable key-share-on-invite irrespective of feature flag
* Remove feature-flag dep: warning on starting chat with new people
* Remove feature-flag dep: invite from room member details
* Remove feature-flag dep: warning on new users in invite screen
* Remove feature-flag dep: from room details screen
* Remove feature-flag dep: starting chat from user profile screen
* Remove feature-flag dep: timeline info on forwarded keys
* Remove feature-flag dep: RoomScreenModel
* Remove `enableKeyShareOnInvite` from AppSettings
* Remove `enableKeyShareOnInvite` feature flag
* Remove outdated comments
* Update preview test room snapshots as their header now includes the history sharing icon
* 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
* 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
* Implement voice message variable playback speed
* Move playback speed string to Untranslated
https://github.com/element-hq/element-x-ios/pull/5121#discussion_r2822631371
* Address review feedback for voice message playback speed
- Persist voice message playback speed as an enum in AppSettings instead of storing an index.
- Update playback speed cycling to derive from enum allCases and safely fall back to `.default` if the stored value cannot be resolved.
- Apply runtime speed updates in AudioPlayer only when the player is in the `.playing` state.
- Keep MediaPlayerProviderTests formatting/indentation style intact while retaining mock playback speed setup.
- Regenerate preview snapshots for:
- PlaybackSpeedButton
- VoiceMessageRoomPlaybackView
- VoiceMessageRoomTimelineView
* Move VoiceMessagePlaybackSpeed outside AppSettings, remove speedRatio
* Stabilize PlaybackSpeedButton width
* Sync voice-message speed label
- Add voiceMessagePlaybackSpeed to TimelineViewState and bind it from appSettings.$voiceMessagePlaybackSpeed.
- Pass that timeline-level speed into VoiceMessageRoomPlaybackView and use it for PlaybackSpeedButton, so labels update consistently across items.
- Use @EnvironmentObject in VoiceMessageRoomTimelineContent so the view re-renders when timeline context state changes.
- In WaveformInteractionModifier, add .allowsHitTesting(showCursor) to the cursor interaction view so hidden pre-playback cursor hit area does not steal taps from the speed button.
* Rename PaginationState.timelineEndReached to PaginationState.endReached.
* Rename PaginationState to TimelinePaginationState.
Also renames PaginationStatus to PaginationState so that a TimelinePaginationState consists of the forward and backward pagination states.
* Add the empty state to SpaceScreen.
Only has 1 of the 2 buttons for now.
* 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
* 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).
* update the sdk, and updated the power levels APIs
Revert "update the sdk, and updated the power levels APIs"
This reverts commit d3b291003d2b6fd6346ef7e445af4970fda62348.
x
* pr suggestions
* 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.
* Use the newly RoomInfo published PowerLevels; update permissions at the same time as the room info and avoid unnecessary async calls.
* Introduce a RoomInfoProxyProtocol and associated mock and move away from mocked SDK RoomInfos
* Bump the SDK to v25.06.23
* Expose new non-throwing methods for checking one's own user permissions
* Fix the unit and preview tests (except the TimelineMediaPreviewDetails for which simplified snapshots were generated)
* Converge on one single implementation for computing a room's avatar.
* Fix more unit tests
* Fix the TimelineMediaPreviewDetailsView snapshot tests
This reverts commit 9b6c819e611ad2fa3de2c34a4a7aa556fc9faadd.
---------
Co-authored-by: Doug <douglase@element.io>
This patch introduces a new RoomPowerLevelsProxy and its associated mock and adopts newer Rust APIs to make working with user power levels and permissions easier.
* always open manage member sheet
* Update ElementX/Sources/Screens/ManageRoomMemberSheet/ManageRoomMemberSheetModels.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Update ElementX/Sources/Screens/ManageRoomMemberSheet/ManageRoomMemberSheetModels.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* pr suggestions and handled the buttons actions correctly
* Update ElementX/Sources/Screens/ManageRoomMemberSheet/View/ManageRoomMemberSheetView.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* fixed some compilation errors
* added some documentation
* using a struct instead of a protocol
* using arguments instead of a struct
---------
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Introduce a `TimelineItemThreadSummary` object to hold details about threads starting from that particular item
This patch introduces a thread summary object that will be available on main timeline messages that are the root for a given thread.
It currently provides the latest message content and sender for that thread but it will grow to provide info on the number of replies, unreads etc.
It also add a new UI component called `TimelineThreadSummaryView` that makes use of this data and is in turn used by the bubbled styler to render it in the timeline.
The rest of the PR is about refactoring on the `RoomTimelineItemFactory` so that replies and thread summaries use similar paths and builders.
* Add a feature flag for threads
* Address PR comments
* Converge on single implementation for message previews
* 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.