element-hq / element-meta

Shared/meta documentation and project artefacts for Element clients
70 stars 12 forks source link

Add user controls for whether to display media (including thumbnails) #2518

Open jimmackenzie opened 1 week ago

jimmackenzie commented 1 week ago

Your use case

What would you like to do?

As a user, I should be able to control whether my client displays images and other media automatically. Ideally, I can adjust where this setting applies, based on my level of trust.

Why would you like to do it?

How would you like to achieve it?

Element Web and Element Desktop (and the older mobile apps) offer tools to disable image previews by default. Nheko recently implemented a variation, where media is hidden by default in public rooms, which I really like as an option (but I would like the option to disable everywhere by default, and have the option to hide in public rooms as a alternative option).

Previews should also be disabled in push notifications from the affected room types.

Where possible, this control should be listed under a safety or privacy heading.

Have you considered any alternatives?

No response

Additional context

No response

### Tasks
- [ ] https://github.com/element-hq/element-x-android/issues/3386
- [ ] https://github.com/element-hq/element-x-ios/issues/3228
bmarty commented 1 week ago

On Element Web, we have the option "Show previews/thumbnails for images" in the settings, which is enabled by default:

image

When disabled, images are rendered like this in the timeline:

image

And clicking on "Show image" the application first render the blurhash (if available) then the image. Other images on the timeline are not affected by the action, other images still have "Show image" button.

Notes:

Questions:

  1. Element Web seems to remember which images have been rendered when opening the room again, do we want to have the same mechanism on mobile applications?
  2. Element X may render the blurhash in all cases, would it be acceptable?
jimmackenzie commented 1 week ago
  1. Element Web seems to remember which images have been rendered when opening the room again, do we want to have the same mechanism on mobile applications?

Providing there is a way to hide the image again, that would be great

  1. Element X may render the blurhash in all cases, would it be acceptable?

It could be - I'm partial to how Element Web does things, because I think the Show image affordance is more useful and looks better than the blurhash in the timeline, but that's a subjective take.

bmarty commented 1 week ago

OK thanks. I do not think there is a way to hide the image again on Web, but I may have missed it. We may keep it simple for now and always hide the images when opening the timeline on the mobile clients.

@mxandreas can you give product POV on this please? Ideally we would need some design as well.

davidegirardi commented 4 days ago

Today I noticed Element Web/Desktop automatically downloads any audio file in the timeline. This is a bandwidth waste and also is probably the cause of issues such as the ones where a lot of audio files or voice messages are in a room (can't find them right now).

I think any media file should follow the setting discussed in this issue.