Notification policy (#4768)

This was so much work wow. I think it works pretty well and is the best
compromise between all the alternative we considered. Yes the
pull-to-refreh on the notifications works slightly different now when
the new bar is visible, but I don't think there is a way around that.

Things I plan to do later, i.e. not as part of this PR or release:
- Cache the notification policy summary for better offline behavior and
less view shifting when it loads
- try to reduce some of the code duplications that are now in there
- if there is user demand, add a "legacy mode" setting where this
feature is disabled even if the server would support it

closes #4331
closes #4550 as won't do
closes #4712 as won't do

<img
src="https://github.com/user-attachments/assets/de322d3c-3775-41e7-be57-28ab7fbaecdf"
width="240"/> <img
src="https://github.com/user-attachments/assets/1ce958a4-4f15-484c-a337-5ad93f36046c"
width="240"/> <img
src="https://github.com/user-attachments/assets/98b0482b-1c05-4c99-a371-f7f4d8a69abd"
width="240"/>
This commit is contained in:
Konrad Pozniak 2024-12-03 18:46:50 +01:00 committed by GitHub
commit cd57352cbd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
42 changed files with 2401 additions and 97 deletions

View file

@ -865,4 +865,34 @@
<string name="list_reply_policy_label">Show replies to</string>
<string name="unknown_notification_type">Unknown notification type</string>
<string name="notification_policies_title">Notification Policies</string>
<string name="notification_policies_filter_out">Manage notifications from…</string>
<string name="notification_policies_filter_dont_follow_title">People you don\'t follow</string>
<string name="notification_policies_filter_dont_follow_description">Until you manually approve them</string>
<string name="notification_policies_filter_not_following_title">People not following you</string>
<string name="notification_policies_filter_not_following_description">Including people who have been following you fewer than 3 days</string>
<string name="unknown_notification_filter_new_accounts_title">New accounts</string>
<string name="unknown_notification_filter_new_accounts_description">Created within the past 30 days</string>
<string name="unknown_notification_filter_unsolicited_private_mentions_title">Unsolicited private mentions</string>
<string name="unknown_notification_filter_unsolicited_private_mentions_description">Filtered unless it\'s in reply to your own mention or if you follow the sender</string>
<string name="unknown_notification_filter_moderated_accounts">Moderated accounts</string>
<string name="unknown_notification_filter_moderated_accounts_description">Limited by server moderators</string>
<string name="notification_policies_not_supported">This feature is only supported on Mastodon servers running v4.3.0 or later.</string>
<string name="filtered_notifications">Filtered notifications</string>
<string name="notifications_from_people_you_may_know">Notifications from %1$d people you may know</string>
<string name="notification_policy_accept">Accept</string>
<string name="notification_policy_filter">Filter</string>
<string name="notification_policy_ignore">Ignore</string>
<string name="filtered_notifications_title">Filtered Notifications</string>
<string name="accept_notification_request">Accept notification request</string>
<string name="dismiss_notification_request">Dismiss notification request</string>
<string name="open_settings">Open settings</string>
<string name="notifications_from">Notifications from %1$s</string>
<string name="action_accept_notification_request">Accept</string>
<string name="action_dismiss_notification_request">Dismiss</string>
</resources>