From 5af96597d5d4a5433d4084e5d4c63343cf06ee79 Mon Sep 17 00:00:00 2001 From: sk Date: Tue, 29 Nov 2022 19:24:02 +0100 Subject: [PATCH] add option to hide/show federated timeline --- .../joinmastodon/android/GlobalUserPreferences.java | 3 +++ .../android/fragments/SettingsFragment.java | 12 +++++++++++- .../android/fragments/discover/DiscoverFragment.java | 3 ++- mastodon/src/main/res/values-de-rDE/strings.xml | 1 + mastodon/src/main/res/values/strings.xml | 1 + 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java index ca83ffaad..e9a2b843b 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java +++ b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java @@ -10,6 +10,7 @@ public class GlobalUserPreferences{ public static boolean showReplies; public static boolean showBoosts; public static boolean loadNewPosts; + public static boolean showFederatedTimeline; public static boolean showInteractionCounts; public static boolean alwaysExpandContentWarnings; public static boolean disableMarquee; @@ -27,6 +28,7 @@ public class GlobalUserPreferences{ showReplies=prefs.getBoolean("showReplies", true); showBoosts=prefs.getBoolean("showBoosts", true); loadNewPosts=prefs.getBoolean("loadNewPosts", true); + showFederatedTimeline=prefs.getBoolean("showFederatedTimeline", !BuildConfig.BUILD_TYPE.equals("playRelease")); showInteractionCounts=prefs.getBoolean("showInteractionCounts", false); alwaysExpandContentWarnings=prefs.getBoolean("alwaysExpandContentWarnings", false); disableMarquee=prefs.getBoolean("disableMarquee", false); @@ -40,6 +42,7 @@ public class GlobalUserPreferences{ .putBoolean("showReplies", showReplies) .putBoolean("showBoosts", showBoosts) .putBoolean("loadNewPosts", loadNewPosts) + .putBoolean("showFederatedTimeline", showFederatedTimeline) .putBoolean("trueBlackTheme", trueBlackTheme) .putBoolean("showInteractionCounts", showInteractionCounts) .putBoolean("alwaysExpandContentWarnings", alwaysExpandContentWarnings) 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 e6687b28a..14250ffc1 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -15,7 +15,6 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowInsets; import android.view.WindowManager; -import android.view.animation.AlphaAnimation; import android.view.animation.LinearInterpolator; import android.widget.Button; import android.widget.ImageButton; @@ -70,6 +69,7 @@ public class SettingsFragment extends MastodonToolbarFragment{ private NotificationPolicyItem notificationPolicyItem; private String accountID; private boolean needUpdateNotificationSettings; + private boolean needAppRestart; private PushSubscription pushSubscription; private ImageView themeTransitionWindowView; @@ -131,6 +131,11 @@ public class SettingsFragment extends MastodonToolbarFragment{ GlobalUserPreferences.loadNewPosts=i.checked; GlobalUserPreferences.save(); })); + items.add(new SwitchItem(R.string.settings_show_federated_timeline, R.drawable.ic_fluent_earth_24_regular, GlobalUserPreferences.showFederatedTimeline, i->{ + GlobalUserPreferences.showFederatedTimeline=i.checked; + GlobalUserPreferences.save(); + needAppRestart=true; + })); items.add(new HeaderItem(R.string.settings_notifications)); items.add(notificationPolicyItem=new NotificationPolicyItem()); @@ -202,6 +207,11 @@ public class SettingsFragment extends MastodonToolbarFragment{ if(needUpdateNotificationSettings && PushSubscriptionManager.arePushNotificationsAvailable()){ AccountSessionManager.getInstance().getAccount(accountID).getPushSubscriptionManager().updatePushSettings(pushSubscription); } + if(needAppRestart){ + Intent intent = Intent.makeRestartActivityTask(MastodonApp.context.getPackageManager().getLaunchIntentForPackage(MastodonApp.context.getPackageName()).getComponent()); + MastodonApp.context.startActivity(intent); + Runtime.getRuntime().exit(0); + } } @Override diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverFragment.java index ac974f2b0..f4eabb3c4 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverFragment.java @@ -19,6 +19,7 @@ import android.widget.ProgressBar; import android.widget.TextView; import org.joinmastodon.android.BuildConfig; +import org.joinmastodon.android.GlobalUserPreferences; import org.joinmastodon.android.R; import org.joinmastodon.android.fragments.ScrollableToTop; import org.joinmastodon.android.fragments.ListTimelinesFragment; @@ -61,7 +62,7 @@ public class DiscoverFragment extends AppKitFragment implements ScrollableToTop, private String accountID; private Runnable searchDebouncer=this::onSearchChangedDebounced; - private static final boolean noFederated = BuildConfig.BUILD_TYPE.equals("noFederatedRelease"); + private final boolean noFederated = !GlobalUserPreferences.showFederatedTimeline; @Override public void onCreate(Bundle savedInstanceState){ diff --git a/mastodon/src/main/res/values-de-rDE/strings.xml b/mastodon/src/main/res/values-de-rDE/strings.xml index 100f625fe..bb4584f72 100644 --- a/mastodon/src/main/res/values-de-rDE/strings.xml +++ b/mastodon/src/main/res/values-de-rDE/strings.xml @@ -418,4 +418,5 @@ Diese Liste ist leer Dieser Server akzeptiert keine neuen Registrierungen. Zu Megalodon beitragen + Show federated timeline diff --git a/mastodon/src/main/res/values/strings.xml b/mastodon/src/main/res/values/strings.xml index 34f23a8cc..afba45912 100644 --- a/mastodon/src/main/res/values/strings.xml +++ b/mastodon/src/main/res/values/strings.xml @@ -428,4 +428,5 @@ Always reveal content warnings Disable scrolling text in title bars Contribute to Megalodon + Show federated timeline