Commit graph

191 commits

Author SHA1 Message Date
Benoit Marty
aadc6d68d8 Merge branch 'develop' into feature/bma/removeOldResources 2023-06-27 16:09:30 +02: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
659b9d3d9c Now that the composer as been removed, we do not need element resource module anymore. 2023-06-27 13:34:55 +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
bmarty
874739ece9 Sync Strings from Localazy 2023-06-26 00:10:53 +00:00
Chris Smith
4586b532f1 Merge remote-tracking branch 'origin/develop' into misc/cjs/invite-string-change 2023-06-23 15:03:11 +01:00
Chris Smith
ffd73dbae3 Merge remote-tracking branch 'origin/develop' into misc/cjs/invite-string-change 2023-06-23 14:10:17 +01:00
Johannes Marbach
9e070a495e Merge pull request #627 from vector-im/johannes/room-creation-analytics-events 2023-06-23 15:09:55 +02:00
Chris Smith
67587b836a Keep screen analytics entirely in the node 2023-06-23 13:04:24 +01:00
Johannes Marbach
f0f1a026f7 Add (primitive) screen tracking for room & DM creation 2023-06-23 13:27:48 +02:00
Chris Smith
318db6f44c Add some tests for create room analytics 2023-06-23 11:53:54 +01:00
ganfra
2115db7af5 Rust sdk update: make the app compile 2023-06-22 09:50:17 +02:00
Benoit Marty
f38f1487c5 Merge pull request #626 from vector-im/feature/bma/sonar
Sonar
2023-06-21 10:41:26 +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
Johannes Marbach
b237b123c7 Add analytics events for room creation 2023-06-17 21:25:14 +02:00
Benoit Marty
2452d8aa91 Fix the 6 issues reported by Sonar. 2023-06-16 18:08:20 +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
Chris Smith
3e95baf088 Fix tests 2023-06-12 15:39:33 +01:00
Chris Smith
18f4f1afa4 Fix provider for CreateRoomRootStateProvider 2023-06-12 15:22:31 +01:00
Chris Smith
2aba6a7f71 Use correct string for "invite friends..." action 2023-06-12 15:18:32 +01:00
github-actions[bot]
044a3c991e Sync Strings (#522)
Sync Strings from Localazy
2023-06-05 15:26:50 +00:00
Chris Smith
5635057c62 Remove deleted strings from translations 2023-06-05 12:38:26 +01:00
Chris Smith
8ef7f36de8 Update strings to get new room placeholder text 2023-06-05 12:14:29 +01:00
Chris Smith
edb370db3e Create room: use secondary tint instead of alpha 2023-06-05 11:28:32 +01:00
Chris Smith
354c943d0b Typo and minor formatting 2023-06-05 10:23:39 +01:00
Chris Smith
9c21a1dd74 Merge remote-tracking branch 'origin/develop' into misc/cjs/create-join-design-feedback 2023-06-02 16:25:07 +01:00
Jorge Martin Espinosa
4d2caf8172 Fix SearchBar colors. Also fix tertiary color in dark mode. (#516)
* Fix SearchBar colors. Also fix tertiary color in dark mode.
2023-06-02 17:20:43 +02:00
Chris Smith
1914caa54f More string fiddling 2023-06-02 14:22:35 +01:00
Chris Smith
9c4500363f Create room: elevate selected users when scrolling 2023-06-02 14:17:01 +01:00
Chris Smith
c1eba96124 Merge remote-tracking branch 'origin/develop' into misc/cjs/create-join-design-feedback 2023-06-01 16:50:34 +01: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
Chris Smith
08ff69e682 Create room: more spacing under selected users 2023-06-01 13:30:39 +01:00
Chris Smith
9827c30fc0 Merge remote-tracking branch 'origin/develop' into misc/cjs/create-join-design-feedback 2023-06-01 13:26:27 +01:00
Chris Smith
73a9a82a6d Create room: fix text colours and strings 2023-06-01 09:44:42 +01:00
Chris Smith
be8ea56903 Create room: fix colour for bottom sheet actions 2023-06-01 09:43:08 +01:00
Chris Smith
01b1cc1b4b Create room: show divider between users in search 2023-06-01 09:42:26 +01: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
Benoit Marty
7f2b23507c Merge pull request #471 from vector-im/sync-localazy
Sync Strings
2023-05-30 13:06:51 +02:00
bmarty
175b7deccb Sync Strings from Localazy 2023-05-29 00:09:47 +00:00
ganfra
2c0771ecc0 Merge branch 'develop' into feature/fga/image_loading 2023-05-26 11:39:34 +02:00
Benoit Marty
0c95912c9c Group some state events in the timeline 2023-05-25 14:17:09 +02:00
Benoit Marty
9d66af834d Move RoomLastMessageFormatter and related class and resource to the new module eventformatter, in order to prepare rendering of state event in the timeline. 2023-05-25 14:15:35 +02:00
ganfra
fc601acd28 Merge branch 'develop' into feature/fga/image_loading 2023-05-24 17:39:27 +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
ganfra
63513ae2da Merge branch 'develop' into feature/fga/image_loading 2023-05-22 20:59:37 +02:00
Chris Smith
44a3f48306 Merge remote-tracking branch 'origin/develop' into feature/fre/invite_people_action 2023-05-22 15:35:25 +01:00
Chris Smith
848f1cb988 Refactor search related functionality (#436)
Refactor search related functionality

This is a prelude to adding the feature of inviting users to
a room, getting everything in the right place and reusable.

What this does:

## User search refactor

Moves the (global) user search logic (dealing with MXIDs,
minimum lengths, debounces) into a `UserRepository`.

This now sits in a `usersearch` library, which will be
used by the create room flow and the new invite flow.

## SearchBar logic pull-up

Every place we use SearchBar, we're doing the same things
to style placeholders, show back/cancel buttons, etc.

We also have a results type that is duplicated for
basically every feature that uses the search bar.

I've pushed all this common functionality into the
SearchBar itself. This makes the component a bit less
general purpose, but saves a lot of repetition.

## Remove the userlist feature

Almost all the functionality of the userlist feature
is now exclusively used by the create room feature.
Room details uses its own version because the
requirements are different.

Components useful elsewhere (SelectedUsers and
SelectedUser) have gone to matrixui, everything else
has gone to createroom.

## Other bits and pieces

I've fixed everywhere that uses Scaffold to correctly
consume the WindowInsets if the contentPadding is
applied to the contents (which it universally is).
This was a change in the last version of Material3
(I guess previously Scaffold handled the consumption
for us). This fixes weird gaps above search bars.

Added overloads for the MatrixUserRow and
CheckedMatrixUserRow that take the name/subtitle/avatar
separately, so the invites list can pass arbitrary
text like "User has already been invited".

The `blockuser` package was for some reason not
under `impl` but alongside it, I've bumped it into
the right place.
2023-05-22 09:06:54 +00:00