407 Commits

Author SHA1 Message Date
Mauro
d99d26fcdc
Removing Dead Code part 1 (#2234) 2023-12-13 09:51:57 +01:00
Stefan Ceriu
8189b0a471 Fixes #2147 - Scroll the timeline to the bottom when sending message as well as media, polls and locations. 2023-12-04 17:32:26 +02:00
Alfonso Grillo
e7494164b2
Add TimelineProxy (update sdk to 0.0.7-november23) (#2178)
* Refactor RoomProxy

* Refactor paginateBackwards

* Refactor sendReadReceipt

* Refactor messageEventContent APIs

* Refactor sendMessage

* Refactor toggleReaction

* Refactor send attachments

* Refactor sendLocation

* Refactor cancel/retry send

* ⚠️ Fix encryption build errors

* Refactor editMessage

* Refactor retryDecryption

* Refactor fetchDetails

* Refactor polls APIs

* Refactor fetchMembers

* Refactor RoomTimelineProviderProtocol

* Update sdk to 0.0.7-november23

* Fix UTs

* Fix comment

* Delete old workaround

* Move TimelineProxyError

* Delete queue warnings

* Fix key listener

* Add pollHistory timeline property

* Refactor room/timeline subscriptions

* Delete unused code
2023-11-28 19:01:35 +00:00
Alfonso Grillo
058429b637
Update rust sdk to 0.0.6-november23 (#2159)
* Update rust sdk to 0.0.6-november23

* Delete unused property
2023-11-23 16:26:44 +00:00
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
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
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
Doug
37d88e622c
Add UI tests for AppLockFlowCoordinator. (#2055)
* Add UITests for the App Lock flow.

* Add Notification Signal

Fix unwanted imports in UITests.
2023-11-10 15:38:54 +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
Alfonso Grillo
530985e674
Add deferred spinner for voice messages (#2018)
* Add  delayedLoaderPlaybackState

* Add more tests

* Fix Xcode 14 build error

* Refactor  delayedLoaderPlaybackState -> playerButtonPlaybackState

* Fix runtime issue
2023-11-03 10:39:22 +00: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
Nicolas Mauri
4f0ed94eaa
Fix the delay when switching between voice messages (#1985) 2023-10-30 19:44:59 +00:00
Alfonso Grillo
7ba2e4f9f5
Set voice messages max width (#1980) 2023-10-30 12:09:10 +01: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
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
Nicolas Mauri
8a5986f9b0
Fix: Always detach voice message audio player state before playing another one (#1965) 2023-10-26 14:12:21 +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
30b18031a0
Add a progress indicator to voice message preview (#1956) 2023-10-25 10:27:00 +00:00
Nicolas Mauri
f9ad44f96a
Fix playback and recording of voice messages (#1948) 2023-10-24 16:49:42 +00: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
Nicolas Mauri
2f57fbc77d
Allow to record a voice message (#1926) 2023-10-23 15:47:36 +00: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
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
Nicolas Mauri
9ab3b20a49
Add UI to record a voice message from the composer toolbar (#1892) 2023-10-16 15:18:51 +00:00
Nicolas Mauri
39e3328b02
Fix: the duration of voice messages is now expressed in milliseconds (#1904) 2023-10-16 08:59:45 +00:00
Alfonso Grillo
20143cb84e
Stop audio on redaction (#1893) 2023-10-16 10:22:09 +02: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
f97a7c8cce
Update Matrix SDK to 1.1.23 (#1890) 2023-10-13 12:31:22 +00: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
Nicolas Mauri
b35bee5d8f
Improved display of voice messages in the timeline (#1873) 2023-10-10 16:20:31 +00:00
Nicolas Mauri
82abd0aaf3
Add voice message playback from the timeline (#1844) 2023-10-04 16:32:45 +00:00
Matthew Hodgson
68ec7bbc9e
Implement emotes (/me) (#1841)
* implement emotes (/me)

requires matthew/emotes branch of matrix-rust-sdk

* changelog + whitespace

* remove apparently superfluous swiftlint

* fix constness

* remove inout params and incorporate review

* switch to new api based on sdk PR feedback

* Bump the RustSDK to v1.1.21

* Address PR comments

---------

Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>
2023-10-03 16:17:03 +03: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
Stefan Ceriu
61968cb3fb Add support for replying to events different than room messages 2023-09-27 08:28:46 +03:00
Doug
2a6cf390d6
Fix replying in UI tests. (#1792) 2023-09-25 11:12:59 +01:00
Nicolas Mauri
e9ce24fd9c
Improved rendering of voice messages (#1782) 2023-09-22 16:53:17 +02:00
Alfonso Grillo
37afc8c253
Add polls "creator view" (#1765)
* Add end button in PollRoomTimelineView

* Add creator logic

* Refine PollRoomTimelineView previews

* Add UI tests

* Update preview tests
2023-09-21 14:59:17 +00:00
Nicolas Mauri
b8e5611c00
Add voice message rendering to the timeline (#1776) 2023-09-21 14:36:21 +00:00
Alfonso Grillo
eba3e25373
Improve message edit with RTE (#1742)
* Improv edit for RTE

* Refine code block style in composer

* Update matrix-wysiwyg-composer-swift to 2.13.0

* Remove workaround

* Update ElementX/Sources/Services/Timeline/TimelineItems/Items/Messages/TextRoomTimelineItemContent.swift

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

* Refactor rawFormattedBody -> formattedBodyHTMLString

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2023-09-21 13:45:43 +00:00
Stefan Ceriu
29bcc5371a #1246 - Prevent timeline items from being computed on the main thread when instantiating the RoomTimelineController; speed up the room selection animation. 2023-09-20 15:12:35 +03:00
Mauro
341b177e23
Prefire basic implementation (#1743)
* prefire basic implementation

force the unit tests to run on iPhone 14

skipping plugin validation

archive artifacts

better workflow

removed the OS restriction

lfs

custom stencil

new test file

deleting

* git lfs

* lfs

* test

* customised the stencil to support our internal protocol

* for now we can remove the OS check from the stencil

* added a delay

* tests have been moved

* improvement

* recommit

* perceptual precision lowered

* updated snapshot testing and selected also iOS version

* added ios version control
2023-09-20 14:07:18 +02:00
Stefan Ceriu
501c3aed23 Disable reply actions for local echoes 2023-09-19 17:39:04 +03:00
Stefan Ceriu
d3b21e745f Avoid too much back and forth throuhg FFI by lazily fetching and storing timeline item properties 2023-09-19 15:42:42 +03:00
Stefan Ceriu
40735fba39 Adopt the new limited lists API 2023-09-18 15:41:56 +03:00
Mauro
7642508135
Thread Decorator (#1686)
* just added the isThreaded property to message based events

* done but I should add a bunch of tests for images and videos and locations

* handling for image and videos, but locations might need to be double checked

* code improvement

* better tests and removed code that is not used, we need to fix first the appearence of replies

* bubble style is solved, we now need plain style

* also added plain style

* better handling for bubble style

* rounded corner only for bubbles in location

* fix for wrong aspect ratio in replies

* all changes done

* better testing

* swift format

* changelog

* PR comments and rebase.

* Simplify corner radius on location timeline view.

---------

Co-authored-by: Doug <douglase@element.io>
2023-09-15 11:58:30 +01:00