Commit graph

325 commits

Author SHA1 Message Date
David Langley
158ef08eec UITests and Mock Screens
Adds the test targets for Unit and UI tests
Adds mock screen data and utilities to render each mock screen for previews/ui tests.
Changes Published property in the service to CurrentValueSubject. we don't need the synthesized aspect of Published and property wrappers cannot be included in protocols.
2021-09-09 16:23:00 +01:00
David Langley
7893fa99bd Merge branch 'langleyd/4781_swiftui_template_examples' of https://github.com/vector-im/element-ios into langleyd/4781_swiftui_template_examples 2021-09-09 10:50:42 +01:00
David Langley
dc0347144a Make reducer static, pass viewState directly to reducer, log reducer. 2021-09-09 10:50:39 +01:00
David Langley
273e07e3f9
Update RiotSwiftUI/Modules/Template/SimpleUserProfileExample/ViewModel/TemplateUserProfileViewModel.swift
Co-authored-by: manuroe <manuroe@users.noreply.github.com>
2021-09-09 10:34:25 +01:00
David Langley
dd191c07d1
Apply documentation suggestions from code review
Co-authored-by: manuroe <manuroe@users.noreply.github.com>
2021-09-09 10:31:41 +01:00
David Langley
d82120fbec fix build 2021-09-08 17:56:51 +01:00
David Langley
23f236805f Fix retain cycle 2021-09-08 16:37:56 +01:00
David Langley
5938fa5554 Extract presence listener setup out to own function. 2021-09-08 16:28:08 +01:00
David Langley
89bf79df7d CoordinatorParamters, Type -> Protocol, remove MX Prefix. 2021-09-08 15:47:24 +01:00
David Langley
0a7beb6744 Add template unit tests and publisher utility. 2021-09-08 15:32:41 +01:00
David Langley
45758166a1 Fix ordering, add pragmas, fix visibility on a few functions, remove default param on state. 2021-09-08 11:43:57 +01:00
David Langley
cc671a4bee Correct preview name and create template script 2021-09-08 00:00:34 +01:00
David Langley
82f61c65c2 Improve folder name 2021-09-07 23:04:52 +01:00
David Langley
7c91b23d61 Make naming of symbols consistent 2021-09-07 23:02:26 +01:00
David Langley
f9840f79ba Remove unneeded protocol and methods on VectortHostingController 2021-09-07 22:49:11 +01:00
David Langley
c1f9e6ec4a Add ViewActions and ViewModelActions for Coordinator
- also add Marks
2021-09-07 16:57:08 +01:00
David Langley
2b2275d0d7 Add Simple Template Example
- Add a simple Template example that shows a user profile with avatar, displayName and presence.
- ScreenCoordinator: closure based with less protocols and delegates.
- Reducer: Reducer function that manages all state modifications.
- SwiftUI View: Decomposes UI into appropriate sub components.
- Uses Theme and Dependency Management Infrastructure
2021-09-06 17:12:31 +01:00
David Langley
340ac5b3f6 Merge branch 'langleyd/4776_extract_swiftui' of https://github.com/vector-im/element-ios into langleyd/4781_swiftui_template_examples 2021-09-02 14:23:39 +01:00
David Langley
e984457941 Move complete room notification settings module to RiotSwiftUI and fix naming/directory structure. 2021-09-02 14:09:29 +01:00
David Langley
3f3f3a16f2 Exclude MatrixSDK and Coordinator folders from SwiftUI target 2021-09-02 10:16:08 +01:00
David Langley
43ad395e8d move full module and reorganize folders 2021-09-02 10:00:59 +01:00
David Langley
aacbb799a5 Fix filename typo 2021-09-02 09:43:54 +01:00
David Langley
7813cdd40a Add simple example with profile header, avatar and name. 2021-09-02 09:37:37 +01:00
David Langley
23fdb7c2a2 Clean up and make an application target so that debug works in live preview. 2021-09-01 14:28:47 +01:00
David Langley
790301ccb6 Finish extraction
- Moves SwiftUI code out of Riot and into RiotSwiftUI which has no dependency on Matrix SDK.
- Git wasn't smart enough to see the file moves. Most feature function has remain unchanged. 1 change I did make was remove NotificationSettingsViewModel's dependence on MxPushRule, so that the view model could be moved into RiotSwiftUI.
- Add LocaleProvider to abstract VectorL10n's use of Matrix SDK language so it can be used in RiotSwiftUI.
- Split Theme into UKit/SwiftUI version to remove RiotSwiftUI's dependence on ThemeService and ThemeV1.
- Migrated from ThemeObserver to ThemePublisher. We push updates to ThemePublisher so that we can remove ThemeService as dependency.
- Add .DS_Store to .gitignore
2021-09-01 12:34:38 +01:00