Commit graph

207 commits

Author SHA1 Message Date
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
Benoit Marty
457b83184a Use default material3 version again and cleanup @OptIn annotations.
Material3 is now 1.1.0
2023-05-15 12:28:31 +02:00
Florian Renaud
d7d1d01543 Add missing OptIn 2023-05-12 13:28:22 +02:00
Florian Renaud
719dd20555 Remove useless OptIn in tests 2023-05-12 10:05:39 +02:00
Jorge Martin Espinosa
89b9db3be6 [Media upload] Upload image, video and files (#411)
* Add media upload

* Display media upload error messages using a Snackbar.
2023-05-11 15:56:13 +00:00
Jorge Martin Espinosa
5eaa40a14b [Media upload] Media pre-processing (#403)
* Create `mediaupload` module for media pre-processing.

* Split `mediapicker` and `mediaupload` modules.
2023-05-10 10:06:56 +02:00
bmarty
f54b4e9f7e Sync Strings from Localazy 2023-05-08 00:08:48 +00:00
Jorge Martin Espinosa
014c0f4186 [Media upload] Add media pickers to the Room screen and the composer (#380)
* Add media pickers to the Room screen and the composer.

* Fix exclude rules for translations
2023-05-04 11:51:03 +02:00
Jorge Martin Espinosa
d4c311545d Design fixes for room detail, dm & room member detail screens (#363)
* Design fixes for room detail, dm & room member detail screens.

* Record new screenshots, improve RoomDetailsStateProvider.

* Move MainActionButton to its own component in the design system.
2023-05-02 14:02:51 +00:00
ganfra
5cd8e7c6c0 Merge branch 'develop' into feature/fga/some_room_related_fixes 2023-04-28 15:58:54 +02:00
Jorge Martin Espinosa
eeca1c9ee3 Add PickerLauncher wrapper for media/file pickers. (#361)
* Add `PickerLauncher` wrapper for media/file pickers.

* Add FileProvider path, handle Camera picker and add NoOp implementation to fix tests.

* Move media pickers to their own module.

* Add missing media pickers

* Add feature flag and some extra tests
2023-04-28 10:52:34 +02:00
ganfra
40f3f2873b Merge branch 'develop' into feature/fga/some_room_related_fixes 2023-04-27 17:25:12 +02:00
Jorge Martin Espinosa
2376d32b9e [Room Details] Block & unblock user (#340) 2023-04-26 16:14:44 +02:00
ganfra
e65adaecd1 Timeline: add ContentType instead of using introspection. 2023-04-24 10:42:27 +02:00
ganfra
90bfe97250 Room : continue improving members loading 2023-04-21 14:39:47 +02:00
ganfra
a1869a3019 Improve handling members 2023-04-20 18:21:47 +02:00
ganfra
5104fc8ac1 Fix bottomsheet not using right theme (BottomSheet is not part of material3) 2023-04-20 15:58:20 +02:00
Jorge Martin Espinosa
fae3417181 Validate several ids in constructors (#336)
* Validate ids in constructors.

* Remove redundant `.value` usage in string interpolation.

* Make a distinction between `SessionId` and `UserId` in `TestData`.
2023-04-18 16:17:13 +00:00
Jorge Martin Espinosa
d391275420 [Room List] Show offline indicator when the device is offline (#239)
* Implement the network status indicator.

* Add `networkmonitor` feature.
2023-04-17 17:01:16 +02:00
Jorge Martin Espinosa
de010545fb Update Gradle to 8.1 and AGP to v8.0 (#329)
* Update AGP to 8.0.0.

* Set JAVA_HOME to JDK17

* Update lint version.

* Use right JDK for dependency analysis, replace deprecated env var.

* Upgrade to Gradle 8.1.

* Remove `@Supress(DSL_SCOPE_VIOLATION)` as it's no longer needed.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-17 08:49:52 +00:00
Jorge Martin Espinosa
ecc73dd325 [Room Details] Implement room details screen (#256)
* Implement Room Details screen

* Add option to create permalink from room id and alias, add share room action
2023-03-29 05:16:27 +00:00
Benoit Marty
998178b70f [Strings] Use strings from localazy. 2023-03-27 14:44:24 +02:00
ganfra
ccde8adef3 [MatrixSDK] map the remaining EventContents 2023-03-14 12:28:46 +01:00
ganfra
497fd635f8 [MatrixSDK] make tests passes 2023-03-13 21:12:42 +01:00
ganfra
801eecfe8d [MatrixSDK] finish mapping timeline and makes it compile 2023-03-13 20:18:16 +01:00
ganfra
fb85f35525 [MatrixSDK] start mapping all the timeline objects 2023-03-10 18:32:46 +01:00
ganfra
bc9f3b69cc [Architecture] split all feature modules to api/impl 2023-03-08 16:13:45 +01:00
ganfra
84bfb14bd9 [Architecture] introduce nodeBuilder concept 2023-03-07 20:31:16 +01:00
ganfra
7f3679a15e Merge branch 'develop' into feature/fga/improve_node_architecture 2023-03-07 12:10:20 +01:00
Benoit Marty
e2bd966878 Split module dateformatter into api, impl and test. 2023-03-06 11:58:11 +01:00
ganfra
a94862d778 Try splitting messages into api and impl modules 2023-03-03 14:38:05 +01:00
ganfra
f2fd168a78 [Architecture]: use FeatureEntryPoint on Messages feature 2023-03-02 18:16:17 +01:00
ganfra
91863e2529 [Architecture] introduce BackstackNode 2023-03-02 17:55:26 +01:00
Benoit Marty
466579c4d3 Move class of matrix.api module to api sub package. 2023-03-02 17:32:47 +01:00
Benoit Marty
c2dff7888c Move module matrixtest to matrix.test 2023-03-02 17:19:58 +01:00
Benoit Marty
b8467e547c Split module matrix to matrix.api with interfaces and data classes and matrix.impl with Rust implementation. 2023-03-02 17:12:13 +01:00
ganfra
44cd906c6b Add preview to new timeline items 2023-03-01 11:33:54 +01:00
ganfra
fefbdcdb71 Should fix CI 2023-02-28 15:19:33 +01:00
ganfra
a5b5371fb6 Use DaySeperatorFormatter 2023-02-28 14:27:54 +01:00
ganfra
5fa293b563 Timeline test: check timeline is initialized and disposed 2023-02-28 11:25:08 +01:00
ganfra
45711b062e Makes sure to test loadMore method on TimelinePresenter 2023-02-27 20:30:22 +01:00
ganfra
4fc12f13d8 Fix test compilation 2023-02-27 12:19:43 +01:00
ganfra
c9b4cf3232 Improve a bit timeline pagination 2023-02-24 20:34:32 +01:00
ganfra
830b8caa3a Update rust-sdk (from maven) 2023-02-24 15:05:20 +01:00
ganfra
22fd4ac7f0 Merge develop into feature/fga/update_rust_sdk 2023-02-24 11:14:36 +01:00
Benoit Marty
a304b92bb6 Do not use import wildcard 2023-02-16 11:58:31 +01:00
Benoit Marty
2dae6b6d7b Add test for HtmlDocument. 2023-02-15 15:20:12 +01:00
Benoit Marty
bdae51f252 Improve BubbleStateProvider (and this removes duplicated values!) 2023-02-15 15:20:05 +01:00
Benoit Marty
016cb6529f Rename class. 2023-02-15 12:59:30 +01:00
ganfra
8bca19a3fa Merge branch 'develop' into feature/fga/update_rust_sdk 2023-02-14 21:15:28 +01:00