Commit Graph

229 Commits

Author SHA1 Message Date
ismailgulek bdc83dac27 Some Post-demo Cleanups (#200)
* 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
2022-09-23 12:21:41 +03:00
Stefan Ceriu 5ebe923991 Sliding Sync + New Timeline API (#189)
* 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>
2022-09-21 09:21:58 +01:00
ismailgulek b30712b931 Home screen - User options menu (#185)
* 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
2022-09-14 22:42:48 +03:00
Doug 4349b8fc03 #150: Use standard file headers everywhere.
* Add default header in IDETemplateMacros.plist.
* Use the standard header everywhere.
2022-08-11 08:54:24 +01:00
Doug c20bc6bd1c #42: Proof of concept login via OIDC.
Uses AppAuth library in the app, ignoring token refresh
2022-07-28 09:28:42 +01:00
Stefan Ceriu e1eee9465e Fix vector-im/element-x-ios/issues/134 - Prevent home screen room last message attributed string from being computed on every update
Add async/await methods to the AttributedStringBuilder and adopt them throughout the app
2022-07-22 10:25:17 +03:00
Doug 25d7ba55ad Enable blank line rules. (#132) 2022-07-06 16:01:50 +01:00
Doug 02eb4b35e2 Add SwiftFormat to the project. (#129)
* Run swiftformat for whitespace.
* Run swiftformat with some rules.
2022-07-06 14:49:05 +01:00
Stefan Ceriu a6f9d1ba89 vector-im/element-x-ios/issues/31 - Implement simple SaS sesson verification
* 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
2022-07-01 13:56:52 +03:00
ismailgulek 591f835811 Minimal Settings screen UI (#85)
* #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
2022-06-20 15:27:02 +03:00
ismailgulek fa0721b160 Rageshake Service (#70) 2022-06-06 12:38:07 +03:00
Stefan Ceriu e11b09de3d Cleanup various animations 2022-05-31 16:16:01 +03:00
Stefan Ceriu 1b4d3a650e #53 - Refactored various components:
- 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
2022-05-30 16:06:11 +03:00
Stefan Ceriu 8fec97217f vector-im/element-x-ios/issues/53 - Various tweaks following code review 2022-05-26 11:42:57 +03:00
Stefan Ceriu f5890b68a2 vector-im/element-x-ios/issues/53 - Adopt MainActors, dispatch heavy operations do detached tasks and ensure combine publisher call back on the right queue 2022-05-26 11:42:57 +03:00
Stefan Ceriu dde7786152 vector-im/element-x-ios/issues/53 - Converted most callback based methods to async/await 2022-05-26 11:42:57 +03:00
Stefan Ceriu f2fe39eca7 Update templates: remove iOS 14 availability checks and stateActions + reducer. 2022-05-26 11:42:57 +03:00
Stefan Ceriu 916ac2dcee Stop blocking on loading the current user display name and avatar. Improve perceived app startup times. 2022-04-08 14:06:26 +03:00
Stefan Ceriu 711857ac9c Caching memberDetailProviders, showing sender display names in home screen last message, cleaner homescreen design. 2022-04-01 16:05:26 +03:00
Stefan Ceriu 86d85f4d2c Introduced the concepts of room summary and event brief. 2022-04-01 14:07:33 +03:00
Stefan Ceriu 49f7678ce8 Caching the room proxies and their messages. Improved performance throughout. 2022-03-31 17:45:41 +03:00
Stefan Ceriu d3588cf6f1 Filter out space and tombstoned rooms from the rooms list. 2022-03-22 10:27:26 +02:00
Stefan Ceriu 5c7761e851 Added html body to text messages and rendering through Apple's default NSAttributedString.DocumentType.html parser 2022-03-22 10:09:46 +02:00
Stefan Ceriu d201ca1ad8 Added user display names and switched to using an avatar url directly in the homeScreen viewModel for the current user. 2022-03-21 19:35:24 +02:00
Stefan Ceriu 120bcaf012 Loading images and user avatars. 2022-03-17 18:09:29 +02:00
Stefan Ceriu 3cc1395fbc Adopting different timeline item types exposed from rust. 2022-03-16 18:02:19 +02:00
Stefan Ceriu 43f78d0a26 Load room details on appearance. Avoid overwhelming the rust runtime and slow down the room timeline loading. 2022-03-16 14:52:25 +02:00
Stefan Ceriu 8d4f6f301b Better timeline handling, based on improved rust APIs. 2022-03-10 16:45:34 +02:00
Stefan Ceriu c22d9689d4 Added room timeline screen with live events listening and back pagination. Rearranged project files. 2022-03-08 14:24:33 +02:00