* 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
* 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.
* 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.
* provider can now check the current session
* More testable code
* created the test condition
* it works but not always not sure why, need to dig deeper
* sadly we need to use textkit 1 to solve this issue
* removed developer option screen test
* this experimental solution kinda works but I need a way to pill recomputation is weird
* format
* display improvement
* better and faster solution
* pilished the code
* better coloring
* swift format
* just need to solve the caching issue
* fix caching issue
* tests done!
* changelog
* pr comments addressed
* all pr comments addressed
* docs
* line lenght
* updated tests and fixed a parsing permalink issue
* MentionBuilder
* pr comments
* swiftformat
* code blocks should not have links
* Update ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Update ElementX/Sources/Services/Client/ClientProxy.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Update UnitTests/Sources/AttributedStringBuilderTests.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Update ElementX/Sources/UITests/UITestsAppCoordinator.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Update ElementX/Sources/Other/Pills/PillAttachmentViewProvider.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Update ElementX/Sources/Other/Pills/MentionBuilder.swift
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* pr comments
* swiftformat
---------
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* MessageText component
* swiftformat
* fix swift format being a bit crazy
* link tapping support
* new test + fix for font + dynamic support
* fix for blockquote issue.
* code improvement
* small code improvement and fixed tests not working due to weird swiftformat behaviour
* fix boost emoji
* updated swiftformat
* better testing
* UI tests updated
* fixing the issue with the cache overriding the size category changes
* whitespaces
* appropriate color + better info plist parsing
* cleaned the code and fixed links
* tapping link fixes
* list bug fix
* ui tests regenerated
Squashed commits:
[d64bb3bb] Stop using the ServiceLocator directly in the ScreenTrackerViewModifier
[37c46ab9] Rename Analytics to AnalyticsService
[8852a371] #920 - Cleanup ServiceLocator usages
* Cleanup how we use message timeline items in preparation for rich reply rendering
* Expose reply details up to the UI level
* Render replies in the timeline (textual for now). Remove now unused AttributedStringBuilderComponent isReply flag.
* Move reply detail loading to when the item appears instead of when it's created.
* Fix unit tests
* Fetch event details also when the reply details are in the error state
* Tweaks following code review
* Localise emote bodies
* Fix replies not loading sometimes, use the current event identifier instead of the one being replied to
* Pass full attributed string to TimelineItems and let the UI level handle blockquote coalescing
* Add permalink detection and attribute embedding within the attributed string
- Decryption banner on the timeline
- Bubble colours
- Background insets
- Multiline composer corner radius
- Read marker
- GIF indicator
- Reactions shape
- Use RoomTimelineViewLabelStyle everywhere possible
- Only set a line limit on reply quotes, allow all the lines for regular quotes.
- Message label icons
- Yes/No button casing
- Make sender profiles immutable.
- Enable copy link and invite buttons.
- Fix layout loop detecting multiline composer text.
- Add animation to the encryption banner.
* removing unused event id link
* changelog
* Revert "removing unused event id link"
This reverts commit aacd1124498674662123d5598604ef8bfcdfe02e.
* commented the event id add link code
* better changelog
* commenting a tes that is related to the use of event id links which we don't handle for now
* Fixes#276 - Rebuilt room timeline:
- Removed the need for the ListCollectionViewAdapter
- Rewrote the TimelineItemList without using introspection
- Added ReversedScrollView for laying out items at the bottom/trailing
- Rewrote TimelineProvider diffing through CollectionDifference (similar to the RoomSummaryProvider)
- Added back `scrollDismissesKeyboard` behavior
- Various other tweaks and fixes
- Fixed various warnings:
- removed async AttributedStringBuilder as AttributedString is non-sendable, made the RoomTimelineItemFactory synchronous
- removed unused virtual timeline items
- removed unused isOutgoing property from the FormattedBodyText
* Make TimelineItemContextMenuActions indentifiable and specify contextMenu identifiers
* Bump the matrix-rust-components-swift to v1.0.16-alpha
* Add changes file and changelog contribution guide
* Fix attributed string builder unit tests
* Fix Timeline on Xcode 14/iOS 16
Raise requirement to iOS 16+
Reduce pagination jumping.
Sonarcloud fixes.
Fix verification test.
Adopt if let optional { syntax.
* Remove unused ScrollViewReader
The ScrollViewReader didn't appear to change the behaviour.
* Fix warnings on Run Scripts.
Run script build phase 'SwiftLint' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase.
* moved NSRegularExpression outside of the AttributedString builder into the MatrixEntityRegex
* fixed eventId v3 regex
* added permalink builders for users, room identifiers and aliases, and events
* added timeline item permalink contextual menu actions and error alerts
* added an app wide ServiceLocator and moved the top level userIndicatorPresenter to it.
* added URL constructor that takes a StaticString and returns an non-optional
* Include Unit and UI tests in the swiftlint search paths