Commit graph

185 commits

Author SHA1 Message Date
Benoit Marty
92bd16832d Rework AvatarSize.
Remove default value for AvatarSize, it has to be explicitely provided.
2023-06-27 19:23:37 +02:00
Jorge Martin Espinosa
a16335b4b7 [Compound] Integrate compound tokens (#586)
* Added tokens.

* Apply color to MaterialTheme, also add typography.

* Map colors to the right ones in the themes.

* Create and improve previews of some components

* More preview improvements

* Add `tertiary` and `onTertiary` colors, remove some unused ones.

* Fix usage of deleted color token

* Fix bug in Switch previews

* Create a separate `:libraries:theme` module to keep everything related to colors, typography and Compound in general.

* Fix `DatePickerPreview`

* Add missing Compound generated files by fixing their package name

* Move `ElementTheme` to the `:libraries:theme` module, make some variables internal.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-06-27 16:15:40 +00:00
Benoit Marty
c33a08b602 Merge pull request #684 from vector-im/feature/bma/stringR
Quick PR to introduce `CommonStrings` type alias
2023-06-27 16:00:31 +02:00
Marco Romano
316d57d1b6 Async API improvements "v2" (#672)
* Async API improvements "v2"

**NB: This PR actually changes only 3 files in `libraries/architecture/`. All the other changes are automated refactors to fix the calling code.**

This is a proposal for improvements to our `Async` type as discussed in: https://github.com/vector-im/element-x-android/pull/598/files#r1230664392 and in other chats.

Please bear in mind it is just a proposal, I'd love to hear your feedback about it, especially when it comes to naming: I've tried to make parameter and function names use a terminology similar to what we find in the Kotlin stdlib and its `Result` type.

I'm inclined to like more the non-extension flavours of the new `run*` APIs, though I'd also like your feedback about what API shape you prefer.

### Summary of the changes:
#### Functional
- Adds `exceptionOrNull()` API to complement the existing `dataOrNull()` API.
- Adds `isFailure()`, `isLoading()`, `isSuccess()` and `isUninitialized()` courtesy APIs.
- Renames `executeResult()` to `runUpdatingState()`:
	- Becomes the base API to which all the other similarly named APIs call into.
	- Makes it inline.
	- Adds contract.
	- Passes over any `prevData` to newre Async states.
	- Passes through the `block`s return value.
	- Adds unit tests.
- Renames `execute` to `runCatchingUpdatingState()` and makes it just call into `runUpdatingState()`
- Adds extension function overloads to the `run*` functions to accept `MutableState` as receiver

#### Cosmetics
- Reorders classes and methods in alphabetic order.
- Reorder parameter names to mimic conventions in Kotlin stdlib.
- Adds docstrings where useful.

* Use `fold()`

* rename pop to popFirst

* Add docstrings

* Please Detekt

* Rename exception to error.

* Please detekt

* Update existing usages.
2023-06-27 13:37:23 +02:00
Benoit Marty
dfa1adb9c1 More cleanup 2023-06-27 09:51:33 +02:00
Benoit Marty
798da50454 Use CommonStrings everywhere 2023-06-27 09:45:00 +02:00
Marco Romano
c5c9cd33da Refine handleSnackbarMessage API (#676)
As per our offline convos during a PR review.
2023-06-26 16:29:50 +02:00
Benoit Marty
36910abca4 Move FileSizeFormatter to module :libraries:androidutils 2023-06-26 11:14:53 +02:00
Benoit Marty
529720079a Move FileSizeFormatter to a new module for injectable Android utilities. 2023-06-26 11:06:36 +02:00
bmarty
874739ece9 Sync Strings from Localazy 2023-06-26 00:10:53 +00:00
Jorge Martin Espinosa
cf2723ac7f [Message Actions] Copy events to clipboard (#665)
* Add `Copy` action for text events

* Remove 'Copy' action from the list for non-text events

* Use `@ContributesBinding` to inject `AndroidClipboardHelper`.
2023-06-23 14:39:07 +00:00
Jorge Martin Espinosa
9251cbf536 [Message Actions] Report messages (#642)
* Add report messages feature

* Try to improve how snackbars are delivered

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-06-23 10:44:47 +02:00
Jorge Martin Espinosa
42827206b3 [Message Actions] Forward messages (#635)
* Add forwarding messages base

* Make forwarding single-selection

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-06-22 13:27:59 +02:00
ganfra
8e617b427d CanSendEvent default to true and branch refresh mechanism... 2023-06-21 17:43:08 +02:00
Benoit Marty
9df0030967 Merge pull request #631 from vector-im/feature/bma/sendPermission
Take into acount send permission (power level)
2023-06-21 11:35:33 +02:00
Benoit Marty
da110bd2c4 Extract getCanSendEvent to the matrixui module, rename to canSendEventAsState and use produceState. 2023-06-21 10:57:55 +02:00
ganfra
c7b2ac5acd Merge pull request #617 from vector-im/feature/fga/fix_media_pre_processing
Feature/fga/fix media pre processing
2023-06-20 16:17:50 +02:00
bmarty
700fadb09d Sync Strings from Localazy 2023-06-19 20:15:52 +00:00
ganfra
6ca36b2339 Timeline media: kind of align with other messenger apps 2023-06-19 21:38:54 +02:00
github-actions[bot]
fe5524bae4 Sync Strings (#630)
* Sync Strings from Localazy

* Update strings, remove broken German translation

* Update screenshots

---------

Co-authored-by: bmarty <bmarty@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-06-19 11:18:01 +00:00
Benoit Marty
9f01d6f66a Display a banner instead of the composer when user cannot post message to a room (#602) 2023-06-19 11:52:34 +02:00
ganfra
35dcc5dd5a Media : Fix test compilation 2023-06-16 14:23:52 +02:00
ganfra
15ef9abed6 Merge branch 'develop' into feature/fga/fix_media_pre_processing 2023-06-16 14:05:11 +02:00
ganfra
33c74fb4e5 Fix MediaPreProcessor for images/videos sent as file 2023-06-16 13:52:07 +02:00
ganfra
2cc78fd5fb Timeline: fix unknown aspectRatio 2023-06-15 22:50:01 +02:00
ganfra
2290b6dba5 Merge pull request #603 from vector-im/feature/fga/update-rust-sdk-0.1.20
Matrix rust sdk: update to 0.1.20 (and fix compilation issues)
2023-06-15 16:35:45 +02:00
Benoit Marty
97923af7d8 Merge pull request #591 from vector-im/feature/bma/noDelayInTests
No delay in tests
2023-06-15 15:27:41 +02:00
ganfra
d4526e52c6 Matrix rust sdk: update to 0.1.20 (and fix compilation issues) 2023-06-15 15:26:53 +02:00
Jorge Martin Espinosa
244306545f Move logic of different BottomSheets in MessagesView to presenters (#600)
* Move bottom sheet logic in `MessagesView` to presenters.

* Make the block inside `SheetState.hide` suspend.
2023-06-15 14:58:18 +02:00
ganfra
65ecfcc681 Merge pull request #599 from vector-im/feature/fga/timeline_media_improvements
Feature/fga/timeline media improvements
2023-06-15 14:36:15 +02:00
ganfra
cc1e3d9a0a Timeline: use thumbnailSource for image if available (except for gif) 2023-06-15 12:11:37 +02:00
ganfra
e817afef84 Media: introduce a Kind.File so we don't use In-memory bytearray in timeline 2023-06-15 12:06:58 +02:00
ganfra
18cdfdf439 Merge pull request #597 from vector-im/feature/fga/fix_reply_timeline_ui
Feature/fga/fix reply timeline UI
2023-06-15 11:38:30 +02:00
Jorge Martin Espinosa
31555c4bd0 [Message Actions] Retry sending failed messages (#596)
* Add `RetrySendMessageMenu` to retry sending failed messages or removing its local echo.

* Fix initial event being retrieved, not the updated one

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-06-15 11:27:37 +02:00
Benoit Marty
9b4b9e9140 Introduce simulateLongTask to ensure that the Presenter State Loading is visible.
Also do some cleanup on the tests.
2023-06-15 10:57:05 +02:00
ganfra
8ddc1090b1 Timeline: fix wrong username for reply 2023-06-15 10:28:23 +02:00
ganfra
800896be88 Timeline: fix ReplyToContent clip on click 2023-06-15 10:28:12 +02:00
Benoit Marty
4a56d433c6 Unblock develop 2023-06-13 11:11:27 +02:00
Benoit Marty
d557d1fcad Merge pull request #584 from vector-im/feature/fga/fix_work_on_main_thread
Extract fetchDetailsForEvent and use coroutineDispatchers.io
2023-06-13 10:05:01 +02:00
Benoit Marty
0c64921f10 Merge pull request #549 from vector-im/feature/bma/onboardingServer
Onboarding iteration
2023-06-13 09:21:50 +02:00
ganfra
26746f5e27 Extract fetchDetailsForEvent and use coroutineDispatchers.io 2023-06-12 20:23:58 +02:00
Benoit Marty
9e73e70a22 Enforce usage of TestScope.testScheduler 2023-06-12 19:49:56 +02:00
Jorge Martin Espinosa
1831ec7ab4 Fix timeline item padding and corners (#573)
* Try to fix timeline offsets and rounded corners.
---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-06-12 10:42:35 +02:00
Jorge Martin Espinosa
9fa261e393 [Message Actions] Add emoji reactions option (#568)
* Add logic to send message reactions

* Add emoji library, create EmojiPicker component

* Fix bottom sheet behaviors

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-06-09 16:56:40 +02:00
Jorge Martin Espinosa
688ab3bd5e [Message Actions] Display debug info for events in the timeline (#555)
* Display debug info for events in the timeline on debug builds.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-06-09 06:13:22 +00:00
ganfra
50c015801f Clean tests values for file extension 2023-06-08 17:17:13 +02:00
ganfra
efee010b8c Tests: fix tests for media 2023-06-08 16:10:38 +02:00
Jorge Martin Espinosa
c176eab4a3 [Message actions] New UI for replies (#545)
* Add 'reply to' UI to the message composer.

* Move the `BlurHashAsyncImage` to `:libraries:designsystem` as it is now used in several modules.

*  Create reusable `AttachmentThumbnail` and associated data classes and enums, it's now added to `:libraries:matrixui`.

* Re-use `AttachmentThumbnail` in a `ActionListView` and `TextComposer`.

* Add 'inReplyTo' models and UI.

* Add min size for images

* Create a separate layout for media items with no reply to info. Also, separate `Timeline__Row` components from `TimelineView`, as it was getting too large.

* Added `EqualWidthColumn` to use inside message bubbles. Also fixed some modifiers for media items replying to other messages.

* Disable `inReplyToClicked`.

* Remove unused resources and libraries.

* Remove any traces of `BlurHashAsyncImage` in `:features:messages`, since it was moved to the design system.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-06-08 12:15:13 +02:00
ganfra
76e35582da Merge branch 'develop' into feature/fga/media_viewer_actions 2023-06-07 16:31:28 +02:00
ganfra
c48dd99bf9 Media: extract LocalMediaViewState to his own file 2023-06-07 15:58:05 +02:00