From f1f7c1341cf0eac28c587491e055c41919377aef Mon Sep 17 00:00:00 2001 From: sk Date: Sat, 19 Nov 2022 16:09:45 +0100 Subject: [PATCH] add option to disable scrolling title bars closes #50 as mentioned in mastodon#305 --- .../java/org/joinmastodon/android/GlobalUserPreferences.java | 5 ++++- .../android/fragments/BaseStatusListFragment.java | 5 +++++ .../org/joinmastodon/android/fragments/SettingsFragment.java | 4 ++++ .../src/main/res/drawable/ic_fluent_text_more_24_regular.xml | 3 +++ mastodon/src/main/res/values-de-rDE/strings.xml | 1 + mastodon/src/main/res/values/strings.xml | 1 + 6 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 mastodon/src/main/res/drawable/ic_fluent_text_more_24_regular.xml diff --git a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java index 5ffa48d54..1939f2db9 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java +++ b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java @@ -7,9 +7,10 @@ public class GlobalUserPreferences{ public static boolean playGifs; public static boolean useCustomTabs; public static boolean trueBlackTheme; + public static boolean disableMarquee; public static ThemePreference theme; - private static SharedPreferences getPrefs(){ + private static SharedPreferences getPrefs(){ return MastodonApp.context.getSharedPreferences("global", Context.MODE_PRIVATE); } @@ -18,6 +19,7 @@ public class GlobalUserPreferences{ playGifs=prefs.getBoolean("playGifs", true); useCustomTabs=prefs.getBoolean("useCustomTabs", true); trueBlackTheme=prefs.getBoolean("trueBlackTheme", false); + disableMarquee=prefs.getBoolean("disableMarquee", false); theme=ThemePreference.values()[prefs.getInt("theme", 0)]; } @@ -26,6 +28,7 @@ public class GlobalUserPreferences{ .putBoolean("playGifs", playGifs) .putBoolean("useCustomTabs", useCustomTabs) .putBoolean("trueBlackTheme", trueBlackTheme) + .putBoolean("disableMarquee", disableMarquee) .putInt("theme", theme.ordinal()) .apply(); } diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java index 575481a05..8837ac7e6 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java @@ -19,6 +19,7 @@ import android.view.WindowInsets; import android.widget.Toolbar; import org.joinmastodon.android.E; +import org.joinmastodon.android.GlobalUserPreferences; import org.joinmastodon.android.R; import org.joinmastodon.android.api.requests.accounts.GetAccountRelationships; import org.joinmastodon.android.api.requests.polls.SubmitPollVote; @@ -81,6 +82,10 @@ public abstract class BaseStatusListFragment exten @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); + if(GlobalUserPreferences.disableMarquee){ + setTitleMarqueeEnabled(false); + setSubtitleMarqueeEnabled(false); + } if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.N) setRetainInstance(true); } 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..74dc3447b 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -92,6 +92,10 @@ public class SettingsFragment extends MastodonToolbarFragment{ items.add(new HeaderItem(R.string.settings_theme)); items.add(themeItem=new ThemeItem()); items.add(new SwitchItem(R.string.theme_true_black, R.drawable.ic_fluent_dark_theme_24_regular, GlobalUserPreferences.trueBlackTheme, this::onTrueBlackThemeChanged)); + items.add(new SwitchItem(R.string.disable_marquee, R.drawable.ic_fluent_text_more_24_regular, GlobalUserPreferences.disableMarquee, i->{ + GlobalUserPreferences.disableMarquee=i.checked; + GlobalUserPreferences.save(); + })); items.add(new HeaderItem(R.string.settings_behavior)); items.add(new SwitchItem(R.string.settings_gif, R.drawable.ic_fluent_gif_24_regular, GlobalUserPreferences.playGifs, i->{ diff --git a/mastodon/src/main/res/drawable/ic_fluent_text_more_24_regular.xml b/mastodon/src/main/res/drawable/ic_fluent_text_more_24_regular.xml new file mode 100644 index 000000000..18eef7cbb --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_fluent_text_more_24_regular.xml @@ -0,0 +1,3 @@ + + + diff --git a/mastodon/src/main/res/values-de-rDE/strings.xml b/mastodon/src/main/res/values-de-rDE/strings.xml index e91d01538..1790279be 100644 --- a/mastodon/src/main/res/values-de-rDE/strings.xml +++ b/mastodon/src/main/res/values-de-rDE/strings.xml @@ -380,4 +380,5 @@ Mastodon und Ihre Privatsphäre Obwohl die Mastodon-App keine Daten sammelt, kann der Server, über den Sie sich anmelden, eine andere Richtlinie haben. Nehmen Sie sich eine Minute Zeit, um die Mastodon-Datenschutzrichtlinien und die Datenschutzrichtlinien Ihres Servers zu lesen und zu akzeptieren. Ich stimme zu + Laufschrift in Titelleisten deaktivieren diff --git a/mastodon/src/main/res/values/strings.xml b/mastodon/src/main/res/values/strings.xml index 7b5aa47c2..7719fe896 100644 --- a/mastodon/src/main/res/values/strings.xml +++ b/mastodon/src/main/res/values/strings.xml @@ -388,4 +388,5 @@ Although the Mastodon app does not collect any data, the server you sign up through may have a different policy. Take a minute to review and agree to the Mastodon app privacy policy and your server\'s privacy policy. I Agree This list is empty + Disable scrolling text in title bars \ No newline at end of file