Commit graph

94 commits

Author SHA1 Message Date
Jorge Martin Espinosa
1922c505ef
Make links in messages clickable again (#1115) 2023-08-22 15:21:43 +02:00
Jorge Martin Espinosa
bfd938a970
Linkify raw links in HTML message contents (#1102)
* Linkify links in HTML too:

- Creates a `ClickableLinkText` for `String`.
- Adds a `linkify` parameter to the original function, which is `true` by default.
- Does the linkify logic inside that component, if `linkify` is true.

* Add changelog

* Make sure we don't linkify user mentions or room aliases.

* Use remember to avoid re-processing the text for no reason.
2023-08-21 16:31:01 +02:00
Benoit Marty
af04cefb89
Merge pull request #1101 from vector-im/feature/bma/fixGoogleCryptoCrash
Use alpha version of the library `androidx.security:security-crypto`
2023-08-21 16:10:45 +02:00
Jorge Martin Espinosa
a562bd29a0
Fix bug reporter failing after not finding some files (#1103)
- Make sure we propagate `CancellationException`.
- Make sure we do a cleanup of temp files.
- Make sure we don't re-compress any lingering temp files.
- Don't stop the upload process if we were able to upload some log files, even if we failed to read some others.
2023-08-21 15:30:16 +02:00
Benoit Marty
1f9bdaa91e Changelog 2023-08-21 12:59:40 +02:00
Jorge Martin Espinosa
0f77b4557b
[Compound] Platform components (Lists) (#990)
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-08-21 10:34:57 +02:00
Benoit Marty
3f590c27ee
Merge pull request #1088 from vector-im/fix/jme/1077-textbuttons-in-dark-theme
Fix TextButtons being displayed in black
2023-08-18 16:14:42 +02:00
Benoit Marty
9b02865a70
Merge pull request #1093 from vector-im/feature/bma/senderNameBubble
Feature/bma/sender name bubble
2023-08-18 15:59:20 +02:00
Jorge Martín
2da10f22ca Merge remote-tracking branch 'origin/develop' into fix/jme/1077-textbuttons-in-dark-theme 2023-08-18 15:30:25 +02:00
Benoit Marty
f6f1ab7db3 changelog 2023-08-18 15:21:14 +02:00
Jorge Martin Espinosa
6a4a4ebf26
Fix rendering of inline elements in list items in messages (#1091)
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-08-18 13:14:55 +00:00
Jorge Martín
8fdb5f6434 Add changelog 2023-08-18 14:55:13 +02:00
Jorge Martin Espinosa
983b83a56f
Media upload cancellation (#1058)
* Initial implementation of media upload cancellation

* Add tests

* Add changelog

* Update screenshots

* Add documentation

* Fix lint issues

* Fix review comments

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-08-17 09:02:03 +00:00
Benoit Marty
4587b51bd3 Merge tag 'v0.1.2' into develop 2023-08-16 17:53:31 +02:00
Florian Renaud
41d0d21c80
Add feature flag for polls (#1064)
* Handle poll events from the sdk

* Render started poll event in the timeline

* Create poll module

* Check poll kind before revealing the results

* Check if user has voted before revealing the results

* Add active poll previews

* Minor cleanup

* Update todos

* Fix CI

* Remove hardcoded string

* Update preview

* changelog file

* Update screenshots

* Use CommonPlurals

* Set poll root view as selectableGroup

* Improve poll result rendering

* Update screenshots

* Add missing showkase processor

* Update screenshots

* Add feature flag for polls

* Add supporting text in PreferenceCheckbox

* Render poll events if feature flag is enabled

* changelog

* Update screenshots

* Fix tests

* Move feature flag check to poll factory

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-08-16 15:14:38 +00:00
Florian Renaud
8a62abe93e
"View only" polls in the timeline (#1031)
* Handle poll events from the sdk

* Render started poll event in the timeline

* Create poll module

* Check poll kind before revealing the results

* Check if user has voted before revealing the results

* Add active poll previews

* Minor cleanup

* Update todos

* Fix CI

* Remove hardcoded string

* Update preview

* changelog file

* Update screenshots

* Use CommonPlurals

* Set poll root view as selectableGroup

* Improve poll result rendering

* Update screenshots

* Add missing showkase processor

* Update screenshots

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-08-16 14:19:12 +00:00
Jorge Martin Espinosa
9e1ff513e4
[Compound] Implement Snackbars based on designs (#1054)
* Make `InternalButton` internal instead of private so it can be customised.

Also, change the `ButtonColors.contentColor` for text buttons to `LocalContentColor.current` by default.

* Add temporary color for Snackbar action label

* Implement `Snackbar` component based on Compound

* Propagate changes to all other components

* Use right Preview annotation config

* Move `ButtonVisuals` to their own file

* Update screenshots

* Make previews internal

* Update screenshots

* Set a custom token for contentColor in AppBars

* Change 'Label' to 'Action' in the previews

* Add changelog

* Update screenshots

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-08-16 10:38:28 +00:00
Jorge Martin Espinosa
f35272c4fe
[Compound] Implement DropdownMenu customisations. (#1050)
* Compound: implement `DropdownMenu` customisations.

* Update screenshots

* Add changelog

* Address review comments

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-08-11 13:09:51 +00:00
Jorge Martin Espinosa
a77b59824c
[Compound] Implement dialogs (#1043)
* Implement dialogs following Compound tokens

* Update screenshots

* Fix confirmation dialog preview

* Update screenshots

* Add changelog

* Add Figma designs link

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-08-11 12:44:40 +00:00
Jorge Martin Espinosa
d08631fa07
[Compound] implement IconButton changes (#1049)
* Compound: implement IconButton changes.

* Use `LocalContentColor` for tinting

* Update screenshots

* Add changelog

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-08-11 10:01:18 +00:00
Jorge Martin Espinosa
2131af28d5
Enable filter push notifications by push rules (#1041)
* Enable filter push notifications by push rules

* Remove unused `filterByPushRules` parameter

* Use fallback notification only for items not filetered by the push rules

* Fix tests
2023-08-09 12:12:39 +00:00
Jorge Martin Espinosa
23982dde47
[Compound] Implement components (Button) (#1021)
* Create `CompoundButton`

* Some fixes

* Lint fixes

* Start replacing existing `Button` usages

* Replace button usages

* Remove previous Button composable

* Rename `CompoundButton` to `Button`

* Fix emphasized button being displayed as Text

* Fix cancel button in `WaitListView`

* Update screenshots

* Add shorthand functions for `OutlinedButton` and `TextButton`

* Add changelog

* Fix wrong size used for emphasized button in dialog

* Create a private `ButtonInternal` implementation with the shared logic.

- Make `ButtonStyle` private.
- Rename `title` to `text`.
- Rename `buttonStyle` and `buttonSize` to just `style` and `size`.

* Fix several warnings and lint issues.

* Update screenshots

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-08-08 16:11:37 +00:00
Jorge Martin Espinosa
598a63d267
Use for instead of forEach with ranges (#1035)
* Use `for` instead of `forEach` with ranges.

`forEach` is several times slower when used with ranges.

* Add changelog
2023-08-08 08:48:39 +00:00
Benoit Marty
3c5ac26427 Changelog for version 0.1.0 2023-07-19 16:40:45 +02:00
Jorge Martín
0632d01d86 Fix sliding sync loop restarts due to expirations
Both `NotifiableEventResolver` and `DefaultNotificationDrawerManager` were creating new Rust SDK Clients while processing notifications instead of reusing the already existing one.
2023-07-17 08:05:12 +02:00
jonnyandrew
3c6f658a1f
Truncate and ellipsize long reactions (#821)
* Truncate and ellipsize long reactions

* Update screenshots

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-07-08 17:53:29 +01:00
Jorge Martin Espinosa
5ee2418a1c
[Design] Use outlined textfields in login screen (#801)
* Use outlined textfields in the login screen

* Fix enabled status

* Fix loading state for button in `ConfirmAccountProviderView` too

* Update subtitle string

* Remove no longer used translation

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-07-07 10:08:38 +02:00
Jorge Martin Espinosa
78a26c034e Fix actions for redacted, not sent and media messages (#771)
* Fix actions for redacted, not sent and media messages

* Make `EventDebugInfoView` sections fill max width

* Don't display action list if there are no actions to display

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-07-05 14:08:17 +00:00
Chris Smith
1e17d2943f Show location events in timeline
Not in scope: interacting with the timeline items,
reply formatting. These will be implemented separately.

Closes #689
2023-06-29 16:37:15 +01:00
Jorge Martin Espinosa
469b54f204 Send read receipts (#713)
* Send read receipts

* Add changelog

* Add tests.

* Optimise how sending read receipts work in the timeline.

* Move the check for send read receipts to the presenter

Also improve the way we find the first visible `Event` if we have `Virtual` ones in the timeline.
2023-06-29 10:08:19 +00:00
Jorge Martin Espinosa
b66801a022 Fix crash when opening a URL with associated text (#699)
* Fix crash when opening a URL with associated text

* Enforce using an `Activity` instead of a `Context` in `SafeUriHandler`.
2023-06-28 09:19:39 +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
Johannes Marbach
9e070a495e Merge pull request #627 from vector-im/johannes/room-creation-analytics-events 2023-06-23 15:09:55 +02: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
Johannes Marbach
b237b123c7 Add analytics events for room creation 2023-06-17 21:25:14 +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
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
Jorge Martin Espinosa
e376c1be82 [Message actions] New UI for message composer and editing (#526)
* Add UI for edit composer mode

* Remove leftover code from the RTE implementation

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2023-06-07 13:06:19 +02:00
Jorge Martin Espinosa
dc4b385ada [Message actions] Update timeline context menu (#498)
* Replace bottom sheets in timeline with M3 ones.

* Add missing options to menu with the right icons

* Add message summary and reaction emoji row.

* Use the same icon in the message summary and file timeline item
2023-06-02 12:08:54 +00:00
Florian Renaud
5d0fb45ff6 Update room properties from room details (#439)
-  Add the edit action in the room details
-  Add "Add topic" button in room details
-  Add the screen behind that action to edit some room properties: avatar, name, topic
   -  Handle the save button action
      - enable the button only if changes are detected
      - display a loader "updating room"
      - display an error dialog if any request has failed
- Check user has the right power level to change various attributes
   - "Add topic" is only shown if there's no topic and they are able to set on
   - Edit menu is only shown if they can change topic, name or avatar
   - On the edit page, any fields they can't change are uneditable

Co-authored-by: Chris Smith <csmith@lunarian.uk>
2023-06-01 15:10:29 +00:00
Jorge Martin Espinosa
a36f4b7947 [Room details] Open room member details when clicking on user data in timeline (#482) 2023-06-01 12:03:27 +02:00
Chris Smith
473bfd1e23 Display a notice if Matrix ID isn't resolved (#461)
Display a notice if Matrix ID isn't resolved

If we can't get the profile of a user after an mxid was
searched for, show a warning under their ID to say the
invite probably won't be delivered.

Closes #424
2023-06-01 08:40:45 +00:00
Jorge Martin Espinosa
7aae71c2d4 Display timestamps for text messages (#465) 2023-05-26 10:51:15 +00:00
Marco Romano
0dee0784ba Room list contextual menu (#427)
- Adds `ModalBottomSheet` to our design components (it wraps the homonimous Material3 one).
- Adds  a bottom sheet to the Room list using the aforementioned design component.
- Adds navigation from the room list to a room detail (context menu "Settings" action).
- Consolidates the "leave room flow" into a new `leaveroom` module used by both the room list and the room details.
  - Adds progress indicator to the leave room flow
- Uses new `leaveroom` module in `roomdetails` module too. 

Parent issue:
- https://github.com/vector-im/element-x-android/issues/261
2023-05-25 06:42:44 +00:00
Benoit Marty
ac7e5f5113 Merge pull request #420 from gsouquet/gsouquet/compound-docs
Update compound references
2023-05-23 17:05:05 +02:00
Benoit Marty
e486677cf8 Merge pull request #438 from vector-im/feature/fre/invite_people_action
Handle "Invite people" action in the start a chat flow
2023-05-23 17:03:39 +02:00
Chris Smith
198d6d4c56 Invite users to existing rooms (#441)
Invite users to existing rooms

Scope:

- Allow inviting from the room detail screen and the member list
- Invite option is only shown if the user has the correct power level
- Search flow the same as creating a new room, allowing multi-select
- Existing room members/invitees are disabled with a custom caption
- Sending is asynchronous, an error dialog will appear wherever the
  user is if necessary

Closes #245
2023-05-23 09:23:24 +00:00
Florian Renaud
9f7c48c3dd Handle "Invite people" action in the start a chat flow 2023-05-20 00:56:23 +02:00