1973 Commits

Author SHA1 Message Date
Stefan Ceriu 3153c0f0d9 Update feedback reporting service configuration 2023-01-12 15:24:31 +02:00
Stefan Ceriu 62c3159694 Expose the current device identifier in settings (#442) 2023-01-11 17:08:20 +00:00
Stefan Ceriu 357d493e5a 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 08b333839a 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 3d1266ca25 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
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
Stefan Ceriu 956e92a9ac Add support for manually starting SaS verification flows and accepting remotely started ones 2023-01-10 13:41:07 +02: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
Doug 530ae336ab 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
manuroe 0e60bcaa25 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 1b83d77c78 Animate various room list components 2023-01-04 19:06:28 +02:00
Stefan Ceriu 9926cd363c Respect bottom safe areas in the room list 2023-01-04 19:06:28 +02:00
Stefan Ceriu ac77743c7a 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 131197b7d7 Add timeline day separators and read markers (#383)
* Add timeline day separators and read markers
2022-12-21 15:35:45 +02:00
Stefan Ceriu 71f1f044c7 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 39fcd3b9c9 Fixes #258 - Display an indicator if the network is currently unreachable (#379) 2022-12-19 18:29:14 +02:00
Stefan Ceriu e0e2d26b4b Fixes #351 - Replace Syncing toast indicator with an in-timeline loading activity indicator (#378) 2022-12-19 16:25:41 +02:00
ismailgulek 1a47fd1a8d 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
Stefan Ceriu c466786875 Fixes #329 - Simplify video player UI until we agree on final designs. (#375) 2022-12-19 12:17:37 +02:00
Stefan Ceriu ab10278ff5 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 6f974a4422 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 5b90f37f2e 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
Doug 6dc2ea800e #352: Add basic UI tests for the timeline. (#363)
Makes the MockTimelineController configurable with incoming items and pagination responses.
2022-12-12 14:27:49 +02:00
Doug 1791993560 Use a view controller for the timeline. (#359)
This exposes lifecycle methods and tidies up the Coordinator.
2022-12-12 11:21:43 +00:00
Stefan Ceriu cd40da6c3f Fixes #317 - Adopt a split layout for iPad and Mac apps
Rename navigation components: SplitScreenCoordinator -> NavigationSplitCoordinator, StackScreenCoordinator -> NavigationStackCoordinator and SingleScreenCoordinator -> NavigationRootCoordinator
[0c161039] Tweak navigation logging
[826c19cf] Move the navigation dismissal callbacks to the NavigationModule, add SingleScreenCoordinator tests
[b8830d9c] Add tests
[252ad119] Merge the StackScreenCoordinator and SplitScreenCoordinators into a single file and stop publicly exposing their internal workings. Add more documentation.
[37671699] Cleanup navigation logging
[51406184] Use the parent SplitScreenCoordinator to present embedded StackScreenCoordinator sheets
[b94b04c9] Retract the room "syncing" indicator when dismissing a room
[1467b0ac] Correctly move to the no room selected state when popping in compact layouts
[10bf2ad8] Allow nilling root coordinators, replace present/dismiss sheet with setSheetCoordinator(?)
[33716784] Add single screen coordinator fade transition animation
[3cbe65e7] Prevent the timeline table view from being reused between different rooms
[9c94c50b] Move files around
[c10b6bc5] Adapt the user session state machine to the split layout
[7115a319] Fix unit and UI tests
[1ece59e8] Fix login flows
[6884dc3b] Use modules everywhere the underlying object is a NavigationModule
[ab08d44c] Rename navigation components to: SingleScreenCoordinator, SplitScreenCoordinator and StackScreenCoordinator
[ada2be57] Add SplitNavigationController

* Remove the navigationRootCoordinator from the UserSessionFlowCoordinator
2022-12-12 12:31:27 +02:00
Aleksandrs Proskurins 1e197d48de Send reaction method placeholder (#355)
* Send reaction method placeholder

* Removed unnecessary emoji skin parsing

* Code review fixes
2022-12-07 11:19:47 +00:00
Stefan Ceriu 7db7eec98f Prevent the sliding sync proxy base URL value from being stored in the UserDefaults if it hasn't changed on homeserver confirmation 2022-12-07 09:44:10 +02:00
Aleksandrs Proskurins 7f91852291 Timeline Reactions: Emoji picker (#350)
* Screens template

* Loading and parsing

* Gridview

* New json

* Search method

* Unit tests

* Added emoji provider state

* Removed containsIgnoringCase

* Added plus icon, added double tap gesture, dismiss sheet after selecting emoji

* Renamed EmojisProvider to EmojiProvider

* Renamed EmojiPickerScreenScreen

* Extra padding

* Renamed EmojisLoaderProtocol

* Category names

* Moved method into public section of the class

* Return all categories when search string is empty

* Added cancel button and tittle

* Removed empty lines

* Removed swiftlint warning
2022-12-06 14:04:48 +00:00
Doug 3c893ba342 Use a UITableView component for the timeline. (#349)
* Use a collection view for the timeline.
* Switch to a table view.
2022-12-05 15:39:21 +00:00
Stefan Ceriu 9dc08341fa Disable home screen search bar autocorrection 2022-11-29 12:43:29 +02:00
Stefan Ceriu 623eecec77 Workaround the NavigationController not releasing popped screens and clean up the roomScreen + timelineController + timelineProvider + roomProxy on stop() 2022-11-29 12:43:29 +02:00
Stefan Ceriu 8c86bf9acb Remove unused settings appearance section and txid handling warnings 2022-11-29 12:43:29 +02:00
ismailgulek cb5db22b7f Fix state machine crashes & background tasks (#343)
* Fix `UIApplication.shared` after moving to SwiftUI app

* Do not autoplay videos on background

* Move app state changes into the app coordinator

* Add application background task, move into the suspended state more accurately

* Add changelog

* Fix most of the linter errors

* Strip suspended state from state machine

* Fix build

* Clear audio session warning

* Update AppCoordinator.swift

* Update AppCoordinator.swift

* Swift format
2022-11-28 18:42:49 +03:00
Doug bd530333df Match reaction alignment to message alignment. (#344)
* Match reaction alignment to message alignment.

* Add extra padding for clearer bubble alignment.
2022-11-28 11:54:00 +00:00
ismailgulek 232430ac95 Image viewer (#338)
* Resume other app's music when video playback finished

* Remove old media player

* Add `isModallyPresented` into the video player screen

* Create image viewer screen

* Add test screen identifier

* Display image viewer when message tapped

* Fix template script unit test path

* Tweaks on scaling

* Commit project file

* Add changelog

* Ignore safe areas on the file preview screen

* Display images in preview

* Remove image viewer screen

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2022-11-28 11:19:40 +00:00
Stefan Ceriu 9589c689c3 Remove unnecessary marks, they bring little value 2022-11-28 12:46:06 +02:00
Doug f776575c81 Stop making previews for light & dark colour schemes. (#345)
Xcode 14 now has preview variants for this.
2022-11-25 17:49:13 +00:00
Stefan Ceriu 00cd2ab707 Set visible ranges on the home screen sliding sync view (#342)
* Set visible ranges on the home screen sliding sync view
* Prevent the visible items from being updated while in search mode
* Enable diffs on invalidations as they seem to fix duplicated events in the home screen room list
* Promoted some diffing logs to info from verbose
2022-11-25 17:50:43 +02:00
Stefan Ceriu 03130f41fb Fix rooms not showing up as placeholders after switching from the skeletons state 2022-11-24 17:54:05 +02:00
Stefan Ceriu d89782a8b2 Reduce automatic back pagination delay to 0.25 seconds 2022-11-24 10:35:53 +02:00
Doug 5c4ca74426 Use a VStack on the timeline (#332)
* Use a VStack for the timeline.

Replace edge publishers with a binding.

* Allow both top and bottom edges to be detected.

* Fix scrolling with frame changes.
2022-11-22 13:28:35 +00:00
Doug 6c2ea61585 #305: Fix message composer padding with multiple lines. 2022-11-22 09:46:02 +00:00
ismailgulek d389ce7ad7 Notifications (#275) 2022-11-21 19:37:13 +03:00
Stefan Ceriu 9f3ed6ca7b Revert "Force the timeline to stay at the bottom when first loading"
This reverts commit ef8d230328.
2022-11-21 15:02:28 +02:00
Stefan Ceriu ef8d230328 Force the timeline to stay at the bottom when first loading 2022-11-21 11:11:58 +02:00
Stefan Ceriu 711c16cc2a Decrease timeline back pagination size from 50 to 20 2022-11-21 11:11:58 +02:00
Aleksandrs Proskurins 9d6495d14a Send messages on return (#325)
* Send messages on return

* Formating

* Changelog
2022-11-18 15:43:03 +00:00
Aleksandrs Proskurins 77a0d5a58f Introduce sending and sent state for timeline messages (#319)
* Updated md files

* Changelog

* Update CONTRIBUTING.md

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>

* PR fixes

* Sending state in the timeline

* Changelog

* Formating

* Project file

* Make MessageTimelineItemDeliveryStatus Equatable

* Renamed seconds ago to elepsed time

* Moved show/hide logic into TimelineDeliveryStatusView

* Hide view when unknown status

* Added delivery status for other items

* Cleanup

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2022-11-17 15:47:28 +00:00
Stefan Ceriu 276daf0355 Expose sliding sync proxy URL on the server selection screen; make app more resilient to slidinc sync configuration errors, remove fatal errors 2022-11-17 14:04:24 +02:00
Stefan Ceriu 2fd0491a18 SwiftUI NavigationController and UserNotificationControllers (#309)
* Fixes #286 - Adopted the new SwiftUI NavigationStack based NavigationController throughout the application
* Fixes #315 - Implemented new user notification components on top of SwiftUI and the new navigation flows
* Add home screen fade animation between skeletons and real rooms
* Bump the danger-swift version used on the CI and swiftlint with it
* Renamed Splash to Onboarding, Empty to Splash
2022-11-16 13:37:34 +00:00