* 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
* 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
* Review places where MainActor used
* Adapt to MainActor changes, avoid redundant task detachments
* Move Rust client operations into a dedicated concurrent queue, make init async
* Add changelog
* Fixed small working for awaiting non-async method
* Remove some redundant tasks
* Put back some main actors
* Fix tests
* Fixed timeline updates when the number of items doesn't change. Keeps more previous home screen room data between reloads
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
* 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.
* Add `stop` method to `Coordinator`
* Use new stop method to cleanup room screen
* Call stop implicitly when removing a child coordinator
* Revert placeholder avatar font change
* Fix PR remarks
* Remove redundant string
* Use placeholder avatar on home screen
* Add initial home screen ui test
* Fix settings screen PR remarks
* Remove UIKit alert from home screen sign out
* Remove UIKit alert from soft logout clear all data
* Add reference screenshots for home screen UI tests
* Formatting fixes
* Add clearing room method to client proxy
* Clear room proxies on screen dismiss
* Fix retain cycle in room view model
* Do not go into authentication state immediately
* Define sizes for user and room avatars on different screens
* Use defined avatar sizes everywhere
* Disable image disk caching
* Rename rounded corner shape
* Fix text color of placeholder avatars
* Fix PR reviews on formatted body text
* Fix merge conflict
* Remove shouldShowSenderDetails everywhere and just use it from inGroupState
* Remove redundant linter disablings
* Fix PR remarks
* Rename media provider size parameter
* Begin adopting new Timeline API.
* Add edited indicator and reactions.
* vector-im/element-x-ios/issues/65 - Sliding sync support
* Fix missing room display name, wrong placeholder avatar text color and various other warnings that would fail the build on the CI
* Various tweaks:
* using release version of the demo branch of the sdk
* enabled home screen last room messages
* switched debug mode rust logging to warn
* enabled redactions
* enabled new logout flows and soft logout
* enabled replies
* Fix room member display name and avatar crashes / race condition, fix unit tests
* Make the ClientProxy and the UserSession MainActors
* Remove unused MatrixRustSDK imports, we should strive to keep these only in top level services and proxies
* Don't start either of the syncs while in soft logout
* #181: Style the session verification banner to match Figma.
* #181: Update verification modal.
* #181: Update snapshot tests.
* Make session verification state machine less pedantic
* Remove unnecessary weak selfs
* Various tweaks following code review:
* add start and stop sync client proxy methods
* move ss proxy url the build settings
* made media provider load results discardable
* added publishers for the roomSummaryProvider's total number of rooms and state
* Fix when sender details are shown
* Disable sync v2, causes duplicates in the timeline (as expected)
* Move ClientProxy media loading off the main queue and into a detached task
* Another attempt at moving image loading off the main queue
* Moved home screen diffing and latest room fetching to the background
* Prevent the timeline composer from becoming the first responder when not needed
* Bump to a newer version of the RustSDK
* Fixes vector-im/element-x-ios/issues/107 - New home screen design
* Implement thumbnail loading instead of full image avatars.
* Revert "Disable sync v2, causes duplicates in the timeline (as expected)"
* Add support for local echoes, dispatching detached tasks to a concurrenc GCD queue
* Move the session verification banner to a List Section to avoid UI glitches
* Optimise room mapping after sliding sync updates and thumbnail fetching
* Replace home screen List with a LazyVStack in an attempt to fix performance. Moved move summary provider room updating to a background thread
* Fixes vector-im/element-x-ios/issues/177 - New Bubbles Design
* Define in group state for timeline items
* Add replies into the bubble
* Add timeline width environment value
* Add `RoundedCorner` shape with specific corners rounding
* Add in group state for previews
* Implement bubble grouping logic
* Timeline avatar layout changes
* Fix placeholder avatars for dark mode
* New bubbles design
* Update mock timeline items
* Update timeline separator design
* Update room screen reference screenshots
* Add changelog
* Formatting fixes
* Add some space before single or beginning outgoing items
* Redesign the message composer
* Handle the msgtype enum.
* Update room name label line limit and incoming bubble background. Disabled syncv2, ss withCommonExtensions and session verification controller checking
* Increase default back pagination limit.
* Stop parsing links and tidy up composer button.
* Also fix the frame of an image whilst loading.
* Bump SDK package version.
* Remove app states about settings
* Add strings
* Use colors on placeholder avatars
* Tiny changes for placeholder avatars
* Update settings screen design
* Provide a user display name from the mock client
* Settings screen presentation logic
* Add changelog
* Update reference screenshots
Co-authored-by: Doug <douglase@element.io>
Co-authored-by: ismailgulek <ismailgulek@users.noreply.github.com>
Co-authored-by: ismailgulek <ismailg@matrix.org>
* Expose logout method from SDK
* Use logout from SDK, refactor logging out states
* Add some strings
* Introduce `initialDisplayName` on `UIDevice`
* Implement soft logout screen
* Add `softLogout` test screen identifier
* Add new fields into the client proxy and implement new delegate methods
* Add new fields into the user session and observe new client callbacks
* Implement updated login method
* Add remote logout state and event into the state machine
* Implement refreshing restore token on `UserSessionStore`
* Update app coordinator with new states and display soft logout screen when appropriate
* Add reference screenshots for soft logout screen
* Disable auto requesting photos access on screenshot detection
* Make initial device name optional, generate project file
* Add changelog
* Use logout from SDK, refactor logging out states
* Implement soft logout screen
* Implement updated login method
* Make initial device name optional, generate project file
* Fix renamed event
* Fix logout race
* Remove redundant strings
* Reuse existing strings
* Confirm clear all data
* Expose logout method from SDK
* Use logout from SDK, refactor logging out states
* Add some strings
* Introduce `initialDisplayName` on `UIDevice`
* Implement soft logout screen
* Add `softLogout` test screen identifier
* Add new fields into the client proxy and implement new delegate methods
* Add new fields into the user session and observe new client callbacks
* Implement updated login method
* Add remote logout state and event into the state machine
* Implement refreshing restore token on `UserSessionStore`
* Update app coordinator with new states and display soft logout screen when appropriate
* Add reference screenshots for soft logout screen
* Disable auto requesting photos access on screenshot detection
* Make initial device name optional, generate project file
* Add changelog
* Use logout from SDK, refactor logging out states
* Implement soft logout screen
* Implement updated login method
* Make initial device name optional, generate project file
* Fix renamed event
* Fix logout race
* Remove redundant strings
* Reuse existing strings
* Confirm clear all data
* Comment out new apis for now
* Make the PR compile
* Add user options menu properties to home screen
* Implement home screen new callbacks
* Add user menu button on home screen
* Add changelog
* Fix unit tests
* Fix user menu button layout, make menu sectioned
* Remove user display name from home screen classes
* vector-im/element-x-ios/issues/31 - Session verification unit and UI tests
* Fix ImageAnonymizer tests when running on Apple Silicon
* Rename SessionVerification to SessionVerificationScreen
* #34 Create `TimelineItemStylerView`
* #34 Add styler view into different type of cells
* #34 Use placeholder avatar image on room list
* #34 Add `isOutgoing` param to event based timeline item
* #34 Compute `isOutgoing` for timeline items
* #34 Update sender info view in timeline
* #34 Update mock timeline items
* #34 Rename `EventBasedTimelineView` to `EventBasedTimelineSenderView`
* #34 Change padding on timeline cells
* #34 Create `TimelineItemStylerView` to move content into a bubble if needed
* #34 Use styler view in all of the timeline item views
* #34 Make timestamp more readable on images
* #34 Little layout tweaks
* #34 Add changelog
* #34 Fix code smells
* #34 Set text colors on timeline items
* #34 Fix background color of the timeline
* #34 Fix PR remarks
* #34 Set background colors explicitly on remaining screens
* #34 Reduce min bubble width and make it a scaled metric
* #34 Refactor `PlaceholderAvatarImage` to accept a text only
* #34 Fix code smell
* #34 Fix further comments
* #37 Remove sign out button from home screen
* #37 Move crash button visibility flag to BuildSettings, import BuildSettings from test targets
* #37 Add log out button into the settings screen
* #37 Add version into the settings screen
* #37 enhance bug report parameters
* #37 Remove sign out button from home screen
* #37 Move crash button visibility flag to BuildSettings, import BuildSettings from test targets
* #37 Add log out button into the settings screen
* #37 Add version into the settings screen
* #37 enhance bug report parameters
* #37 Add changelog
* #37 Fix code smells and PR remarks
* Add searchable to home screen.
* search ignoring case and accents
* Move home screen room search filtering to the ViewState
* Use lazy filtering for search.
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
- updated the authentication coordinator to use async await
- replaced the UserSession with a ClientProxy (similar to the RoomProxy)
- renamed `completion` to `callback` on the coordinators and view models
- renamed `viewModelResult` to `viewModelAction`
- introduced back UserSession as a user specific service container