From 6ed7d24513ad154a3321b382059973920f957e67 Mon Sep 17 00:00:00 2001 From: Botiplz Date: Sat, 22 Jul 2023 19:41:01 +0200 Subject: [PATCH] PR comments: - StatusFilterPredicate sets clientFilters bases on settings - Reverted changes on SettingsFragment - Resources in strings_mo.xml - removed duplicate comments - conditional in onBind method --- .../android/fragments/SettingsFragment.java | 4 ---- .../fragments/settings/TimeLineFragment.java | 2 +- .../android/model/AltTextFilter.java | 2 +- .../WarningFilteredStatusDisplayItem.java | 7 ++----- .../android/utils/StatusFilterPredicate.java | 21 +++++++++---------- .../src/main/res/values-de-rDE/strings_mo.xml | 3 +++ .../src/main/res/values-de-rDE/strings_sk.xml | 1 - mastodon/src/main/res/values/strings_mo.xml | 3 +++ mastodon/src/main/res/values/strings_sk.xml | 1 - 9 files changed, 20 insertions(+), 24 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java index 3053f4bc8..0c9a06829 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -296,10 +296,6 @@ public class SettingsFragment extends MastodonToolbarFragment implements Provide GlobalUserPreferences.showNoAltIndicator=i.checked; GlobalUserPreferences.save(); })); - items.add(new SwitchItem(R.string.sk_settings_show_posts_without_alt, R.drawable.ic_fluent_eye_tracking_on_24_regular, GlobalUserPreferences.showPostsWithoutAlt, i->{ - GlobalUserPreferences.showPostsWithoutAlt =i.checked; - GlobalUserPreferences.save(); - })); items.add(new SwitchItem(R.string.sk_settings_collapse_long_posts, R.drawable.ic_fluent_chevron_down_24_regular, GlobalUserPreferences.collapseLongPosts, i->{ GlobalUserPreferences.collapseLongPosts=i.checked; GlobalUserPreferences.save(); diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/TimeLineFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/TimeLineFragment.java index 195f945dc..53d59567b 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/TimeLineFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/TimeLineFragment.java @@ -64,7 +64,7 @@ public class TimeLineFragment extends SettingsBaseFragment{ GlobalUserPreferences.save(); needAppRestart=true; })); - items.add(new SwitchItem(R.string.sk_settings_show_posts_without_alt, R.drawable.ic_fluent_eye_tracking_on_24_regular, GlobalUserPreferences.showPostsWithoutAlt, i->{ + items.add(new SwitchItem(R.string.mo_settings_show_posts_without_alt, R.string.mo_settings_show_posts_without_alt_summary, R.drawable.ic_fluent_eye_tracking_on_24_regular, GlobalUserPreferences.showPostsWithoutAlt, i->{ GlobalUserPreferences.showPostsWithoutAlt =i.checked; GlobalUserPreferences.save(); needAppRestart=true; diff --git a/mastodon/src/main/java/org/joinmastodon/android/model/AltTextFilter.java b/mastodon/src/main/java/org/joinmastodon/android/model/AltTextFilter.java index 83c725bf5..2353fee96 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/model/AltTextFilter.java +++ b/mastodon/src/main/java/org/joinmastodon/android/model/AltTextFilter.java @@ -16,6 +16,6 @@ public class AltTextFilter extends Filter { @Override public boolean matches(Status status) { - return !GlobalUserPreferences.showPostsWithoutAlt && status.getContentStatus().mediaAttachments.stream().map(attachment -> attachment.description).anyMatch(StringUtil::isBlank); + return status.getContentStatus().mediaAttachments.stream().map(attachment -> attachment.description).anyMatch(StringUtil::isBlank); } } diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/WarningFilteredStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/WarningFilteredStatusDisplayItem.java index c33e8b871..70aaa7752 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/WarningFilteredStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/WarningFilteredStatusDisplayItem.java @@ -51,11 +51,8 @@ public class WarningFilteredStatusDisplayItem extends StatusDisplayItem{ @Override public void onBind(WarningFilteredStatusDisplayItem item) { filteredItems = item.filteredItems; - if(item.applyingFilter instanceof AltTextFilter){ - text.setText(item.parentFragment.getString(R.string.sk_filtered,item.parentFragment.getString(R.string.sk_no_alt_text))); - }else{ - text.setText(item.parentFragment.getString(R.string.sk_filtered, item.applyingFilter.title)); - } + String title = item.applyingFilter instanceof AltTextFilter ? item.parentFragment.getString(R.string.sk_no_alt_text) : item.applyingFilter.title; + text.setText(item.parentFragment.getString(R.string.sk_filtered, title)); } @Override diff --git a/mastodon/src/main/java/org/joinmastodon/android/utils/StatusFilterPredicate.java b/mastodon/src/main/java/org/joinmastodon/android/utils/StatusFilterPredicate.java index 58c1aa5bb..4593ea1e1 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/utils/StatusFilterPredicate.java +++ b/mastodon/src/main/java/org/joinmastodon/android/utils/StatusFilterPredicate.java @@ -8,6 +8,7 @@ import static org.joinmastodon.android.model.Filter.FilterContext.NOTIFICATIONS; import static org.joinmastodon.android.model.Filter.FilterContext.PUBLIC; import static org.joinmastodon.android.model.Filter.FilterContext.THREAD; +import org.joinmastodon.android.GlobalUserPreferences; import org.joinmastodon.android.api.session.AccountSessionManager; import org.joinmastodon.android.model.AltTextFilter; import org.joinmastodon.android.model.Filter; @@ -23,8 +24,7 @@ import java.util.stream.Stream; public class StatusFilterPredicate implements Predicate { //Hide in timelines and warn in threads - private final List clientFilters = List.of( new AltTextFilter(HIDE, HOME, PUBLIC, ACCOUNT), - new AltTextFilter(WARN, THREAD, NOTIFICATIONS)); + private final List clientFilters; private final List filters; private final Filter.FilterContext context; private final Filter.FilterAction action; @@ -39,6 +39,8 @@ public class StatusFilterPredicate implements Predicate { this.filters = filters; this.context = context; this.action = action; + this.clientFilters = GlobalUserPreferences.showPostsWithoutAlt ? List.of() + : List.of(new AltTextFilter(HIDE, HOME, PUBLIC, ACCOUNT), new AltTextFilter(WARN, THREAD, NOTIFICATIONS)); } public StatusFilterPredicate(List filters, Filter.FilterContext context) { @@ -51,9 +53,9 @@ public class StatusFilterPredicate implements Predicate { * status should not be hidden or should not display with warning */ public StatusFilterPredicate(String accountID, Filter.FilterContext context, Filter.FilterAction action) { - filters = AccountSessionManager.getInstance().getAccount(accountID).wordFilters.stream().filter(f -> f.context.contains(context)).collect(Collectors.toList()); - this.context = context; - this.action = action; + this(AccountSessionManager.getInstance().getAccount(accountID).wordFilters.stream().filter(f -> f.context.contains(context)).collect(Collectors.toList()), + context, + action); } /** @@ -65,9 +67,9 @@ public class StatusFilterPredicate implements Predicate { /** * @return whether the status should be displayed without being hidden/warned about. - * will always return true if the context is null. - * true = display this status, - * false = filter this status + * will always return true if the context is null. + * true = display this status, + * false = filter this status */ @Override public boolean test(Status status) { @@ -91,11 +93,8 @@ public class StatusFilterPredicate implements Predicate { //Apply client filters if no server filter is triggered if (applyingFilter.isEmpty()) { applyingFilter = clientFilters.stream() - // only apply filters for given context .filter(filter -> filter.context.contains(context)) - // treating filterAction = null (from filters list) as FilterAction.HIDE .filter(filter -> filter.filterAction == null ? action == HIDE : filter.filterAction == action) - //client filter has to match the status .filter(filter -> filter.matches(status)) .findAny(); } diff --git a/mastodon/src/main/res/values-de-rDE/strings_mo.xml b/mastodon/src/main/res/values-de-rDE/strings_mo.xml index 123786629..a0d598e00 100644 --- a/mastodon/src/main/res/values-de-rDE/strings_mo.xml +++ b/mastodon/src/main/res/values-de-rDE/strings_mo.xml @@ -75,4 +75,7 @@ App-Symbol für alle Benachrichtigungen verwenden Animationen für Interaktionen deaktivieren GIFs in Profilbildern und Emojis automatisch abspielen + Zeige Medienbeiträge ohne Bildbeschreibung + Beiräge werden in allen Timelines ausgeblendet, können aber in Threads und Benachrichtungen ausgeklappt werden + \ No newline at end of file diff --git a/mastodon/src/main/res/values-de-rDE/strings_sk.xml b/mastodon/src/main/res/values-de-rDE/strings_sk.xml index 23b676d63..8d3b14411 100644 --- a/mastodon/src/main/res/values-de-rDE/strings_sk.xml +++ b/mastodon/src/main/res/values-de-rDE/strings_sk.xml @@ -231,7 +231,6 @@ Keine Bildbeschreibung Indikator für Bildbeschreibungen Indikator für fehlende Bildbeschreibungen - Zeige Medienbeiträge ohne Bildbeschreibung Vorab-Versionen einschalten Wird gesucht… Änderungen speichern oder Entwurf jetzt veröffentlichen\? diff --git a/mastodon/src/main/res/values/strings_mo.xml b/mastodon/src/main/res/values/strings_mo.xml index ff938fdf3..a7555d7db 100644 --- a/mastodon/src/main/res/values/strings_mo.xml +++ b/mastodon/src/main/res/values/strings_mo.xml @@ -87,7 +87,10 @@ Swipe to change viewed timeline Vibrate when interacting with posts Bookmark or reblog posts from the notification + Posts will be hidden in all timelines, but can be revealed in threads and notifications Notification Audience + Show media posts with missing alt text + \ No newline at end of file diff --git a/mastodon/src/main/res/values/strings_sk.xml b/mastodon/src/main/res/values/strings_sk.xml index 562325f5b..88a6da871 100644 --- a/mastodon/src/main/res/values/strings_sk.xml +++ b/mastodon/src/main/res/values/strings_sk.xml @@ -259,7 +259,6 @@ No alt text available Indicator for alt texts Indicator for missing alt texts - Show media posts with missing alt text Enable pre-releases “Show new posts” button local-only