414 Commits

Author SHA1 Message Date
Stefan Ceriu
b238e3efdd Bump the RustSDK to v1.0.69-alpha 2023-05-26 15:01:17 +03:00
Alfonso Grillo
bf2102e5d1
Add room's update publisher (#952)
* Add room update publisher

* Cleanup

* Update room’s title

* Add refresh logic in RoomDetailsScreenViewModel

* Fix UTs

* Add UT

* Update timeline listener in RoomProxy

* Fix caching in LoadableAvatarImage

* Cleanup

* Update RoomProxy api

* Inject room proxy in RoomScreenViewModel

* Cleanup

* Fix UTs
2023-05-25 10:42:58 +00:00
Mauro
c59921103d
Inlined Timestamp in bubble style for messages that have a bubble (#947)
* web-like solution

* not super polished but working implementation

* polishing the spacing and sizes

* removing unused code

* code improvements

* adding a test case in the preview for RTL

* addressing some PR comments

* added some tests and polished the code

* better naming

* code improvement

* RTL fix

* Revert "RTL fix"

This reverts commit 14e4468a5358769daa57891f4991e9e32da1c985.

* better RTL fix

* updated UI tests

* separated some files

* addressed some PR comments

* some more tests
2023-05-25 10:13:45 +00:00
Stefan Ceriu
9c1c51645f Bump the SDK to v1.0.68-alpha 2023-05-24 16:07:23 +03:00
Alfonso Grillo
89ac0c290b
Update SDK to 1.0.67-alpha (#946) 2023-05-23 14:29:42 +00:00
Element CI
a78108b3c0 Prepare next release 2023-05-23 05:00:38 -07:00
Stefan Ceriu
d38cf8f989 Bump the RustSDK to v1.0.66-alpha 2023-05-22 22:25:33 +03:00
Flescio
beb61d109f
Flescio/create room action (#925)
* fix invites users screen

* add create room action

* add a task runner with timeout, add fetch room summary after creation

* rename Runner, add Unit Test, separate UserProfile form client proxy

* change to all room summary publisher
2023-05-22 15:27:39 +00:00
Alfonso Grillo
d15ed1f6a3
Add share link in start chat flow (#926) 2023-05-19 15:34:35 +00:00
Element CI
03dece7bf4 Prepare next release 2023-05-18 05:11:51 -07:00
Stefan Ceriu
ce36be4e8b Adopt latest rust side sliding sync fixes. Relates to https://github.com/matrix-org/matrix-rust-sdk/pull/1936 2023-05-17 16:20:13 +03:00
Flavio Alescio
1b4ef0b35c change on proj 2023-05-16 18:23:23 +02:00
Stefan Ceriu
f4bbe33e62 Fix incorrect dependency versions in the new project file 2023-05-16 18:12:51 +03:00
Stefan Ceriu
530440eb39 Resurrect the Xcode project file 2023-05-16 18:00:40 +03:00
Stefan Ceriu
7ab64d4cb4
Project file removal (#569)
* Deleted project file

* Add back SPM Package.resolved + .gitignore

* Generate project file on release builds

* Converge on single CI setup scripts within `ci_scripts/ci_common.sh`

* Fix unit tests

* Use new `ci_common/setup_github_actions_environment` setup script on all workflows

* Move lfs validation check to the pre-commit hooks. Remove validate-lfs github actions workflow

* Fix integration tests workflow

* Tweaks following code review
2023-02-13 12:53:01 +00:00
Stefan Ceriu
8932e83929 Fixes #464 - Incorrect regex usage on extended grapheme clusters 2023-02-10 09:50:52 +02:00
Stefan Ceriu
a02b461c37 Switch to weakAssign for all AppSettings listeners 2023-02-09 11:41:14 +02:00
Stefan Ceriu
98cfc2c9fb Fixes #367 - Refactor AppSettings usage patterns 2023-02-09 11:41:14 +02:00
Mauro
e5522e7753
Added a progress tracker to the bug report view (#513)
* created a progress tracker class and passed it in the user notification to be observed by the progress view

* improved the publishing by dispatching it on RunLoop.main

* bug report struct created and progress tracker class moved into the Other folder

* some swiftlint adjustments

* fixed tests

* fixed another test BugReportServiceTests

* changelog 495 - change

* added a mock preview

* fixing some linting suggestions

* no need to use KVO, achieve the same result using a publisher

* some refactors to address PR comments

* some code improvements

* fixed the issue that prevented the avatar of the room to be displayed in the mocks, and updated the tests

* Revert "fixed the issue that prevented the avatar of the room to be displayed in the mocks, and updated the tests"

This reverts commit 113d6091d91a3aac1f9a59ff6c5e07610ed59859.
2023-02-08 21:52:31 +01:00
Doug
4d87701ae9
Automatic discovery of the sliding sync proxy. (#535)
* Automatic discovery of the sliding sync proxy.

* Handle homeserver detection from a MXID.

* Update sliding sync info link, SDK and bump patch.

Add a migration on the new version. The change in restoration token format requires the user to sign in again, but this will fail with the existing device ID.
2023-02-08 19:07:02 +00:00
Doug
993ecfb46d
Add shimmer effect to room skeletons. (#544) 2023-02-07 13:19:57 +00:00
Stefan Ceriu
f8e6179933
Add permalink detection and custom attributed string attributes (#536)
* Pass full attributed string to TimelineItems and let the UI level handle blockquote coalescing
* Add permalink detection and attribute embedding within the attributed string
2023-02-06 14:59:32 +00:00
Element CI
027de707fa Prepare next release 2023-02-03 08:35:05 -08:00
Element CI
3015896d46 Prepare next release 2023-02-03 06:21:42 -08:00
Stefan Ceriu
183cc88114
Load member profiles through the timeline (#522) 2023-02-03 10:12:36 +00:00
Doug
f6629e0d6e
Hardcode the sliding sync proxy. (#502)
* Add support for migrating between versions.
* Rename InfoPlistReader property.
* Bump SDK version.
2023-01-31 17:48:24 +00:00
Doug
4f8cc08989
Handle API changes from Rust. (#506)
There are some bad assumptions about profile changes in here.

* Remove assumption FIXME's

Profile changes that come from other members will be state event of None.

* Bump SDK version.
2023-01-31 13:28:28 +00:00
Gil Eluard
e2e69534e3
430 - Design review for first public TestFlight Part2 (#496)
* 430 - Design review for first public TestFlight Part2

---------

Co-authored-by: Doug <douglase@element.io>
2023-01-30 11:51:07 +00:00
Element CI
d44ce9f44c Prepare next release 2023-01-26 07:52:56 -08:00
Gil Eluard
eeb69d1971
Design review for first public TestFlight (#492)
* 430 - Design review for first public TestFlight
2023-01-26 15:32:39 +00:00
Stefan Ceriu
bd4c0b72cb
Media loading flow changes (#483)
* Use an imageProvider directly from the view in the home screen

* Add support for media request coalescing

* Rename MediaProxy to MediaLoader

* Add new image loading mechanism to the room details screen avatar.

* Use the `SettingsScreen` prefix for all settings screen related components

* Add new image loading mechanism to the room header

* Add new image loading mechanism to the room member details screen

* Introduce a LoadableImage SwiftUI view that will automatically handle image loading

* Adopt the new LoadableImage where possible

* Fix LoadableImage not using/storing loaded images properly

* Simplify media loader enqueueing

* Made LodableImage load content after mediaSource updates. Adopt it on the home and settings screens

* Introduce a LoadableAvatarImage component and reuse it throughout the app

* Small logging tweaks, made some LoadableImage properties private

* Fix redacted skeletons avatar background color

* Fix placeholder avatars changing when backgrounding the app

* PR comments.

- Trim the @ sign off of mxid placeholders.
- Only expose AvatarSize on the avatar image, use CGSize elsewhere.

Co-authored-by: Doug <douglase@element.io>
2023-01-25 17:45:01 +00:00
Doug
3a74f13097
Add support for aliases to RoomProxy and bump the SDK. (#486) 2023-01-24 17:01:00 +00:00
Doug
b8e2d6f823
Show the date on a room when the last message is older than today. (#484)
* Format the last message date correctly.
* Update room cell layout - fixes an issue where the longer the date got the smaller the last message width was.
2023-01-24 11:02:51 +00:00
Element CI
e6d0cbec50 Prepare next release 2023-01-20 07:27:02 -08:00
Stefan Ceriu
ae8009d040
Various performance tweaks (#474)
* Store and reuse room list placeholder avatars and last messages

* Cache and reuse HomeScreenRooms

* Reduce RoomSummaryProvider diff collection time

* Promote more logs to info

* Slighty tweak RustTracing to make it easier to configure

* Move TimelineProvider and RoomTimelineController item processing to background queues

* Prevent the timeline from stopping an ogoing decelerating scroll when starting backpaginating
2023-01-20 14:40:23 +00:00
Doug
70920550e7 Tidy up to #473 2023-01-20 14:09:59 +00:00
Doug
f05fa630c1
Render state items in the timeline and as the last message on the home screen. (#473)
* State events in the timeline WIP
* Implement membership change strings.
* Add other state event types and use in RoomSummaryProvider.

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2023-01-20 13:37:39 +00:00
Stefan Ceriu
8f3f83167b
Timeline item sender profiles (#463)
* Adopt timeline item sender profiles for displaying user avatars and display names
* Prevent images from automatically being evicted from the in-memory cache when entering background
* Get rid of all the `urlString: String`s and start using proper URLs
* Add back manual display name loading as the sender profiles aren't working properly yet
* Implement a sender profile.
* Bump the RustSDK to v1.0.32-alpha

Co-authored-by: Doug <douglase@element.io>
2023-01-18 14:29:44 +00:00
Doug
f7ddaacb64
Break out DesignKit into its own sub-package (#459)
We'll be using https://github.com/vector-im/compound-ios eventually so this tidies up the Xcode project dependencies in the mean time.
2023-01-17 12:26:07 +00:00
Doug
c8937505d7
Improvements to logging (#457)
* Use `.info` logging in most places.
* Remove old objc logging support.
* Fix table view controller.
* Make sure timeline item content isn't logged.
* Add tests.
2023-01-17 09:28:01 +00:00
Stefan Ceriu
4b56e4af73
Room member details cleanup (#452)
* Fixes #421 - Stop loading room members twice for displaying the members screen
* Rename RoomMembers to RoomMemberDetails throughout
* Add changelog
2023-01-17 09:31:53 +02:00
Element CI
ab4c5a6267 Prepare next release 2023-01-13 07:59:38 -08:00
Stefan Ceriu
83e6ba8f6b
Various sliding sync tweaks (#446)
* Refactor SS configuration and add (unfinished) support for adding views dynamically.

* Implement pop and clear support on the room summary provider

* Register views against sliding sync

* Read invalidated vislbeRoomsSummaryProvider from the allRoomSummaryProvider

* Switch SS window range setting from the ScrollViewAdapter to a publisher debounce

* Tweak allRoomsView addition: switch from listening the visibleRoomsView's state to when it publishes the first diff update

* Cleanup client delegate and sliding sync observers and lifecycle

* Bump the RustSDK to 1.0.30-alpha

* Reuse startSync within restartSync
2023-01-13 17:09:37 +02:00
Doug
c383029203
QuickLook media. (#447)
* Use QL previews for video and present full screen.
* Use URL(staticString:) in more places.
* Fix DesignKit issues.
2023-01-12 17:37:33 +00:00
Doug
edc06bf662
Fix UI tests hanging. (#429)
* Only use Client for UI test signalling.

Make the server listen and return a client.

* Refactor to Listener and Connection.

Matches Network.framework naming.

* Wait until the connection is ready before setting the established connection.

* Docs and fix method name.

* Fix CI issues.

- Use Bonjour to allow multiple devices running simultaneously.
- Sleep after establishing the connection to fix issues on Intel.
2023-01-10 14:10:30 +00:00
Stefan Ceriu
d70a240869 New timeline items (#424)
* Cleanup session verification state machine configuration

* Add support for new timeline items: loading indicators, stickers and invalid/unsupported events

* Add sticker accessibility label, fix session verification ones

* Add support for the new TimelineStart timeline item and new pagination API. Remove identifiers from individual timeline items and only set them in the TimelineTableViewController

* Add changelog
2023-01-10 13:41:07 +02:00
Doug
7888736a4d
Remove French Locale from UI tests. (#420)
* Remove French Snapshots.

* Remove unused sources from UITests.
2023-01-06 16:11:25 +00:00
Aleksandrs Proskurins
bf9b82334d
User sessions tests (#390)
* User sessions tests

* Refactor

- Merge SessionVerificationControllerProxyMock into MockSessionVerificationControllerProxy.
- Merge ClientProxyMock into MockClientProxy.
- Simplify naming.

Co-authored-by: Doug <douglase@element.io>
2023-01-06 10:53:19 +00:00
Aleksandrs Proskurins
e573bc0dd2
Added MediaProvider tests (#386)
* Media provider tests

* Moved classes to separate files

* Moved image file

* Removed unused image file

* Rebase and refactor.

Replace removed error type.
Refactor XYZMock to MockXYZ.

Co-authored-by: Doug <douglase@element.io>
2023-01-05 18:20:49 +00:00
Doug
51e300642c
Timeline UI Tests (#380)
* Add signalling between UI tests and the app.

* Fix navigationStack on roomLayout screens and update screenshots

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2023-01-05 16:35:20 +00:00