Remember "show images" #377

Closed
opened 2026-06-03 21:27:00 +00:00 by guettli · 1 comment
guettli commented 2026-06-03 21:27:00 +00:00 (Migrated from codeberg.org)

Remember the "show Images" action.

In preferences (per user, not per account) the user can see the list and remove entries, if he wants to.

When the user presses "shower images" then a message at the bottom should be displayed for three seconds, telling the user that this can be made undone. Show hyperlink to settings.

Remember the "show Images" action. In preferences (per user, not per account) the user can see the list and remove entries, if he wants to. When the user presses "shower images" then a message at the bottom should be displayed for three seconds, telling the user that this can be made undone. Show hyperlink to settings.
guettlibot commented 2026-06-03 21:50:01 +00:00 (Migrated from codeberg.org)

The pull request is open at https://codeberg.org/guettli/sharedinbox/pulls/378.


Here's what was implemented for issue #377:

New Drift table (ImageTrustedSenders, schema v37): stores lowercase sender email addresses with a timestamp. Primary key is the email address so re-adding a sender just updates the timestamp.

Auto-load images: Both EmailDetailScreen and ThreadDetailScreen now watch a trustedImageSendersProvider. When an email is opened, if the sender's address is in the trusted list, images load immediately without showing the button.

Snackbar on first load: When the user taps "Load remote images", the sender is saved to the trusted list and a 3-second snackbar appears: "Images will be loaded automatically for this sender." with a Settings action that navigates to /accounts/preferences.

Preferences screen: A new "Trusted image senders" section lists all saved senders with individual delete (trash) buttons. Shows "No trusted senders yet." when the list is empty.

Tests: Migration test updated for v37, FakeUserPreferencesRepository implements the three new interface methods, flutter analyze clean, 490/491 tests pass (the 1 failure is a pre-existing golden pixel diff unrelated to this change).

The pull request is open at **https://codeberg.org/guettli/sharedinbox/pulls/378**. --- Here's what was implemented for issue #377: **New Drift table** (`ImageTrustedSenders`, schema v37): stores lowercase sender email addresses with a timestamp. Primary key is the email address so re-adding a sender just updates the timestamp. **Auto-load images**: Both `EmailDetailScreen` and `ThreadDetailScreen` now watch a `trustedImageSendersProvider`. When an email is opened, if the sender's address is in the trusted list, images load immediately without showing the button. **Snackbar on first load**: When the user taps "Load remote images", the sender is saved to the trusted list and a 3-second snackbar appears: _"Images will be loaded automatically for this sender."_ with a **Settings** action that navigates to `/accounts/preferences`. **Preferences screen**: A new "Trusted image senders" section lists all saved senders with individual delete (trash) buttons. Shows "No trusted senders yet." when the list is empty. **Tests**: Migration test updated for v37, `FakeUserPreferencesRepository` implements the three new interface methods, `flutter analyze` clean, 490/491 tests pass (the 1 failure is a pre-existing golden pixel diff unrelated to this change).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: guettli/sharedinbox#377