Commit Graph

54 Commits

Author SHA1 Message Date
Jorge Martin Espinosa
0009409a3b [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
04d4b6369a 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
b50350aaa0 [Room details] Open room member details when clicking on user data in timeline (#482) 2023-06-01 12:03:27 +02:00
Chris Smith
36d372e1eb 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
59b7507fed Display timestamps for text messages (#465) 2023-05-26 10:51:15 +00:00
Marco Romano
67a8802766 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
f888225d6c Merge pull request #420 from gsouquet/gsouquet/compound-docs
Update compound references
2023-05-23 17:05:05 +02:00
Benoit Marty
ed133c8a33 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
463b9e0642 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
aaa5c636ee Handle "Invite people" action in the start a chat flow 2023-05-20 00:56:23 +02:00
Florian Renaud
029eb876df Merge remote-tracking branch 'origin/develop' into
feature/fre/create_room_select_avatar
2023-05-16 14:18:29 +02:00
Marco Romano
1b84f02073 Show pending invitations in room members list (#385)
Splits a Room's member list in 2 showing pending invitees first and then the actual room member.

This simple user facing change entails a host of under the hood changes:
- It copies the logic from the `userlist` module and merges it into the `roomdetails` module removing all details not related to the member list (e.g. gets rid of multiple selection, debouncing etc.).
- Uncouples the `roomdetails` module from the `userlist` one. Now leaving only the `createroom` module to depend on the `userlist` module. Therefore the `userlist` module could be in the future completely removed and merged into the `createroom` module.
 - Changes the room members count in the room details screen to only show the members who have joined (i.e. don't count those still in the invited state).

Missed ACs:
- This change does not make the member list live update. Discussion is ongoing on how to make this technically feasible.

Parent issue:
- https://github.com/vector-im/element-x-android/issues/246
2023-05-15 14:39:27 +02:00
Germain
c912d71633 Add changelog entry 2023-05-12 12:23:35 +01:00
Florian Renaud
83463a731b changelogs 2023-05-11 16:30:37 +02:00
Jorge Martin Espinosa
cd298b9359 [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
Chris Smith
2171f1a8ab Show badges for new invites (#355)
Show badges for new invites

Closes #238
2023-05-04 15:30:55 +00:00
Florian Renaud
031251c499 changelog 2023-05-04 16:28:19 +02:00
Jorge Martin Espinosa
31ac97d17a [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
Chris Smith
63168d4656 Search for users to start a new DM. (#376)
Search for users to start a new DM.

Hooks up the create room UI to the matrix client to get
search results. Searches are debounced for 500ms and
only executed when 3 or more characters are entered.

Wrap the result state so we can distinguish between
"no results because we haven't searched yet" and
"no results because the API returned nothing", and
add a "No results found" message in the UI for the
latter case.

Closes #95
2023-05-03 13:26:31 +00:00
Jorge Martin Espinosa
aef2b38983 [Room Details] Block & unblock user (#340) 2023-04-26 16:14:44 +02:00
Jorge Martin Espinosa
e2b2dbf59f [Room list] Search & menu improvements (#356)
* Remove settings menu item, start splitting search UI. Also, add `applyIf` and `circularReveal` modifiers.

* Split UI & logic for room list search

* Suppress `composed` warning, improve its debuggability

* Add content description to the user's avatar, fix window insets. Also, remove unused `SearchRoomListTopBar`.
2023-04-25 11:35:36 +00:00
Chris Smith
ae97a034e5 Accepting and declining invites
Hook up accept and decline buttons in the invites UI. Accept
will attempt to accept and then navigate to the room; decline
shows a confirmation dialog.

Fixes #106
2023-04-21 15:01:27 +01:00
Jorge Martin Espinosa
aa12feb4d4 [Room details] DM designs (#313)
* Implement member details screen

* Add DM-only sections to the room details screen.
2023-04-17 16:41:10 +00:00
Jorge Martin Espinosa
798bedcaed [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
Florian Renaud
18fe73779b Changelog 2023-04-14 14:57:25 +02:00
Florian Renaud
7d5b53b534 Merge pull request #308 from vector-im/feature/fre/create_room_screen
Create a room screen (UI)
2023-04-13 23:40:25 +02:00
Jorge Martin Espinosa
97b5fa7ea8 [Room Details] Implement member details screen (#302) 2023-04-13 16:41:57 +00:00
Florian Renaud
c50e199be4 Changelog 2023-04-13 15:49:03 +02:00
Florian Renaud
4bbc2aa3c2 Merge remote-tracking branch 'origin/develop' into feature/fre/start_chat_with_matrix_id 2023-04-05 17:43:52 +02:00
Jorge Martin Espinosa
9064481b4c [Room Details] Leave room (#296)
* Add leave room functionality to the Room Details screen

* Add snackbar message throught `SnackbarDistpacher`
2023-04-05 15:36:41 +02:00
Florian Renaud
5899211413 Merge remote-tracking branch 'origin/develop' into
feature/fre/start_chat_with_matrix_id
2023-04-05 10:16:33 +02:00
Jorge Martin Espinosa
d7a6779343 [Room member list] Display room member list (#276)
* Implement room member list

* Move timeline initialization back to `TimelinePresenter`.

* Fix crash when the `innerRoom` inside a `RustMatrixRoom` is destroyed but `syncUpdateFlow` is still running.

* Address review comments
2023-04-04 16:07:57 +00:00
Florian Renaud
e325c58cb0 Changelog 2023-04-04 15:44:37 +02:00
Jorge Martin Espinosa
0fb061fb2e [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
Jorge Martin Espinosa
c75ebfb1e7 Improve ButtonWithProgress component, replace login and change server buttons (#235)
* Improve `ButtonWithProgress` component.

* Replace `CircularProgresIndicator` with `ButtonWithProgress` in login and server selection screens.
2023-03-28 22:56:59 +02:00
Jorge Martin Espinosa
0c0b3d0aa6 [Verify Session] Design fixes (#230)
* Design fixes.

* Make text in emoji items secondary color and the snackbar duration short again

* Try to make margins smaller on smaller displays

---------

Co-authored-by: Florian Renaud <florianr@element.io>
2023-03-23 14:54:44 +00:00
Maxime NATUREL
d896b05e01 Adding changelog entry 2023-03-22 12:25:57 +01:00
Florian Renaud
02f2ace1e4 Merge pull request #211 from vector-im/feature/fre/start_chat_search_matrixid
[Start chat] Show a single result when searching for a matrixId
2023-03-21 13:58:24 +01:00
Jorge Martin Espinosa
f94d2b6c60 Handle 'invalid server' error in server selection screen properly. (#214)
* Handle 'invalid server' error in server selection screen properly.

* Use `action_learn_more` for composing the server location footer action.
2023-03-21 09:34:14 +01:00
Jorge Martin Espinosa
d9183e4092 Display most recent activity in room list (#220)
* Create `RoomLastMessageFormatter` to produce readable room summaries.

* Add unit tests using Robolectric, fix bugs

* Add changelog

* Move `RoomLastMessageFormatter` back to `impl` module, allow it to receive an `EventTimelineItem` instead of `MessageContent`.
2023-03-20 11:18:25 +01:00
Jorge Martin Espinosa
9639d62bb3 Add Session Verification flow (#197) 2023-03-17 10:07:19 +01:00
Jorge Martin Espinosa
ce981bc6a5 Fix behaviour of Enter and Tab hardware keys in TextFields (#216)
* Fix behaviour of Enter and Tab hardware keys in TextFields

* Add changelog
2023-03-15 13:57:51 +01:00
Florian Renaud
91deab3b97 Add changelog file 2023-03-13 17:05:35 +01:00
Maxime NATUREL
c7868a916e Adding changelog entry 2023-03-10 15:18:12 +01:00
Jorge Martin Espinosa
b149914c73 Address design comments on the change server screen (#196)
* Address design comments on the change server screen

* Update screenshots

* Address review comments.
2023-03-09 13:51:44 +00:00
Florian Renaud
dd1e10279b add changelog 2023-03-08 15:46:48 +01:00
Jorge Martin Espinosa
126ad1c8cc Fix the case when a valid homeserver url can't be extracted from the MXID (#182)
* Fix the case when a valid homeserver url can't be extracted from the mxid

* Add changelog

* Add `use` to Rust SDK calls in loginto automatically free memory from Rust objects
2023-03-08 15:36:36 +01:00
Jorge Martin Espinosa
0c8d8b62f8 Clear focus when submitting forms to prevent issues with the IME keyboard. (#139) 2023-03-08 15:30:40 +01:00
Jorge Martin Espinosa
ec66ed0a68 Use user friendly error messages in login following iOS logic (#174)
* Use user friendly error messages in login following iOS logic, fix dialog colors.

* Use `AlertDialogDefaults` for the default properties of dialogs

* Improve Maestro tests with wrong password dialog

* Add tests for error messages
2023-03-07 17:55:48 +01:00
Jorge Martin Espinosa
e0bb1da258 Add consumer proguard rules for SQLCipher (#138)
* Add consumer proguard rules for SQLCipher

* Add changelog

* Explain why these rules are necessary

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Try to switch to a supported version of Compose Rules to avoid dependency issues

---------

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2023-03-06 19:40:05 +01:00