diff --git a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java index c835d5bbe..c4f6615be 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java +++ b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java @@ -29,6 +29,7 @@ public class GlobalUserPreferences{ public static boolean enableDeleteNotifications; public static boolean translateButtonOpenedOnly; public static boolean uniformNotificationIcon; + public static boolean reduceMotion; public static String publishButtonText; public static ThemePreference theme; public static ColorPreference color; @@ -62,6 +63,7 @@ public class GlobalUserPreferences{ enableDeleteNotifications=prefs.getBoolean("enableDeleteNotifications", false); translateButtonOpenedOnly=prefs.getBoolean("translateButtonOpenedOnly", false); uniformNotificationIcon=prefs.getBoolean("uniformNotificationIcon", false); + reduceMotion=prefs.getBoolean("reduceMotion", false); publishButtonText=prefs.getString("publishButtonText", ""); theme=ThemePreference.values()[prefs.getInt("theme", 0)]; recentLanguages=fromJson(prefs.getString("recentLanguages", "{}"), recentLanguagesType, new HashMap<>()); @@ -90,6 +92,7 @@ public class GlobalUserPreferences{ .putBoolean("enableDeleteNotifications", enableDeleteNotifications) .putBoolean("translateButtonOpenedOnly", translateButtonOpenedOnly) .putBoolean("uniformNotificationIcon", uniformNotificationIcon) + .putBoolean("reduceMotion", reduceMotion) .putString("publishButtonText", publishButtonText) .putInt("theme", theme.ordinal()) .putString("color", color.name()) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java index 98579bbaa..d37edec17 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java @@ -574,9 +574,11 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr scrollView.post(() -> { int bottom = scrollView.getChildAt(0).getBottom(); int delta = bottom - (scrollView.getScrollY() + scrollView.getHeight()); - int space = Math.min(V.dp(150), delta); + int space = GlobalUserPreferences.reduceMotion ? 0 : Math.min(V.dp(150), delta); scrollView.scrollBy(0, delta - space); - scrollView.postDelayed(() -> scrollView.smoothScrollBy(0, space), 150); + if (!GlobalUserPreferences.reduceMotion) { + scrollView.postDelayed(() -> scrollView.smoothScrollBy(0, space), 150); + } }); } } 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 5ac738f18..019983c9d 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -158,7 +158,11 @@ public class SettingsFragment extends MastodonToolbarFragment{ }); })); items.add(new SwitchItem(R.string.sk_settings_uniform_icon_for_notifications, R.drawable.ic_ntf_logo, GlobalUserPreferences.uniformNotificationIcon, i->{ - GlobalUserPreferences.uniformNotificationIcon =i.checked; + GlobalUserPreferences.uniformNotificationIcon=i.checked; + GlobalUserPreferences.save(); + })); + items.add(new SwitchItem(R.string.sk_settings_reduce_motion, R.drawable.ic_fluent_star_emphasis_24_regular, GlobalUserPreferences.reduceMotion, i->{ + GlobalUserPreferences.reduceMotion=i.checked; GlobalUserPreferences.save(); })); diff --git a/mastodon/src/main/res/drawable/ic_fluent_star_emphasis_24_regular.xml b/mastodon/src/main/res/drawable/ic_fluent_star_emphasis_24_regular.xml new file mode 100644 index 000000000..dca85947f --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_fluent_star_emphasis_24_regular.xml @@ -0,0 +1,3 @@ + + + diff --git a/mastodon/src/main/res/values/strings_sk.xml b/mastodon/src/main/res/values/strings_sk.xml index dbcdc1348..c58e04aa5 100644 --- a/mastodon/src/main/res/values/strings_sk.xml +++ b/mastodon/src/main/res/values/strings_sk.xml @@ -124,4 +124,5 @@ Schedule or draft Don’t schedule Don’t draft + Reduce motion in animations \ No newline at end of file