59 Commits

Author SHA1 Message Date
Johannes Marbach
342d25f4c1
Include app name in default session display name (#227) 2022-10-14 12:44:41 +00:00
Stefan Ceriu
e2af796d4a Fix strong reference cycle between RoomProxy and RoomTimelineProvider 2022-09-29 09:05:04 +03:00
Johannes Marbach
40d80e1b90 Correct changelog entry 2022-09-28 21:27:02 +03:00
Johannes Marbach
bf56062431 Include changelog.d and other common files in Xcode project
Fixes: #218
2022-09-28 21:27:02 +03:00
Stefan Ceriu
74cab0fc0b Prepare next release 2022-09-23 16:18:16 +03:00
Doug
b9f8fb0b6f
Rename Provider Items to Item Proxies. (#205) 2022-09-22 11:18:18 +01:00
Doug
e7eeac0424
Add validate-lfs.sh check from Android. (#203) 2022-09-22 09:36:51 +01:00
Doug
8462862afc
Replace detached tasks with Task.dispatch(on:) (#201)
* Use Task.detach(on:) everywhere that was blocking.
* Don't wrap the continuations in a Task 🤦‍♂️
* Add sendable requirement to closure.
2022-09-21 17:50:15 +01:00
ismailgulek
40e878cbb1
Redacted events in timeline (#199)
* Add redacted timeline item and view

* Use isOwn and isRedacted properties from sdk

* Build redacted items in factory

* Include redacted events in timeline

* Add changelog

* Fix unit tests
2022-09-21 14:13:04 +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
a88491be1a
Python3 support for localizer script + translations update (#192) 2022-09-19 18:25:03 +03:00
ismailgulek
bf3c7e900f
Log out (#174)
* 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
2022-09-15 12:41:37 +03:00
Doug
252b52afbf DesignKit: Update fonts to match Figma. 2022-09-15 09:21:56 +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
bc457958db
DesignKit: Update design tokens and create ElementColors locally. (#186)
* Use latest design tokens and create Element colors
* Keep the old colours and add system… ones.
2022-09-14 19:16:50 +01:00
Stefan Ceriu
ffee192e89
Fixes vector-im/element-x-ios/issues/114 - Replying to timeline items 2022-09-14 16:21:23 +03:00
Doug
fb947f2dba #178: Add redaction menu (disabled). 2022-09-14 13:18:04 +01:00
Doug
7dd77be01b Add timeline properties for edited and reactions.
Not yet visible, waiting for timeline API.
2022-09-14 12:19:38 +01:00
Doug
df68174a32
#106: Begin adding the Analytics class from EI.
No UI or SDK support to enable/disable yet and no tracking is implemented.
2022-09-02 10:09:02 +01:00
Doug
7c37d2f143
Run SwiftFormat (non-lenient) separately on CI. (#167)
Make the lenient run into a post build step.
2022-08-30 16:45:40 +01:00
ismailgulek
2cb6dc1cd9
Screenshot tests (#130)
* #9 Add snapshot testing library

* #9 Create script to boot test simulators

* #9 Create the UI test plan

* #9 Create shared schemes for test targets

* #9 Disable split view for UI tests

* #9 Fix fastlane dependencies

* #9 Add snapshot testing to the application

* #9 assert screenshots

* #9 fix swipe gestures on iPad

* #9 Fix accessing items in session verification screen

* #9 Workaround for flaky unit test

* #9 Specify scheme for alpha build

* #9 Add reference screenshots

* Update python script path and check assets for png check

* Update script path

* Use static timezone for simulator time

* Fix build after SwiftFormat

* Add changelog

* Upload failed screenshots artifact

* Always upload artifacts

* Update boot simulator script

* Update simulator overridden time

* Install pytz before tests

* Get time from Ruby script

* Disable SwiftUI animation when running UI tests

* Update screenshots after animation setting

* Include reference images in the artifact

* Update matching precision

* Update image matching precision & revert artifact content

* Include Xcode result in the artifact

* Update test output directory

* Disable gradient on splash screen for tests

* Tap next button explicitly

* Wait a bit before checking alert

* Wait 1 second

* Run SwiftFormat on project

* Ignore temporary screenshots

* Fix most of the PR remarks

* Fix conflicts

* Bump Python version to 3

* Update reference screenshots for authentication screens

* Update SwiftFormat

* Fix flakey session verification test.

* Update scheme.

Co-authored-by: Doug <douglase@element.io>
2022-08-11 15:02:47 +03:00
Hugh Nimmo-Smith
207cbdebfd
Request all required OIDC scopes + grant_types (#154)
* Request all required OIDC scopes on auth
* User real TOS and Policy URLs for OIDC
* Request refresh_token grant type when registering client
* Use unstable OIDC scope prefixes
2022-08-11 11:47:10 +01: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
bb284a62e6 Create pr-156.misc 2022-08-04 08:51:24 +01:00
Doug
b4caaa6ae7 Run SwiftFormat as a prebuild script to fail early on CI. 2022-08-04 08:50:43 +01:00
Doug
a3d2fc40ae
Rename x-nolink-0001.doc to pr-153.doc 2022-08-02 12:22:28 +01:00
vollkorntomate
f70c8b1164 Fix broken link in CONTRIBUTING.md
Signed-off-by: Thomas Völkl thomas@vollkorntomate.de
2022-08-02 12:21:55 +01:00
Doug
6c33b3fe7f Prepare next release 2022-07-28 14:39:43 +01:00
Doug
87b2a41a69
#93: Add a sync limit of 20 and prefill rooms when loading the last message.
Update the SDK to 1.0.13-alpha.
2022-07-28 12:46:48 +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
Doug
1878a16496
#40: Use the Rust AuthenticationService.
* Update SDK package to 1.0.12-alpha.
* Use an app group for storage and stop stripping the http from the homeserver when configuring the service.
* Rename access token to restore token.
* Remove matrix.org server description inline with latest FTUE changes.
2022-07-27 10:57:16 +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
Doug
26d8affaa8
#40: Add basic AuthenticationService and missing UI tests.
* Add MockAuthenticationService and ServerSelectionUITests.
* Add tests covering the Authentication flow.
2022-07-04 10:00:27 +01:00
Doug
266ca656fc
Add Screen suffix to all screens. (#125) 2022-06-30 16:48:46 +01:00
ismailgulek
83a25d5501
Flatten room list (#121)
* #121 Flatten the room list

* #121 Add changelog

* #121 UI tweaks for avatar and display name and preview

* #121 Make avatar and label one button
2022-06-30 12:56:36 +03:00
Doug
baeffd2121
#40: Add server selection screen from EI. 2022-06-30 10:49:00 +01:00
Anderas
dd739d4766
Implement new ClientBuilder pattern for login (#120)
* Implement new ClientBuilder pattern for login

* Add changelog
2022-06-30 08:10:59 +01:00
ismailgulek
7bd4763662
Add localizations to UI tests target (#118) 2022-06-29 18:32:14 +03:00
ismailgulek
dbee1924eb
Background execution (#100)
* #99 Implement background tasks

* #99 Add changelog

* #99 Fix some code smells

* #99 Use background tasks in room timeline controller

* #99 Move background task service into room proxy and media provider
2022-06-29 13:03:28 +03:00
Doug
d74158ced1
#40: Add the login screen from EI.
- Remove SSO and replace fallback with OIDC.
2022-06-28 12:23:35 +01:00
ismailgulek
cc14f1f567
Towncrier fixes (#97) 2022-06-27 20:41:00 +03:00
ismailgulek
36c34503fc
Plain timeline styler (#94)
* #92 Create `TimelineStyle` and store it in user defaults

* #92 Create `TimelineStyler` observable environment object

* #92 Use timeline list row insets from the styler

* #92 remove sender view, move header into the styler views

* #92 Add timeline style option in settings

* #92 Add changelog

* #92 refactor some code duplications

* #92 Fix `TimelineStyle`targets

* #92 Fix `TimelineStyle` targets

* #92 Fix PR remarks

* #92 Fix inline PR comments

* #92 Fix UI tests

* #92 Rename bubbled to bubbles
2022-06-27 13:27:09 +03:00
ismailgulek
b6b8b4be26
Room screen: timeline message bubbles (#91)
* #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
2022-06-23 14:54:29 +03:00
Doug
5df1411a7e Update DesignTokens to 0.0.2 2022-06-22 14:13:54 +01:00
ismailgulek
7dcd494de8
Room screen header (#86)
* #35 Create `ElementNavigationController` subclass

* #35 Add encryption icons

* #35 Add avatar and encryption badge image to the room screen view model

* #35 Create `RoomHeaderView` class

* #35 Replace room title with a RoomHeaderView instance in the toolbar

* #35 Add changelog

* #35 Introduce `UITestScreenIdentifier` and refactor ui tests

* #35 Fix old tests

* #35 add some tests for room screen

* #35 Use svgs instead of pngs

* #35 Fix PR remarks
2022-06-21 20:28:42 +03:00
ismailgulek
ffd3ffa369
Danger: Add png check (#88) 2022-06-21 18:49:02 +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
40e51fb157
Auto dismiss bug report when completed (#83)
* #76 Show success indicator on settings coordinator when bug report completed

* #76 Add changelog

* #76 remove unused method

* #76 Rename `errorIndicator`s to `statusIndicator`s
2022-06-20 13:06:29 +03:00
ismailgulek
4738f3016d
Add GH labels to bug reports (#84) 2022-06-17 15:54:45 +03:00
Doug
abd6a9c7c0 #40: Self review for PR 2022-06-16 10:58:39 +01:00