diff --git a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java index 5ffa48d54..cafda00d6 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java +++ b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java @@ -7,6 +7,8 @@ public class GlobalUserPreferences{ public static boolean playGifs; public static boolean useCustomTabs; public static boolean trueBlackTheme; + public static boolean showReplies; + public static boolean showBoosts; public static ThemePreference theme; private static SharedPreferences getPrefs(){ @@ -18,6 +20,8 @@ public class GlobalUserPreferences{ playGifs=prefs.getBoolean("playGifs", true); useCustomTabs=prefs.getBoolean("useCustomTabs", true); trueBlackTheme=prefs.getBoolean("trueBlackTheme", false); + showReplies=prefs.getBoolean("showReplies", true); + showBoosts=prefs.getBoolean("showBoosts", true); theme=ThemePreference.values()[prefs.getInt("theme", 0)]; } @@ -25,6 +29,8 @@ public class GlobalUserPreferences{ getPrefs().edit() .putBoolean("playGifs", playGifs) .putBoolean("useCustomTabs", useCustomTabs) + .putBoolean("showReplies", showReplies) + .putBoolean("showBoosts", showBoosts) .putBoolean("trueBlackTheme", trueBlackTheme) .putInt("theme", theme.ordinal()) .apply(); diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java index 31c302218..7196116e0 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java @@ -24,6 +24,7 @@ import android.widget.Toolbar; import com.squareup.otto.Subscribe; import org.joinmastodon.android.E; +import org.joinmastodon.android.GlobalUserPreferences; import org.joinmastodon.android.R; import org.joinmastodon.android.api.requests.timelines.GetHomeTimeline; import org.joinmastodon.android.api.session.AccountSessionManager; @@ -82,7 +83,12 @@ public class HomeTimelineFragment extends StatusListFragment{ public void onSuccess(CacheablePaginatedResponse> result){ if(getActivity()==null) return; - onDataLoaded(result.items, !result.items.isEmpty()); + List filteredItems = result.items.stream().filter(i -> + (GlobalUserPreferences.showReplies || i.inReplyToId == null) && + (GlobalUserPreferences.showBoosts || i.reblog == null) + ).collect(Collectors.toList()); + + onDataLoaded(filteredItems, !result.items.isEmpty()); maxID=result.maxID; if(result.isFromCache()) loadNewPosts(); 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 8b1590595..bf4c9cea7 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -103,6 +103,16 @@ public class SettingsFragment extends MastodonToolbarFragment{ GlobalUserPreferences.save(); })); + items.add(new HeaderItem(R.string.settings_timeline)); + items.add(new SwitchItem(R.string.settings_show_replies, R.drawable.ic_fluent_chat_multiple_24_regular, GlobalUserPreferences.showReplies, i->{ + GlobalUserPreferences.showReplies=i.checked; + GlobalUserPreferences.save(); + })); + items.add(new SwitchItem(R.string.settings_show_boosts, R.drawable.ic_fluent_arrow_repeat_all_24_regular, GlobalUserPreferences.showBoosts, i->{ + GlobalUserPreferences.showBoosts=i.checked; + GlobalUserPreferences.save(); + })); + items.add(new HeaderItem(R.string.settings_notifications)); items.add(notificationPolicyItem=new NotificationPolicyItem()); PushSubscription pushSubscription=getPushSubscription(); diff --git a/mastodon/src/main/res/values-de-rDE/strings.xml b/mastodon/src/main/res/values-de-rDE/strings.xml index 0c19347fb..03d741097 100644 --- a/mastodon/src/main/res/values-de-rDE/strings.xml +++ b/mastodon/src/main/res/values-de-rDE/strings.xml @@ -236,6 +236,9 @@ Dunkel AMOLED-Modus App-Verhalten + Timeline + Antworten anzeigen + Geteilte Beiträge anzeigen Spiele animierte GIFs, Avatare und Emojis ab In-App-Browser verwenden Benachrichtigungen diff --git a/mastodon/src/main/res/values/strings.xml b/mastodon/src/main/res/values/strings.xml index 2ee4d9975..09608772d 100644 --- a/mastodon/src/main/res/values/strings.xml +++ b/mastodon/src/main/res/values/strings.xml @@ -242,6 +242,9 @@ Dark True black mode Behavior + Timeline + Show replies + Show boosts Play animated avatars and emoji Use in-app browser Notifications