734 Commits

Author SHA1 Message Date
Alfonso Grillo e583f52c65 Edit poll UX (#2151)
* Add edit poll on room proxy

* Add CreatePollMode

* Add “edit poll” presentation flow

* Add delete poll section

* Inject editing poll

* Add submit action

* Refactor validation logic

* Add edit/delete actions

* Fix bubble timestamp for polls

* Update localisations

* Refactor CreatePoll -> PollForm

* Refactor tests

* Update rust sdk to 0.0.5-november23

* Update confirmation alerts

* Add edit support in TimelineItem menu

* Refactor a11y id

* Cleanup

* Fix failing tests

* Add tests

* Refine isEditable workaround

* Refactor timestamp in TimelineItemBubbledStylerView
2023-11-23 11:19:15 +00:00
Stefan Ceriu 0dbceceac3 Fixes #2147 - Automatically scroll the timeline to the bottom when sending a message 2023-11-22 18:29:31 +02:00
Mauro 7b812a45c3 Read Receipts sheet + enabled RR by default (#2123) 2023-11-21 12:38:39 +00:00
ElementRobot 2e1b0cc6a9 Translations update (#2118)
* Translations update

* Fix strings

---------

Co-authored-by: Velin92 <Velin92@users.noreply.github.com>
Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>
2023-11-20 14:51:00 +02:00
Doug f2391394a7 Cherry pick some missed Compound/layout changes that ended up in the Xcode 15 PR. (#2120)
Fix broken Settings screen snapshots.
2023-11-20 11:06:24 +00:00
Mauro 93c6aa684b Accessibility on RRs (#2094)
* added accessibility on the read receipts but there is something wrong in the generation

* voice over implementation for RRs

* Update ElementX/Sources/Screens/RoomScreen/View/Supplementary/TimelineReadReceiptsView.swift

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

* done

* changelog

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2023-11-16 16:51:25 +00:00
Mauro 003b494c90 Artificial delay when a message fails to send (#2091) 2023-11-16 10:09:29 +01:00
Alfonso Grillo 9f1092b0b6 Reply to a poll (#2087)
* Refactor TimelineItemReplyDetails for polls

* Fix reply for polls

* Update reply details factory

* Revert Poll Hashable conformance

* PR comments
2023-11-15 15:57:34 +00:00
Doug 4b3a373782 Use more Compound icons (part 2!) (#2082)
* Use Compound icons in ListRow.

* Add CompoundIcon(asset:) convenience initialiser.
2023-11-15 09:54:43 +00:00
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
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
Stefan Ceriu 0e6e8a5892 Fix drag and dropping files onto the timeline on Mac 2023-11-13 13:52:55 +02:00
Doug 61af01e6fb Don't show the call button on macOS (#2064)
Calls don't work in the web view on macOS.
2023-11-13 07:32:42 +00:00
Stefan Ceriu 5adbb3789e Fixes #660 - Expose message actions to voice over rotor (#2061)
* Fixes #660 - Expose message actions to voice over rotor

* Expose "message actions" accessibility action on polls and voice messages too.
2023-11-10 18:32:15 +02: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 019ca625ab Group together voice message and poll actions (#2054)
* Group together voice message and poll actions

* Extract nested switches into separate methods
2023-11-09 19:16:42 +02: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
Nicolas Mauri e04a55eaef Voice message recording enhancements (#2042)
* Use Combine to report AudioRecorder state changes

* AudioRecorder is now using AVAudioEngine instead of AVAudioRecorder

* Stop recording when audio configuration changes

* AudioRecorder error handling

* UnitTests

* Use Accelerate to calculate RMS
2023-11-08 10:19:28 +01:00
Stefan Ceriu 5dcb24add7 Expose Element Call settings in the developer options. Start using th… (#2039)
* Expose Element Call settings in the developer options. Start using the encryption widget parameter.

* Remove the Element Call feature flag
2023-11-07 16:12:03 +02:00
Alfonso Grillo 30e8753663 Improve TimelineAccessibilityModifier 2023-11-07 10:32:14 +01:00
Alfonso Grillo f7f3404312 Add TimelineAccessibilityModifier 2023-11-07 10:32:14 +01:00
Alfonso Grillo 6ad7dc7641 Delete .combine accessibility for bubble style 2023-11-07 10:32:14 +01:00
Alfonso Grillo 4985d410b3 Add voice message analytics 2023-11-03 12:44:52 +01: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
Alfonso Grillo b50b74b175 Ignore keyboard input in "voice message mode" (#1988)
* Update rte to 2.15.0

* Ignore keyboard input when in voice message mode
2023-10-31 11:47:10 +00:00
Alfonso Grillo 5439b650a0 Remove forward action for polls (#1973) 2023-10-27 20:35:18 +00:00
Nicolas Mauri a32a7c8f2c Fix: Keep the progress indicator visible after pausing or scrubbing a voice message. (#1969) 2023-10-27 15:24:22 +00: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
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
Nicolas Mauri aa766f2eac Add some logs to allow debugging of voice messages in rageshake (#1967) 2023-10-26 17:22:41 +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
Mauro d457736673 Check Application state before sending RR (#1960)
* check the state

* better handling

* protocol to mock the application state

* test improvement
2023-10-25 19:16:37 +02: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
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
Stefan Ceriu 37f1a79a11 Key backup returns (#1951)
* Converge on UserSessionFlowCoordinator logout confirmation

* Add logout confirmation screen strings to untranslated.

* Fix chat backup learn more URl fragment.

* Implement logout flows that check recovery and key backup for the last session

* Move logout confirmation screen strings to localazy

* Change encrypted timeline item copy to "Waiting for decryption key"

* Use different encrypted history banner based on key backup states

* Introduce a SettingsFlowCoordinator and implement navigation directly to the secure backup screen from the logout flows.

* Fix **mocked** secure backup controller flows

* Simplify encrypted history banner logic

* Address PR comments
2023-10-24 18:38:41 +03:00
Alfonso Grillo 6e5680fc36 Update permission alerts (#1953)
* Update system alerts

* Update localisations

* Update localizations
2023-10-24 14:57:27 +00:00
Stefan Ceriu c885585b6b Bump the RustSDK to v1.1.26, adopt the new room hasActiveRoomCall state property 2023-10-24 16:23:14 +03:00
Alfonso Grillo 8ff1c753a6 Voice message loader & error handling when sending (#1945)
* Add loader & error handling

* Refactor PlainButtonStyle() -> .plain
2023-10-24 13:20:16 +00:00
Nicolas Mauri 2f57fbc77d Allow to record a voice message (#1926) 2023-10-23 15:47:36 +00:00
Mauro 1d1f76ff43 Send Intentional Mentions (#1929)
* updated sdks

* fix waveform

* implementation completed

* intentional mentions test

* removed unused var

* suggestion
2023-10-20 16:51:25 +03:00
Alfonso Grillo fbcf037240 Voice message waveform from audio files (#1919)
* Add DSWaveformImage

* Add estimated waveform

* Add progress mask modifier

* Add real waveform

* Fix cursor

* Fix scale factor

* Refine ProgressMaskModifier

* Refine waveform logic

* Add docs

* Add waveform placeholder
2023-10-19 11:01:45 +02:00
Stefan Ceriu 6e8dff2ef6 Implement support for ElementCall through Rust side widgets (#1906)
* Implement support for ElementCall through Rust side widgets

* Add Element Call feature flag

* Fix the unit tests

* Address PR comments
2023-10-17 12:41:56 +03:00
Nicolas Mauri 9ab3b20a49 Add UI to record a voice message from the composer toolbar (#1892) 2023-10-16 15:18:51 +00:00
Alfonso Grillo 6898419211 Enable voiceover in timeline menu (#1907) 2023-10-16 14:00:36 +00:00
Mauro 8e03b89641 Pills performance improvements (#1891)
* big performance improvement for pills

* small overall performance improvement

* code improvements
2023-10-13 14:40:18 +02:00
Alfonso Grillo 293834cf94 Remove ‘copy’ action for "media like" types (#1889)
* Remove ‘copy’ action when useless

* Delete unused property
2023-10-13 10:52:30 +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
Mauro c358150449 Render pills in RTE (#1874)
* for now this can only work locally

* works

* added a test

* updated RTE

* revert package

* pr suggestion

* reverting package versions

* better naming
2023-10-11 16:40:52 +02:00