228 Commits

Author SHA1 Message Date
Doug
8f2904701b
Fix more unit tests. (#1406)
- Randomise test order.
- Use deferred fulfilment in more places.
- Make sure to change something before awaiting the fulfilment.
- Build a fresh AppSettings after reset().
- Retry tests on failure.
2023-07-27 12:38:48 +01:00
Alfonso Grillo
90ff2df00e
Refactor TimelineItemBubbledStylerView for polls (#1404)
* Refactor bubble bg colors and insets

* Improve MapLibreStaticMapView layout

* Add BubbleTimestampLayout

* Refactor BubbleTimestampLayoutType

* Refine .horizontal, .vertical layouts

* Rename layout type

* Add docs

* Restore LocationRoomTimelineItem body

* Refactor whitespaces

* Fix background color for LocationRoomTimelineView.

* Fix UTs

* Fix analytics ui tests

* Fix bug report tests

* Fix settings ui tests

* Rename private property

* Record room screen tests
2023-07-26 15:17:41 +00:00
Nicolas Mauri
ed68ed1c91
Edit the room Notification setting (#1394) 2023-07-26 09:27:14 +00:00
Mauro
7cf32ba37c
SwiftUI timeline refactor + TimelineViewState decoupling (#1392)
* swiftUI conversion + scroll to bottom

* remove unused

* back pagination implemented, however when a lot of elements are in the scroll the perfomance diminishes not sure what may be causing it

* scroll adapter solution

* way better

* works but height animation in cells are broken

* code improvement

* everything implemented

* rebase fix

* fix

* doc

* fix test compilation

* code improvement and animation improvement

* code improvement

* code improvements

* tests updated.

* pr comments

* better identifiers

* fix

* some PR comments

* pr comments
2023-07-25 12:20:13 +00:00
Doug
fbe05a8679
Compound Room Details (#1369) 2023-07-21 14:22:09 +01:00
Alfonso Grillo
e92b2c94ed
Refactor map styles for forking (#1364)
* Add MapLibreStyle

* Refactor url builders

* Add doc

* Add UTs

* Rename style

* Improve doc

* Update project

* Amend doc

* Improve documentation
2023-07-20 15:09:50 +00:00
Stefan Ceriu
5f8efefe19
Fixes #1262 - Compute correct sizes for portrait videos (#1367)
* Fixes #1262 - Compute correct sizes for portrait videos

* Add unit test

* Tweaks following code review
2023-07-20 10:30:43 +00:00
Mauro
caeb86e178
Better identification system for virtual items (#1361)
* better identification system

* better handling for unknown
2023-07-19 14:29:56 +00:00
Alfonso Grillo
79fcfcd61b
Update errorMissingLocationAuth (#1341) 2023-07-17 13:19:28 +00:00
Mauro
2baeb13ebc
Updating members after an ignore/unignore action has been performed. (#1327)
* fix

* format

* update members
2023-07-17 10:57:47 +00:00
David Langley
b31af77686
Reactions: Add more button (#1314)
* Add expand/collapse UI for reactions

- Adds a CollapsibleFlowLayout for controlling the layout
- Adds tests for  this layout and some mocks for testing layouts generally
- Improves the rendering of the reaction buttons which were not pixel perfect
- Adds the UI for the expand collapse buttons including the count of hidden items in the collapsed state.

* Add comment for reactionsCollapsed binding.

* Add the add more button and change the layout to be reactions specific and account for the add more button specifics.

* Update CollapsibleReactionLayout.swift

* Rename lines to rows, to hopefully ease the incoming merge.

* Add LayoutValueKey to organise subviews by item type.

- create ReactionLayoutItemType to tag subviews with ReactionLayoutItem
- Add LayoutValueKey support to the layout mocks
- Fix some mistakes in the merge
- Make the test code a bit more DRY
- Make the animation of the addMore and collapse buttons consistent

* Fix naming of the add more button label

* Address comments and fix padding

- Fix typos
- Use pdf/svg for icon
- Fix incorrect padding from a bad merge

* Fix "Add more" button padding to match designs

* Update snapshot test reference images.

* Fix naming, add Preserves Vector Data
2023-07-14 16:32:32 +00:00
David Langley
a44a60cb0a
Sort reactions on the timeline by count and then timestamp and show the date on the summary view (#1320)
* Sort timetamps on timeline and show the date on the summary view

- Sort reaction aggregations on the timeline by count and then by most recent timestamp ascending(tagging new reactions on the end)
- Show the timestamp on the summary view and sort descending(newest at the top)

* Address comments.

- Fix ID case.
- Improve readability of components in body.
- Improve the comments that describe the sorting.
2023-07-14 17:18:32 +01:00
David Langley
bf91e97c88
Remove Task.sleep from NotificationTests. (#1326)
- Add `weak` to mock variables called `delegate`
- Delete `UserNotificationCenterSpy` and use `UserNotificationCenterMock`
- Remove Task.sleep in favour of mock closures along with expectations/fulfillment.
2023-07-14 13:45:42 +01:00
Nicolas Mauri
dfdaee0563
Add a "Mute" shortcut and a "Notifications" section in the room details screen #1318 2023-07-14 11:43:19 +02:00
Alfonso Grillo
a7256bb486
Move Map Libre API key to Xcode Cloud (#1313)
* Add config_production lane

* Add maplibre to .gitignore

* Add setupMapLibreKey

* Add documentation

* Fix failing UTs

* Fix more UTs

* Cleanup

* Add secrets.xcconfig

* Cleanup gitignore file

* Update post-checkout hook

* Cleanup SetupProject

* Update project

* Remove leftover in SetupProject

* Cleanup project.yml

* Add fastlane-plugin-xcconfig

* Improve test

* Update docs
2023-07-14 10:19:38 +02:00
David Langley
3ff257c075
deferFulfillment all the things (#1306) 2023-07-12 17:59:46 +00:00
Mauro
76506752b4
SDK Changes Refactor (#1312)
* internal id

* notification refactor

* client proxy refactor

* required self

* better identifier system

* using the event id when required

* tests fixed

* tested some stuff

* fixed merge conflict

* improved the test wait

* animation disabled

* Bump Rust SDK version to 1.0.98-alpha (#1310)

* code improvement

* pause sync

* pr suggestions

* result

* Apply suggestions from code review

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* enum based debug identifier

---------

Co-authored-by: aringenbach <80891108+aringenbach@users.noreply.github.com>
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2023-07-12 10:28:41 +00:00
Alfonso Grillo
adb253ff66
Send location uncertainty within a geo uri (#1309)
* Add uncertainty

* Add UTs

* Delete verticalAccuracy
2023-07-12 09:02:05 +00:00
Mauro
c573892954
Contact me added in Bug Report Screen (#1307)
* contact me added

* fixing tests
2023-07-12 08:20:51 +00:00
Flescio
153149d93f
Send current user location (#1272)
* add new asset for location, add logic for sharing user current location

* work on default zoom and auth for location

* add attribution button

* fix attribution button position, fix isSharingUserLocation

* Add NSLocationWhenInUseUsageDescription back

* Fix initial animation

* change map logo and attribution position

* Add annotation just in the setup

* add errors and alert for map vies

* location unit test

* add unit test for location sharing

* add changelog

* Update ElementX/Sources/Other/MapLibre/MapLibreMapView.swift

Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>

* add comments and minor parameters refactor

* Update ElementX/Sources/Screens/LocationSharing/StaticLocationScreenCoordinator.swift

Co-authored-by: Mauro <34335419+Velin92@users.noreply.github.com>

* Update ElementX/Sources/Screens/LocationSharing/StaticLocationScreenViewModel.swift

Co-authored-by: Mauro <34335419+Velin92@users.noreply.github.com>

* Sort assets

* Cleanup

* Cleanup

* Fix error localizations

* Fix tests

---------

Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
Co-authored-by: Mauro <34335419+Velin92@users.noreply.github.com>
2023-07-11 10:42:59 +00:00
Michael Kaye
5e97a4a0fa
Performance tests (#1301)
* Add signposts to performance tests.

- Update flow to include support for the migration screen.

* If the welcome screen shows, click on the button.

* Ensure a clean simulator each run.

* Add accessibility identifier for migration screen if required.

* Handle walking into the room and back out again.

* use iphone 14 pro to match what's used in xcode.

* Remove ApplicationTests as duplicated in LoginTests.

We measure app startup time in LoginTests as part of the flow - we may as well avoid spending 60s doing only that measurement in ApplicationTests

* Sleep 10s, the ui is otherwise showing up in random order.

* Revert "Remove ApplicationTests as duplicated in LoginTests."

This reverts commit 8670710315bcd0d6c3c3046f534b32b4c728b837.

* Update script to parse out correct values from results file.

* Allow cancellation of password prompt in any order.

* Remove test timeout, performance tests will always take a while.

* Adjust parsing further

* Remove ApplicationTests.

* Move to a more elegant way to wait for something to disappear.

* Linting.

* Fix unit tests.

---------

Co-authored-by: Doug <douglase@element.io>
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2023-07-11 10:32:24 +01:00
Mauro
28fa1140b7
Removing Delivered Notifications (#1305)
* completed

* changelog

* tests

* more tests

* better naming

* fix

* a bit more waiting time

* generated mocks

* xcodegen
2023-07-11 10:44:06 +02:00
Alfonso Grillo
98dabe8500
Optimize invites list (part 2) (#1268)
* Optimise invites list

* Fix failing tests

* Cleanup

* Add weak self

* Refactor ReportContentViewModelTests
2023-07-11 08:08:27 +00:00
Nicolas Mauri
5ae227179c
New notifications section in settings (#1273) 2023-07-10 17:26:49 +00:00
David Langley
2cec1858ff
Add expand/collapse UI for reactions (#1249)
* Add expand/collapse UI for reactions

- Adds a CollapsibleFlowLayout for controlling the layout
- Adds tests for  this layout and some mocks for testing layouts generally
- Improves the rendering of the reaction buttons which were not pixel perfect
- Adds the UI for the expand collapse buttons including the count of hidden items in the collapsed state.

* Add comment for reactionsCollapsed binding.

* Remove Flow and simplify implementation

- Remove SwiftUI-Flow
- Add strings by importing from Localyse
- Remove count on expand button as requires GeometryReader and can cause loops
- Don't use GeometryReader for hiding reactions with opacity(just put them way off screen for now)
- Fix unit and UI tests

* Address PR comments

- use synthesized inits
- use rows rather than lines for naming flow layout
- other naming improvements
- reactions were already rendered in another ui test, removing my test on favour of those and updating the screenshots for those.
2023-07-10 15:13:58 +00:00
David Langley
83e27564d5
Add xcDeferFulfillment to help with tests that have publishers. (#1278)
* Add xcAwaitDeferred to aid with tests that have publishers.

* Improve naming

* Address Comments

- Fix naming
- Add optional expectation message
- Use trailing closure syntax
2023-07-07 15:08:32 +01:00
Alfonso Grillo
3afb8fa867
Improve user profile search (#1266)
* Filter account owner in UserDiscoveryService

* Add tests and refine logics
2023-07-06 15:53:31 +02:00
Mauro
00636d98da
Welcome Screen (#1259)
* the screen renders and changed the analytics checkmark to be more generic

* welcome screen

* transition

* tests... TODO

* changelog

* changed assets and added multilineTextAlignment

* better naming

* fix for missing after migration but has a weird presentaiton bug

* fix

* icon color
2023-07-05 17:55:24 +00:00
Alfonso Grillo
d15d0e0070
Add location related analytics (#1241)
* Refactor trackComposer method

* Track location screen

* Refactor isPinDropSharing -> isSharingUserLocation

* Add trackComposer event

* Fix UTs

* Cleanup

* Add AnalyticsLocationType
2023-07-05 12:54:03 +02:00
Mauro
b294278170
Refactor the NSDiffableDataSourceLayer (#1235)
* first part, using references

* better animations

* delete view provider and replaced wth two files

* ordered dictionary usage

* bubbled styler view previews

* plain style is back

* fix

* read marker previews restored

* updated tests

* code improvements

* better naming
2023-07-04 14:08:43 +00:00
Doug
2025dd9517
Migration Screen (#1224)
- Hide bottom bar when in skeletons.
- Use the new design for the Waitlist screen too.
2023-06-30 13:27:49 +01:00
Alfonso Grillo
3a6876f385
Conform URL to ExpressibleByStringLiteral (#1214) 2023-06-29 13:47:04 +00:00
David Langley
98cec5672c
Reaction summary and flow layout for reactions (#1158)
* Add reaction summary view

* Add avatars and display names and flowlayout for reactions

- Add avatars to summary view
- Add display names to summary view
- Add flow layout to reaction buttons as per designs(long press on  scolling buttons is difficult to achieve so prioritised this).

* Add and use SwiftUI-Flow for reaction layout.

* Correct Swift-Flow inclusion via xcodegen

* Remove own FlowLayout implementation and Fix unit tests

* Improve naming and correct spacing on summary view as per design.

* Fix safe area insets on summary view bottom sheet

* Scroll to selected reaction in the case that it is offscreen when the sheet is displayed.

* Add more reactions to UITests to ensure the new flow layout is displayed(wraps on to second line).

* Fix snapshot image.

* Address review comments.

* Use onLongPressGesture for reactions also to fix double actions bug and for consistency.

* Respect RTL languages.

* Fix unit test.
2023-06-29 10:53:44 +01:00
Alfonso Grillo
3f6bfbcc14
Open map from timeline (#1199)
* Add navigation to expaneded map

* Add MapLibreMapView.Options

* Add AppActivityView

* Add ShareToMapsAppActivity

* Add share sheet presentation

* Add localisations

* Cleanup

* Fix UT build errors

* Revert breaking change

* Fix UIView setup

* Add support for location’s description

* Show popover on iPad

* Restore assets

* More cleanup
2023-06-29 09:12:42 +00:00
Doug
afbb0a8260
Replace FilePreviewScreen with InteractiveQuickLook. (#1187)
* Replace FilePreviewScreen with InteractiveQuickLook.

- Allows full screen presentation.
- Allows dismiss gesture to work.
- Presentation looks much better on macOS.
2023-06-28 15:32:16 +01:00
Flescio
102e6a64fa
Send pin-drop location (#1179)
* add location sharing action in room, and open location sharing screen

* add pin location sharing

* fix asset, add tests for location viewModel, add send location request

* fix map zoom level, fix assets for location

* add feature flag for location sharing

* hide attribution button
2023-06-28 09:39:38 +00:00
Stefan Ceriu
2ebe534fb3 Implement all emoji text message boosting 2023-06-28 11:33:57 +03:00
Stefan Ceriu
e6711a0236 Removed unused swipe gesture (+3 squashed commits)
Squashed commits:
[d64bb3bb] Stop using the ServiceLocator directly in the ScreenTrackerViewModifier
[37c46ab9] Rename Analytics to AnalyticsService
[8852a371] #920 - Cleanup ServiceLocator usages
2023-06-28 11:33:41 +03:00
Doug
2fce96d540
Handle waiting list error. (#1165) 2023-06-26 18:26:20 +01:00
Alfonso Grillo
07a6235fac
Render location events in the timeline (#1136)
* Start location integration in the timeline

* Add warning

* Add LocationRoomTimelineView

* Add GeoURI

* Refine LocationRoomTimelineView

* Refine LocationRoomTimelineView

* Add LocationRoomTimelineView previews

* Cleanup code

* Mock reply

* Add FF for location events

* Update project file

* Fix MapLibreStaticMapView placeholder

* Add MapTilerAttribution

* Add LocationPinView

* Fix layout

* Start reply rendering

* Refactor ReplyView.Icon

* Add localisations

* Fix reactions

* Amend GeoURI regex

* Add log

* Fix tests

* Attribution placement refactor

* Cleanup

* Replace NSRegularExpression with a regex

* Cleanup

* Update unit tests

* isMediaType -> shouldFillBubble
2023-06-23 12:49:35 +02:00
Mauro
6018221e1e
sdk bump, last one for today I swear (#1134) 2023-06-22 14:51:42 +00:00
Stefan Ceriu
e65a2d2431
Various tweaks (#1129)
* Fixes #1121 - Hide the loading indicator after the logout task finishes

* Manually restart the sync only when entering the `error` state

* Use stopSync instead of the roomListService directly on client deinit

* Replace WeakClientProxyWrapper with callback based delegate

* Fix homescreen user avatar not automatically updating

* Replace default Build SDK profile with reldbg, which is fast but also doesn't crash

* Always show the loading indicator when the room list is not in a `running` state

* Implement delayed user indicator presentations through the normal API

* Fix the unit tests

* Replace UserIndicatorController delayedIndicators dictionary with a plain set
2023-06-22 15:04:20 +03:00
Mauro
8e8bb7a3e7
SDK Bump to 1.0.80 and push notifications filtering (#1131)
* filtering nil notifications

* updated the sdk
2023-06-22 11:24:37 +00:00
Stefan Ceriu
2ae8f471c6
Fixes #978 - Message forwarding support
* Add support for message forwarding

* Move the TimelineProvider within the RoomProxy to avoid it going out of sync and have it automatically register for timeline updates on init

* Implement single selection form button style for message forwarding

* Add searching and filter out the source room from the list

* Fixed emoji screen initial search bar height

* Add view models tests

* Add changelog

* Update strings

* Tweaks following code review
2023-06-21 12:10:14 +03:00
Stefan Ceriu
863492985d
Various UI tweaks (#1112)
* Tweak invites button frame and padding

* Implement persistent selections on the room list

* Stop showing rooms when focusing the room list search field with an empty query

* Tweaks after code review

* Improve invite button UI

* Fix unit tests
2023-06-20 12:20:26 +03:00
Stefan Ceriu
d2d626f724
Add support for the new RoomList API (#1092)
* Add support for the new RoomList API

Squashed commits:
[8c2625a] Re-enable invites
[339e59b5] Add automatic syncing restarts after entering the terminated state for whatever reason
[b5498e96] Reimplemented room list state management and usage
[8154b0cf] Fix visible rooms range setting after scrolling stops
[5155c44d] Hook up initial loading idicator and session verification banner to room list service states
[700a5a2e] Enable back room subscriptions, timeline listeners and unread notifications / counts
[9df383bc] Enable last messages and timestamps, they don't crash on release builds
[7c4da9da] Add back certain fields now that the "full room" is available
[9f6534a7] Adopt interfaces to new RoomList API, untested as requests don't go to the right URL

* Tweaks following code review

* Bump the RustSDK to v1.0.76-alpha
2023-06-16 16:11:45 +03:00
Mauro
ac41704821
Retry send and cancel send for failed to send messages (#1088)
* is now possible to open the confirmation dialog and pass the transaction id

* task completed added some tests

* changelog

* title visibility set to .visible
2023-06-16 11:00:54 +02:00
Mauro
2cfc844545
Refactored alert info to not use the soon to be deprecated API (#1084)
* refactored alert info to not use the soon to be deprecated API

* missing files and changelog

* updated some tests

* Update ElementX/Sources/Screens/RoomMemberDetailsScreen/View/RoomMemberDetailsScreen.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2023-06-14 14:24:10 +00:00
Alfonso Grillo
73eeb051c6
Fix regression on direct chat details (#1071)
* Fix regression

* Fix UTs
2023-06-13 11:43:25 +00:00
Mauro
1be74e6e69
SDK Bump to 1.0.74 (#1059)
* testing improvements

* code improvements and sdk bump

* improved the stencil file

* improved the build sdk function

* code improvement

* also added the tearDown
2023-06-09 16:27:08 +00:00