Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Story] Show blocked users #2198

Closed
6 tasks done
VolkerJunginger opened this issue Nov 17, 2023 · 11 comments
Closed
6 tasks done

[Story] Show blocked users #2198

VolkerJunginger opened this issue Nov 17, 2023 · 11 comments
Labels
App: ElementX Android App: ElementX iOS Rust: Easy SDK tasks should be doable by any developer like FFI export or small behavior changes T-Epic Issue is at Epic level T-User Story X-Needs-Signoff Stories and Epics which are ready for review by product, design and QA

Comments

@VolkerJunginger
Copy link
Contributor

VolkerJunginger commented Nov 17, 2023

Description

As a user that has blocked other users I want to have a place where I can access these user so that I can unblock them.

Acceptance criteria

  • No feature flag is required for this feature
  • We will introduce a new Blocked users section in the account settings screen
  • Tapping on that entry should take the user to the Blocked users screen
  • The Blocked users screen will be a list of blocked user matrix identifiers. We are intentionally hiding display names and avatars to avoid offensive content
  • Tapping on any of the users should bring up a confirmation alert with options to unblock that particular user or cancel the action
  • Loading the list and unblocking users should display platform specific waiting indicators
  • Ideally the list should listen to global account blocked user changes and update accordingly.
  • Only show the menu item when a user has blocked users.

Leads

Designs

Designs for iOS

Designs for Android

Size estimate

S

Dependencies

  • None

Out of scope

  • Nothing

Open questions

Questions

No tasks being tracked yet.

Subtasks

Android

  1. T-Task
    jmartinesp
  2. T-Enhancement T-Task
    jmartinesp

iOS

  1. T-Task
  2. T-Enhancement

Rust

Other

No tasks being tracked yet.

Sign-off

Android

  • Design sign-off on completion
  • QA sign-off on completion
  • Product sign-off on completion

iOS

  • Design sign-off on completion
  • QA sign-off on completion
  • Product sign-off on completion
@jplatte jplatte added the Rust: Easy SDK tasks should be doable by any developer like FFI export or small behavior changes label Nov 21, 2023
@manuroe manuroe added the T-Epic Issue is at Epic level label Jan 8, 2024
@jmartinesp
Copy link
Member

jmartinesp commented Jan 31, 2024

Ruma has an API for ignored (blocked) user list: https://docs.rs/ruma-events/latest/ruma_events/ignored_user_list/index.html

AccountData.global contains a list of global account data events that should contain this info, although the only info available at the moment would be a list of ignored user ids, with no actual user info, so we'd have to find a way to fetch that user data.

@daniellekirkwood
Copy link
Contributor

Just a note... On Web you see this by: Settings > Security & Privacy > Advanced > Ignored Users

Screenshot 2024-01-31 at 13 02 18

@jmartinesp
Copy link
Member

After taking another look, it seems like most of the data we need is already there: we have the blocked user ids and we can call /_matrix/client/v3/profile/{userId} to get the name and avatar of each ignored user. Since this should be done every time we want to retrieve the list of ignored users, we should probably create a cache, but doing so seems quite trivial as long as we don't expect it to survive app restarts.

With a very naive implementation I got:

// The names and ids here are fine, they were users who were spamming some public rooms:
Ignored users: [
	IgnoredUser(
		id=@eogziyjjfwvqogtunxwqttypsixqowtpkjxafcrundbqvdmsggobqoafzkgqqsejqipmmftibnafourxmkzodhbiihbronbiruxfnxqucbfmczduipnkmwczepvzhikw:matrix.org, 
		avatarUrl=mxc://matrix.org/uXpgyUWGlOofhoXiOfKOgrGA, 
		displayname=eogziyjjfwvqogtunxwqttypsixqowtpkjxafcrundbqvdmsggobqoafzkgqqsejqipmmftibnafourxmkzodhbiihbronbiruxfnxqucbfmczduipnkmwczepvzhikw, 
		blurhash=null
	), 
	IgnoredUser(
		id=@qdpkfmxruncufovojpuectwshoxcuoomjinoscnhqfywxdyauodwqfosjvazrxqanftwvrjupxfhyifrxphksgeogevijqvbgxrraoiuimfbibvhodmekgjtpxnctmvd:matrix.org, 
		avatarUrl=mxc://matrix.org/nJwXVCUphecoPpGHLEfPhyAb, 
		displayname=qdpkfmxruncufovojpuectwshoxcuoomjinoscnhqfywxdyauodwqfosjvazrxqanftwvrjupxfhyifrxphksgeogevijqvbgxrraoiuimfbibvhodmekgjtpxnctmvd,
		blurhash=null
	)
]

@manuroe manuroe added the X-Needs-Leads Needs design and tech representatives label Feb 7, 2024
@amshakal
Copy link

@manuroe manuroe removed X-Needs-Design X-Needs-Product More input needed from the Product team labels Feb 14, 2024
@stefanceriu stefanceriu self-assigned this Feb 14, 2024
@manuroe manuroe removed the X-Needs-Leads Needs design and tech representatives label Feb 14, 2024
@manuroe manuroe added the X-Needs-Signoff Stories and Epics which are ready for review by product, design and QA label Feb 28, 2024
@VolkerJunginger VolkerJunginger removed the X-Needs-Signoff Stories and Epics which are ready for review by product, design and QA label Feb 29, 2024
@stefanceriu stefanceriu added X-Needs-Signoff Stories and Epics which are ready for review by product, design and QA and removed X-Needs-Signoff Stories and Epics which are ready for review by product, design and QA labels Mar 11, 2024
@VolkerJunginger
Copy link
Contributor Author

@bmarty Is the Android Design for the prompt when unblocking right? The buttons are right-aligned?

@jmartinesp
Copy link
Member

@bmarty Is the Android Design for the prompt when unblocking right? The buttons are right-aligned?

Do you mean in the actual implementation? Android dialog buttons are always right-aligned.

@VolkerJunginger
Copy link
Contributor Author

Ah - ok. Looks weird but ok.

@VolkerJunginger
Copy link
Contributor Author

On Android unblocking is stuck in a Spinner. The person is already unblocked. Rageshake send

@jmartinesp
Copy link
Member

On Android unblocking is stuck in a Spinner. The person is already unblocked. Rageshake send

It should be fixed by element-hq/element-x-android#2554

@bmarty bmarty removed their assignment Mar 15, 2024
@VolkerJunginger
Copy link
Contributor Author

Feature has been handed over to the customer.

@VolkerJunginger
Copy link
Contributor Author

Customer gives a go for the feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
App: ElementX Android App: ElementX iOS Rust: Easy SDK tasks should be doable by any developer like FFI export or small behavior changes T-Epic Issue is at Epic level T-User Story X-Needs-Signoff Stories and Epics which are ready for review by product, design and QA
Projects
None yet
Development

No branches or pull requests

9 participants