Commit Graph

56 Commits

Author SHA1 Message Date
Doug 2c1e61a1bc Add SwiftLint rule to enforce stack spacing. (#2080)
Xcode 15 changes the default behaviour and given we're always working from designs, we shouldn't rely on it for our layout.
2023-11-14 12:38:38 +00:00
Alfonso Grillo 752ad66397 Add scaledFrame/scaledPadding APIs (#2079)
* Add scaled frame and padding modifiers

* Refactor AppLockScreen

* Refactor FormattingToolbar

* Refactor RoomAttachmentPicker

* Refactor ComposerToolbar

* Refactor VoiceMessageRecordingButton

* More refactors

* Refine ScaledPaddingModifier

* Cleanup

* Fix preview tests

* Fix preview test

* Use CompoundIcon for custom image

* Add .scaledFrame(size:) overload

* Set fallback style to .body
2023-11-14 12:20:34 +01:00
Doug 4257c20bc9 First round of icon updates. (#2076)
Update Compound too.
2023-11-13 16:44:29 +00:00
Nicolas Mauri acd079199a Display voice message progress cursor if progress is greater than zero (#2077) 2023-11-13 16:41:38 +01:00
Stefan Ceriu bc46c48b2e Update room summary provider mock room details and snapshots 2023-11-13 17:02:02 +02:00
Stefan Ceriu 5c4e0bd76d Display whether a call is ongoing in any particular room on the room list 2023-11-13 17:02:02 +02:00
Doug b4ec04ec26 Update the welcome screen with the latest designs. (#2067) 2023-11-13 09:42:43 +00:00
Nicolas Mauri da831f6725 New voice message recording mode (#2051)
* Lock voice message recording

* Use the VoiceMessageCache to store the recording file

* Rework on some composer toolbar buttons

* Update accessibility labels for voice message recording button

* PreviewTests
2023-11-10 15:32:22 +00:00
Stefan Ceriu abe2080ee2 Extract room screen action handling into separate component (#2045)
* Extract room screen action handling into separate component

* Fix tracing configuration unit tests

* Move the custom reactionsCollapsedBinding to the TimelineReactionsView

* Move voice message playback handling from the timelineController to the room view model

* Reorder methods

* Remove the need for a media player provider in the timeline controller

* Move room attachments opening to the view model, remove the need for a media provider in the timeline controller

* Rename RoomScreenActionsHandler -> RoomScreenInteractionHandler

* Move message sending retry and cancellation to the timeline controller.

* Move audio playback, attachment loading and  user tapping handling into the InteractionHandler

* Fix unit tests

* Switch back swiftlint file_length rule error to 1000 lines
2023-11-08 18:31:39 +02:00
Stefan Ceriu 5823af6a91 Secure backup fixes (#2037)
* Fix logout alert title and message

* Disable auto correction and capitalization on the recovery confirmation screen

* Allow scrolling in the key verification screen for when the key needs to be confirmed and the keyboard is up.

* Address PR comments
2023-11-07 09:23:15 +02:00
Alfonso Grillo 4af8ef2a5f Voice message UI polish (part 2) (#1995)
* Update compund

* Fix create poll screen bin button style

* Fix timeline menu description for voice messages

* Fix bin button in ComposerToolbar

* Add VoiceMessageButtonStyle

* Update compound & fix breaking changes

* Fix voice message bin size

* Refactor VoiceMessageRecordingButton

* Fix preview tests
2023-11-01 10:03:35 +01:00
Doug b2f30974e3 Add missing gradient to lock screen placeholder. (#1991) 2023-10-31 13:25:18 +00:00
Doug 87f772647b Update Compound with new Pill colours. (#1989) 2023-10-31 10:47:06 +00:00
Doug af3732541e Enable the App Lock feature. (#1990) 2023-10-31 08:55:30 +00:00
Doug f63771d1dc Enable Element Call FF by default. (#1983)
- Aligns with the same change on Android.
- Remove the now unused FF for mention pills.
2023-10-30 17:04:01 +00:00
Stefan Ceriu a837ce5cff Key backup Rust API adoption (#1952)
* Adopt Rust side secure backup APIs (incomplete, based on poljar/backup-pr)

* Implement the home screen recovery key confirmation banner.

* Update with the latest Rust changes.

The loading button for .unknown was incorrect. It should be treated as disabled.

---------

Co-authored-by: Doug <douglase@element.io>
2023-10-27 20:16:51 +01:00
Mauro 0b31446817 Resizable Composer With Completion Suggestion View (#1971)
* resizable composer with suggestions view

* FF cleanup

* removing the view when the vertical size is compact

* merge conflict fix

* done

* solving a conflict

* Update ElementX/Sources/Screens/ComposerToolbar/View/CompletionSuggestionView.swift

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

* pr suggestion

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2023-10-27 13:54:30 +00:00
Doug 84a16091b2 Handle invalid PIN input in the settings flow. (#1972) 2023-10-27 14:08:06 +01:00
Alfonso Grillo acfc564490 Remove feature flag for voice messages (#1964)
* Delete voice messages feature flag

* Fix preview tests

* Update snapshots
2023-10-27 13:45:15 +02:00
Alfonso Grillo adfe855b99 Refactor voice messages touch interaction (#1970)
* Remove enable/disable long press actions

* Working poc

* Refactor interaction in VoiceMessageRoomPlaybackView

* Cleanup DateFormatter

* Fix VoiceMessagePreviewComposer

* Cleanup

* Delete WaveformViewDragState

* Refactor WaveformCursorView

* Cleanup

* Add WaveformInteractionModifier

* Add selection hapitc feedback

* Fix ComposerToolbar ZStack alignment

* Refine cursor size

* Remove haptic feedback

* Fix preview test

* Delete longPressDisabledItemID

* Remove progress animation

* Project file
2023-10-27 10:08:30 +00:00
Mauro 24835a566e Removed Pill Avatar + @room is not displayed among suggestions for DM (#1968)
* removed pill avatar

* completion suggestion service shows @room as first and only if not a DM

* code improvement
2023-10-27 09:29:20 +02:00
Alfonso Grillo a1bbc7ecce Voice messages UI polish (#1959)
* Add VoiceMessageButton

* Add VoiceMessageRecordBadge

* Make composer transition faster

* Use VoiceMessageButton

* Adjust recording badge

* Update localisation key

* Remove animation in VoiceMessageButton

* Fix preview tests

* Cleanup

* Update preview tests
2023-10-26 09:05:42 +00:00
Nicolas Mauri 86bcb82cca Fix: Voice recording tooltip location (#1961)
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2023-10-25 19:30:41 +00:00
Nicolas Mauri af76be2426 Remove the border around the voice message composer (#1962) 2023-10-25 17:07:59 +00:00
Mauro c04e812a02 Replies now display mentions with @displayname (#1957)
* reply with mentions

* fixed a bug and wrote a test for it

* error message
2023-10-25 18:39:18 +02:00
Nicolas Mauri c020ba2d85 Fix: do not hide keyboard when recording a voice message (#1958) 2023-10-25 15:39:57 +00:00
Doug c6e4dc2a37 Initial implementation for AppLockSetupFlowCoordinator. (#1949)
Rename AppLockSettingsScreen to AppLockSetupSettingsScreen.
Implement forced logout and persist PIN entry attempts.
2023-10-25 11:03:37 +00:00
Nicolas Mauri 30b18031a0 Add a progress indicator to voice message preview (#1956) 2023-10-25 10:27:00 +00:00
Mauro 1ba6fb0a60 Suggestions view design improvements (#1955)
* snapshot tests

* making the padding of the composer internal

* setting the max width using the line fragment

* setting the max width using the line fragment

* Update ElementX/Sources/Screens/ComposerToolbar/View/CompletionSuggestionView.swift

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

* updated tests and pr suggestions

* better stencil

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2023-10-24 19:09:36 +02:00
Nicolas Mauri f9ad44f96a Fix playback and recording of voice messages (#1948) 2023-10-24 16:49:42 +00:00
Alfonso Grillo 6e5680fc36 Update permission alerts (#1953)
* Update system alerts

* Update localisations

* Update localizations
2023-10-24 14:57:27 +00:00
Nicolas Mauri 2f57fbc77d Allow to record a voice message (#1926) 2023-10-23 15:47:36 +00:00
Doug 65b7c1df20 Add AppLockSetupBiometricsScreen. (#1942) 2023-10-23 16:18:25 +01:00
Mauro db79784b8e new pill view color and size (#1933) 2023-10-23 16:55:04 +02:00
Alfonso Grillo 30e6d823c5 Fix EstimatedWaveform amplitudes (#1939)
* Fix range

* Add data range & cleanup

* Fix preview tests
2023-10-23 14:42:56 +00:00
Doug 5356a56a00 Add AppLockSetupPINScreen. (#1930) 2023-10-23 09:07:13 +00:00
Doug ceee6b1853 Implement AppLockScreen as per the designs. (#1925)
Fix a bug in the unlock flow
2023-10-20 17:35:57 +01:00
Stefan Ceriu c8b9d95122 #1899, #1900, #1901 - Implement chat backup setting screens 2023-10-19 15:34:10 +03:00
Doug ebd9f4c916 Add App Lock settings screen (#1917) 2023-10-19 12:26:34 +01:00
Nicolas Mauri 9ab3b20a49 Add UI to record a voice message from the composer toolbar (#1892) 2023-10-16 15:18:51 +00:00
Doug 2c5662a278 Remove DesignKit package (#1886)
- Move button styles to Compound
- Rename text style to AuthenticationTextStyle as its only in the auth flow.
- Add the brand colour locally for now until its included in Compound.

* Update snapshots.

---------

Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>
2023-10-12 15:45:27 +01:00
Stefan Ceriu ff4d59bac7 Various optimisations (#1878)
* Cache TimelineBubbleLayout subview sizes

* Cache MessageText sizes, avoid extra updates

* Only use the `CollapsibleReactionLayout` if there's more than 5 reactions on a particular message

* Upgrade Sentry to 8.13.0, disable various options as they're not useful and impact performance

* Address PR comments, fix unit tests
2023-10-11 16:21:45 +03:00
Nicolas Mauri b35bee5d8f Improved display of voice messages in the timeline (#1873) 2023-10-10 16:20:31 +00:00
Stefan Ceriu 1f12a7cb2f Fixes 1864 - Message forwarding room list filtering and pagination problems (#1867)
* Fixes 1864 - Message forwarding room list filtering and pagination problems

* Fix SwiftFormat redundant closures body error

* Prevent crashes when writing to the localization bundle cache from different threads

* Fix unit tests

* Fix unit tests

* Address PR comments
2023-10-09 14:59:31 +03:00
Mauro 8270a868a7 Completion Suggestion view for user mentions (#1859)
* created the list but I need to find a way to overlay it

* make the list able to have an intrinsic height

* best solution so far but does not work with expansion

* needs testing

* more scalable solution

* tests completed

* changelog

* injecting the media provider

* fix tests

* pr suggestions

* better testing
2023-10-06 15:47:31 +02:00
Stefan Ceriu 72a96b6850 Advanced settings fixes (#1857)
* vector-im/element-meta/issues/2042 - Fix advanced options ordering and capitalisation

* Bump swiftlint's type_body_length warning to 1000, make it match error.

* Fix unit tests
2023-10-05 17:26:02 +03:00
Nicolas Mauri 3ff983a48b Fix the room summary and reply view for voice messages (#1856) 2023-10-05 09:22:16 +00:00
Nicolas Mauri 82abd0aaf3 Add voice message playback from the timeline (#1844) 2023-10-04 16:32:45 +00:00
Mauro b7c46ceac3 @room pill (#1834)
* all users mention pill + red higlight for own mentions

* more tests

* changelog

* removed useless if let
2023-09-29 15:40:31 +02:00
Mauro 7bde419e85 Pill View (#1797)
* provider can now check the current session

* More testable code

* created the test condition

* it works but not always not sure why, need to dig deeper

* sadly we need to use textkit 1 to solve this issue

* removed developer option screen test

* this experimental solution kinda works but I need a way to pill recomputation is weird

* format

* display improvement

* better and faster solution

* pilished the code

* better coloring

* swift format

* just need to solve the caching issue

* fix caching issue

* tests done!

* changelog

* pr comments addressed

* all pr comments addressed

* docs

* line lenght

* updated tests and fixed a parsing permalink issue

* MentionBuilder

* pr comments

* swiftformat

* code blocks should not have links

* Update ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift

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

* Update ElementX/Sources/Services/Client/ClientProxy.swift

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

* Update UnitTests/Sources/AttributedStringBuilderTests.swift

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

* Update ElementX/Sources/UITests/UITestsAppCoordinator.swift

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

* Update ElementX/Sources/Other/Pills/PillAttachmentViewProvider.swift

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

* Update ElementX/Sources/Other/Pills/MentionBuilder.swift

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

* pr comments

* swiftformat

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2023-09-27 17:27:07 +00:00