Commit Graph

347 Commits

Author SHA1 Message Date
Doug
683860a924 Message composer icon and scroll to bottom button dark mode (#562)
Remove animations on the composer when entering/exiting edit/reply mode too.
2023-02-10 09:48:01 +00:00
Stefan Ceriu
ba50a8050c Fixes #464 - Incorrect regex usage on extended grapheme clusters 2023-02-10 09:50:52 +02:00
Mauro
4af8f2860d Updated Screenshot Tests and fixed an issue with the MockMediaProvider (#554)
* updated the tests

* updated ui tests

* removed unused files

* fixed a bug that prevented the image to be added in the avatar of the rooms from the mock, and improved some UI tests

* swiftformat

* fixed an issue where the room Id was not matching the real room id coming from the timelineController, also updated some tests, and added a test for the case where the RoomAvatar is available.

* added some waitForExistence checks to allow the CI to find the UI elements

* this should make the loading bar always match at the HStack size

* code improvement for the tests

* fix for the max frame of the loading screen

* updated tests

* regenerated and improved some tests

* sonarcloud improvements

* changelog
2023-02-09 14:57:55 +01:00
Stefan Ceriu
c4343d3dd9 Switch to weakAssign for all AppSettings listeners 2023-02-09 11:41:14 +02:00
Stefan Ceriu
359c314cb7 Fixes #367 - Refactor AppSettings usage patterns 2023-02-09 11:41:14 +02:00
Mauro
062bf35fcf 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
becbcc84e1 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
73a5bca386 Update the timeline to correctly fix it to the bottom in UI tests. (#553) 2023-02-08 18:58:12 +01:00
Doug
838b496499 Fix UI Tests for OnboardingScreen, BugReportScreen, ServerSelectionScreen, and UserSessionFlows. (#549)
* Fix OnboardingScreen UI Tests

Disable the swipe tests for now as there is only a single page.

* Fix BugReportScreen UI Tests.

Use snapshots more and remove manual validation method.

* Fix ServerSelectionScreen UI Tests.

* Fix SessionVerificationScreen UI Tests.

* Fix UserSessionFlows UI Tests
2023-02-08 14:11:09 +00:00
Doug
97fbc0990d Minor tweaks to the message composer. (#548) 2023-02-08 12:21:41 +00:00
Doug
bbbd6b3b9d Add shimmer effect to room skeletons. (#544) 2023-02-07 13:19:57 +00:00
Stefan Ceriu
4e30027e68 Remove now unneeded migration from caches to application support 2023-02-06 18:17:32 +02:00
Doug
1fbb285576 Explicitly pass the context into the cell's environment. (#539) 2023-02-06 15:55:00 +00:00
Stefan Ceriu
1cac46b11e 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
Doug
8cf55b993f Allow blockquote bubbles to fill the message bubble (#527)
Use a custom layout to prevent them from unnecessarily widening the bubble.
2023-02-06 13:42:19 +00:00
Doug
d41600cc0b Revert decryption banner & try fix context menu crash. (#525) 2023-02-03 18:24:28 +02:00
Doug
602b21928b Further design updates to the timeline. (#524)
- 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.
2023-02-03 14:09:48 +00:00
Stefan Ceriu
ee9966173c Load member profiles through the timeline (#522) 2023-02-03 10:12:36 +00:00
Stefan Ceriu
7af5b89021 Prevent duplicated timeline items from crashing the diffable datasource 2023-02-02 18:10:52 +02:00
Stefan Ceriu
08ed28a907 Refactor the dynamic timeline modifiers and make sure they fire in the right order 2023-02-02 17:09:14 +02:00
Stefan Ceriu
fe3d11276e Fixes #516 - Delay user profile details loading until the room list has been updated 2023-02-02 13:08:23 +02:00
Stefan Ceriu
6f48ce8869 Fix remaining retain cycles, allow coordinators to be weakly referenced and make sure the NavigationStackCoordinator cleans up after itself 2023-02-02 13:08:08 +02:00
Doug
757ac9aafe Allow different states for the last message. (#514) 2023-02-02 11:05:23 +00:00
Stefan Ceriu
c229880c8b Cache lproj bundles so that so we stop recreating them every time we request a localizable string 2023-02-01 16:57:43 +02:00
Stefan Ceriu
c59016ec9b Introduce back custom room list item identifiers for invalidated rooms 2023-02-01 14:29:17 +02:00
Doug
81960dd150 Minor fixes.
- Marking a room as read on iPad.
- Potential state machine crash if you swipe to dismiss verification.
2023-01-31 21:21:59 +02:00
Stefan Ceriu
a6f255d203 Dynamically adjusting the visibleRoomsView's timeline limit based on the app state 2023-01-31 20:59:08 +02:00
Velin92
0063b9ef11 iOS: Removing event id links (#509)
* 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
2023-01-31 19:42:45 +01:00
Doug
af7005ce19 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
3dae91af28 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
Doug
243547072b Initial timeline design tweaks (#505) 2023-01-31 13:27:35 +00:00
Stefan Ceriu
0ab4c04833 Memory management (#503)
* Correctly tear down the user session on signing out

* Fix session verification <-> user session retain cycle, visible range debouncer leak

* Manually clean up coordinators retained within SwiftUI's NavigationStacks

* Slightly refactor the timeline content menu builder and prevent it from retaining the view model. Cleanup now unnecessarily optional RoomScreenCoordinator instance vars

* Move coordinator dismissal logic to the navigation modules
2023-01-31 11:51:56 +02:00
Stefan Ceriu
5ece1dc449 Workaround #418 - Allow swiping back from file previews (#499) 2023-01-30 18:53:05 +02:00
Doug
77c43786bc Remove room cell animations. (#501) 2023-01-30 12:27:26 +00:00
Gil Eluard
49159c4ac1 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
Stefan Ceriu
a2b8525366 Fix SS update observer and implicitly session verification not being requested 2023-01-27 16:54:20 +02:00
Gil Eluard
ac48420850 Design review for first public TestFlight (#492)
* 430 - Design review for first public TestFlight
2023-01-26 15:32:39 +00:00
Stefan Ceriu
b43165049c Move last message timestamp formatting to the room summary provider and its background processing queue 2023-01-26 16:31:26 +02:00
Stefan Ceriu
a8aa61de29 Reduce the quality of service of all custom dispatch queues 2023-01-26 16:31:26 +02:00
Stefan Ceriu
05ea8b1894 Drop the timeline limit to 1 on the visible rooms sliding sync view 2023-01-26 15:03:23 +02:00
Stefan Ceriu
b6a89da254 Hardcode server versions for stop the SDK from making an extra requests on every startup 2023-01-26 15:03:23 +02:00
Stefan Ceriu
0c45dd6d05 Remove hard 500 room limit from the all rooms sliding sync view 2023-01-26 15:03:23 +02:00
Stefan Ceriu
72c51ccb91 Drop the entire sliding sync observer and updating rooms by identifiers now that we can request to be sent item updates 2023-01-26 15:03:23 +02:00
Stefan Ceriu
41a7fefb96 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
d093d001b5 Add support for aliases to RoomProxy and bump the SDK. (#486) 2023-01-24 17:01:00 +00:00
Doug
3c2d2e7731 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
Doug
c34fb7e9c5 Small tweaks (#482)
* #449: Hide the keyboard when scrolling during a search.
* Tidy up the reactions picker.
2023-01-23 18:32:56 +00:00
Stefan Ceriu
041a21e65d Fixes #448 - Prevent room timelines from becoming stale if the room drops out of the sliding sync window 2023-01-23 19:54:01 +02:00
Doug
e54a202a44 Improvements to state items (#478)
- Remove context menu (and fix long press when there are no items).
- Add membership change tests.
- Fix new/old name incorrect ordering.
- Fix message grouping when it comes before/after a state item from the same user.
- Only show reactions picker for items that can be reacted to.
2023-01-23 10:01:45 +00:00
Stefan Ceriu
523a5b3b09 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