Commit Graph

423 Commits

Author SHA1 Message Date
Doug
5c4991362d Fix playback of encrypted videos.
Encrypted videos from Element iOS were being stored with a `.Video` extension which was confusing AVFoundation.
2023-01-12 10:33:30 +02:00
Stefan Ceriu
22480e0ed4 Expose the current device identifier in settings (#442) 2023-01-11 17:08:20 +00:00
Stefan Ceriu
d8eb9885f8 Move the RoomSummaryProvider id based room updated to the same serial dispatch queue as the normal diffing. Cleanup logging and RoomTimelineProvider diffing 2023-01-11 17:28:12 +02:00
manuroe
9fb859f515 GH board: Send all issues to the EX board (#439)
We will be able to triage everything in one place
2023-01-11 15:57:34 +01:00
Stefan Ceriu
9d80e79eca Various fixes (#437)
* Fix information leaking on RoomSummaryDetails logging

* Prevent crashes when force quitting the application

* Cleanup crash detected alert presentation and exposed home screen view model actions

* Fixes #340 - Wait for logout confirmation before changing the app state

* Add changelogs

* Fix unit tests

* Add missing softLogout logout handling
2023-01-11 15:10:26 +02:00
Doug
02787d85f7 Update danger image, fix snapshots (#436) 2023-01-11 11:01:33 +00:00
Doug
19e0052fc4 Fix back pagination (#432)
* Use pagination and start items for view state.

isBackPaginating and canBackPaginate are updated each time the timeline is rebuilt

* Update some timeline snapshots

The top section has gone, which has altered the layout slightly.
2023-01-11 09:11:36 +00:00
Stefan Ceriu
5672fef5a5 Room list fixes (#431)
* Fixes #396 - Avoid duplicates in room list, cleanup logic throughout

* Re-enabled the allRoomsView with a hard 500 room limit and reduced the diffing collection time.

* Fixes #385, #411 - Filter out spaces, invites and tombstoned rooms from the room list

* Various tweaks following code review
2023-01-10 17:34:42 +02:00
Doug
81185d511b 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
86fab0ee43 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
Stefan Ceriu
6cc1aa977b Add support for manually starting SaS verification flows and accepting remotely started ones 2023-01-10 13:41:07 +02:00
Doug
d5af50f80b 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
92d4f4c74a 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
Stefan Ceriu
e0e1e2119a Storage location change (#404)
* Remove LegacyRestorationToken and handling
* Fixes #389 - Migrate and store session data in Application Support instead of Caches
2023-01-06 10:27:27 +02:00
Aleksandrs Proskurins
ec751458bb 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
72719142d1 Replace completion handlers with async/await. (#407) 2023-01-05 16:43:41 +00:00
Doug
b51c03ace1 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
Doug
677888abba Minor fixes. (#406)
* Use the links colour from Compound for links.
* Avoid constantly recomputing the RoomScreen view hierarchy while scrolling.
2023-01-05 11:06:49 +00:00
networkException
f9107b8ff7 Fix build badge in the README
This patch updates the link used in the build badge readme to follow the
new format required by shields.io. Note that the badge now only reflects
the status of the unit_tests.yml workflow which presumably was not the
case when referencing by title was still possible (the title probably
matched ui and unit tests).

See https://github.com/badges/shields/issues/8671
2023-01-05 12:03:57 +02:00
Element CI
2936737c59 Prepare next release 2023-01-04 12:09:31 -08:00
Stefan Ceriu
47798b1a23 Revert "Enable the allRooms sliding sync view"
This reverts commit f5a31cdc43.
2023-01-04 22:00:35 +02:00
Element CI
7a07a89fb6 Prepare next release 2023-01-04 10:49:00 -08:00
Stefan Ceriu
c6443ec2f4 Bump the RustSDK to v1.0.27-alpha 2023-01-04 20:39:24 +02:00
manuroe
2bbc6e909f Tweaks timeline pagination sizes
We need at least one screen of content when opening a room. We used 30 on EI for big devices.
2023-01-04 20:26:14 +02:00
Stefan Ceriu
f5a31cdc43 Enable the allRooms sliding sync view 2023-01-04 19:06:28 +02:00
Stefan Ceriu
f1ea1b76f9 Animate various room list components 2023-01-04 19:06:28 +02:00
Stefan Ceriu
82e4ad95cc Respect bottom safe areas in the room list 2023-01-04 19:06:28 +02:00
Stefan Ceriu
09face6b06 Fix a couple of warnings 2023-01-04 19:06:28 +02:00
Stefan Ceriu
05e1e3b34e Enable the sliding sync timeline api. Start observing updates coming through the TimelineListener before addining a timeline listener on the Rust side 2023-01-04 18:15:53 +02:00
manuroe
7dd7dcde9e Avoid the "Failed to load messages" popup when all messages have been loaded 2023-01-04 12:11:08 +02:00
Stefan Ceriu
ce46fb3c6e Bump the RustSDK to v1.0.26-alpha 2023-01-04 11:40:18 +02:00
manuroe
9ed66f0808 Fix stuck timeline pagination because of too many membership events
Requires https://github.com/matrix-org/matrix-rust-sdk/pull/1314
2023-01-04 11:40:18 +02:00
Element CI
a5637b09cc Prepare next release 2022-12-22 04:09:06 -08:00
Stefan Ceriu
03dd2cd84d Add retry decryption encrypted timeline item debug menu option (#384)
* Fixed a couple of warnings (+2 squashed commits)
Squashed commits:
[21fbc3b0] Add changelog
[abb092c6] Add retry decryption encrypted timeline item debug menu option

* Cleanup room list state computations

* Bump the RustSDK to v1.0.25-alpha

* Fix brew CI errors: remove imagemagick and brew lock file entirely

* Fix release script version bumping

* Bump ruby dependencies
2022-12-22 13:59:38 +02:00
Stefan Ceriu
2d57abb160 Add timeline day separators and read markers (#383)
* Add timeline day separators and read markers
2022-12-21 15:35:45 +02:00
Aleksandrs Proskurins
2536272e75 Added unit tests for NotificationManager (#376)
* NotificationManager tests

* More unit tests

* More tests, moved classes to separate files

* Removed warnings

* UserNotificationCenterProtocol as AnyObject

* Reverted back Package.resolved
2022-12-21 10:06:30 +00:00
Stefan Ceriu
3749643457 Various tweaks (#381)
* Add the message delivery status to the plain timeline styler and display it outside of the main content

* Fix glitchy timeline scroll to bottom button

* Fixed bubbled reactions padding

* Simplified the emoji picker, double tapping a timeline item directly opens it now and added a context menu option. Linked it to rust side reaction sending

* Fix the sliding sync cold cache: treat invalidated rooms as filled

* Make splash screen view full screen

* Fix the offline indicator popping up when first setting up the network monitor

* Expose presentationDetents on the NavigationStackCoordinator and start using them for the EmojiPicker

* Fix link tint color

* Linked TimelineReactionsView reaction sending

* Remove now unused/unnecessary classes

* Add changelog

* Fix formatting issue
2022-12-21 11:18:45 +02:00
Stefan Ceriu
6916976e63 Increased fastlane xcode timeouts and integration login test expected duration (again!) 2022-12-20 12:45:00 +02:00
Stefan Ceriu
1df241efa3 Fixes #258 - Display an indicator if the network is currently unreachable (#379) 2022-12-19 18:29:14 +02:00
Stefan Ceriu
041ddb9084 Fixes #351 - Replace Syncing toast indicator with an in-timeline loading activity indicator (#378) 2022-12-19 16:25:41 +02:00
ismailgulek
97f6e7f6d6 Room details screen (#348)
* Create screen module

* Display details on header tap

* Add strings

* Add room avatar size on details

* Update members method signature

* Use room proxy values

* Create room members screen

* Display room members on tap

* Update previews and mock room proxy

* Commit project file

* Various tweaks and cleanup following code review

* More small tweaks + UI and screenshot tests

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2022-12-19 14:39:33 +02:00
Doug
60b264bb73 Use matrix-rust-sdk for local development. (#377)
The SDK will be setup as a Swift package when using the Swift xtask so this is a much easier way to do local dev (for anyone who doesn't want to use #362).
2022-12-19 11:28:56 +00:00
Stefan Ceriu
1992bfc737 Fixes #329 - Simplify video player UI until we agree on final designs. (#375) 2022-12-19 12:17:37 +02:00
Element CI
dbfd38fa52 Prepare next release 2022-12-16 14:45:47 +02:00
Stefan Ceriu
22140857e1 Fix build error 2022-12-16 14:12:13 +02:00
Stefan Ceriu
db131cf35e Remove UI and Integration tests from the ElX target, add IS_RUNNING_UNIT_TESTS envar (#374) 2022-12-16 14:07:42 +02:00
Stefan Ceriu
910fb2e38c New SlidingSync flow (#373)
* Switch back to using slidingSync rooms for timeline listeners

* Expose 2 types of slidingSync views from the clientProxy and combine their results for the roomList

* Fix breaking api changes

* Remove sender mxids from the room list (until rust provides resolved display names)

* Bump RustSDK to v1.0.22-alpha

* Rename originServerTs to timestamp throughout

* Simplified sliding sync view list merging

* Rollback some SS changes as things still don't work properly

* Revert "Switch back to using slidingSync rooms for timeline listeners"

This reverts commit 1d6a6c09d8ddf386edefbe0ac6beaf52cc333fba.
2022-12-16 14:05:08 +02:00
Stefan Ceriu
522dad5ff2 Resetting the app after deletion and cleanup settings (#372)
* Fixes #361 - Reset everything if the app has been deleted since the last run

* Cleaned up and renamed the ElementSettings to ApplicationSettings. Removed its singleton and moved it to the service locator.

* Moved the ApplicationSettings to the Application folder

* Merged together the BuildSettings and ApplicationSettings

* Reset the UserDefaults too when resetting the application state

* Rename ServiceLocator.applicationSettings to just settings

* Fix indentation

* Rename ApplicationSettings to AppSettings

* Various tweaks following code review

* Fix unit tests
2022-12-16 10:02:22 +02:00
Stefan Ceriu
5bc31d0a69 Various UI test fixes (#370)
* Increase integration tests time limits again as they're still ocasionally failing

* Fixed NavigationRootCoordinator name in logs

* Refactor UI tests hierarchy and introduce new userFlowScreen

* Introduce a RoomTimelineControllerFactory so that it can be mocked in the UserFlow UI tests

* Start using a mock timeline controller for the UserSession flows

* Remove the WeakDictionary dependency and replce it with a plain NSMapTable in the BackgroundTaskService

* Allow multiple UITests screenshots per screen

* Prevent the view hierarchy changing when taking screenshots

* Add UserSessionScreen UI tests

* Fix label triaging workflow project identifier as per vector-im/element-ios/pull/7150

* Fix settings screen tests

* Fix roomPlainNoAvatar and roomEncryptedWithAvatar UI tests

* Fix modal server selection screen UI tests

* Fix bug report and login screen UI tests

* Fix text typing missing characters on UI tests

* Fix sliding sync configuration on integration tests

* Stop crashing if not finding a particular room through the MockClientProxy
2022-12-15 15:22:39 +02:00
Aleksandrs Proskurins
5973286dd0 Ignore all mock files from codecove report (#371)
* Ignore all mock files from codecove

* Fixed extension for mock ignore files
2022-12-15 14:02:25 +02:00