[Story] Browse, manager and invite users to a space
Description
Story
As a user that has joined the space I want to browse the members list of the space so that I can view their profiles, invite new members or manage them if I have the right permissions.
Acceptance criteria
The user needs to access the view through the more button of the space, when is in the joined state. Then these may vary according to the permissions of the user:
- The user can browse and see all the members of the space and their profile
- The user can invite other user to the space
- They can view their profile
- Remove/Ban them from the space
- See the list of banned members
Designs
Deleted the "change their role" from the acceptance criteria, since it's an additional feature that will also impact rooms, that doesn't need to be included with just viewing and managing the members list.
I should report here the issues I found when testing it 2 weeks ago:
iOS
- [x] Not reactive on power level change. It is on ban status. Fixed by https://github.com/element-hq/element-x-ios/pull/4707.
Android
- [x] Members still listed as banned after unbanning them (tested on an invitee). Trying to unban them again leads to an error
- [x] Should display the profile bottom sheet when tapping of an unbanned user instead of displaying a confirmation dialog to unban them
One issue left on Android discussed with @ganfra :
- [x] Starting from the "Banned" tab, if you open and leave the profile screen, you come back to the "Members" tab, not the "Banned" tab as expected. The user loses the navigation context.
I did a little bit of exploratory testing on inviting/managing space members. Here are the observations:
-
The push notification tells you that you have been invited to a room. I think it would be good if we could be more specific and say explicitly if you are invited to a room or to a space.
-
iOS does not show a display name for a banned member and the username is in bold. Android shows it in the "usual" way.
- Android - searching banned users does not seem to work.
Seems like 2. is a change from the original designs for a Room (iOS / Android) and the new ones for Space (iOS / Android).
FWIW, when we implemented the designs for a room it was done to reduce the impact of potentially offensive profiles.
FWIW, when we implemented the designs for a room it was done to reduce the impact of potentially offensive profiles.
This actually makes sense but it looks like Android never implemented this "redaction". We should do the same for both spaces and rooms, as well as on both platforms. I prefer the "redacted" version with just MXID - because you usually only ban when there's a good reason and then it is better to optimize for potentially offensive cases. @americanrefugee your thoughts?
Updated designs...
Member list
Member profile preview
Banned list
Banned profile preview
@americanrefugee Did anything actually change for non-banned member list/profile view? @ganfra Could you please confirm if searching for banned members works for you or not? @americanrefugee What shall we do with the push notification copy? Should we generalize it, too?
@americanrefugee Did anything actually change for non-banned member list/profile view?
No. I only changed the banned user list / profile.
@americanrefugee What shall we do with the push notification copy? Should we generalize it, too?
What do you mean by "push" notification? This?
Capturing the decisions from the sync. with @americanrefugee @ganfra @Velin92 and @pixlwave
- iOS member list visuals - we will use the gray background, the rest will stay as is in the app.
- iOS & Android - for banned members we will show avatar (because the avatar for banned members is already redacted) and MXID. This will be the same for both rooms and spaces.
- Android - the search for members will work as on iOS. Meaning that if you're on members tab, it will search only members and if you're on banned members tab, it will search only banned.
Capturing the decisions from the sync. with @americanrefugee @ganfra @Velin92 and @pixlwave
- iOS member list visuals - we will use the gray background, the rest will stay as is in the app.
- iOS & Android - for banned members we will show avatar (because the avatar for banned members is already redacted) and MXID. This will be the same for both rooms and spaces.
- Android - the search for members will work as on iOS. Meaning that if you're on members tab, it will search only members and if you're on banned members tab, it will search only banned.
Small recap of what we are doing about it, and what was agreed in the room.
- UI Redesign to march the details screen specifically more on iOS
- Some copies have changed and updated (# Banned, # Invited)
- The toggle for banned members will only appear if
- The user has ban permissions
- The room has at least 1 banned member
- if the toggle disappears for any reason (like the last member being unbanned) we also switch to the normal members list)
- The search will filter depending on the toggle selection (if present)
- The search should also update the count in the headers to reflect the current filtering
- The banned members list will show the avatar, but only the placeholder one, and the mxid only.
I did a quick round of testing with latest nightlies:
- The push notification still says "You have been invited to room". The plan was to check if we can make it specific (e.g. you have been invited to room/space depending on if it is a room).
- Android still shows the display name of the banned user (both in the banned list as well as at the bottom sheet).
I did a quick round of testing with latest nightlies:
- The push notification still says "You have been invited to room". The plan was to check if we can make it specific (e.g. you have been invited to room/space depending on if it is a room).
- Android still shows the display name of the banned user (both in the banned list as well as at the bottom sheet).
As of right now the NotificationItem struct coming from the SDK that contains info about the notification does not include info about it being a space or not (like a simple boolean isSpace) probably could be easily implemented however
https://github.com/matrix-org/matrix-rust-sdk/pull/5907
Okay I opened a PR on Rust, this should allow us to distinguish between spaces and rooms from notifications
I did a quick round of testing with latest nightlies:
- The push notification still says "You have been invited to room". The plan was to check if we can make it specific (e.g. you have been invited to room/space depending on if it is a room).
- Android still shows the display name of the banned user (both in the banned list as well as at the bottom sheet).
Number 1 has been fixed in the current RC that we just released for iOS
iOS is ready. Android needs the "1.The push notification still says "You have been invited to room"". @ganfra please indicate here when it is available.
Checked again and the remaining issues have been solved, thus closing this story.