From 1f20b21fc84bf006c1ec14bd2229cbfad5215ec8 Mon Sep 17 00:00:00 2001 From: sk Date: Mon, 19 Dec 2022 15:31:38 +0100 Subject: [PATCH] add option to disable swiping closes sk22#165 --- .../java/org/joinmastodon/android/GlobalUserPreferences.java | 3 +++ .../android/fragments/NotificationsFragment.java | 2 ++ .../org/joinmastodon/android/fragments/ProfileFragment.java | 1 + .../org/joinmastodon/android/fragments/SettingsFragment.java | 5 +++++ .../android/fragments/discover/DiscoverFragment.java | 1 + .../main/res/drawable/ic_fluent_swipe_right_24_regular.xml | 3 +++ mastodon/src/main/res/values/strings_sk.xml | 1 + 7 files changed, 16 insertions(+) create mode 100644 mastodon/src/main/res/drawable/ic_fluent_swipe_right_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 9638d34bc..c234027fa 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java +++ b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java @@ -26,6 +26,7 @@ public class GlobalUserPreferences{ public static boolean showInteractionCounts; public static boolean alwaysExpandContentWarnings; public static boolean disableMarquee; + public static boolean disableSwipe; public static boolean voteButtonForSingleChoice; public static ThemePreference theme; public static ColorPreference color; @@ -54,6 +55,7 @@ public class GlobalUserPreferences{ showInteractionCounts=prefs.getBoolean("showInteractionCounts", false); alwaysExpandContentWarnings=prefs.getBoolean("alwaysExpandContentWarnings", false); disableMarquee=prefs.getBoolean("disableMarquee", false); + disableSwipe=prefs.getBoolean("disableSwipe", false); voteButtonForSingleChoice=prefs.getBoolean("voteButtonForSingleChoice", true); theme=ThemePreference.values()[prefs.getInt("theme", 0)]; recentLanguages=fromJson(prefs.getString("recentLanguages", "{}"), recentLanguagesType, new HashMap<>()); @@ -78,6 +80,7 @@ public class GlobalUserPreferences{ .putBoolean("showInteractionCounts", showInteractionCounts) .putBoolean("alwaysExpandContentWarnings", alwaysExpandContentWarnings) .putBoolean("disableMarquee", disableMarquee) + .putBoolean("disableSwipe", disableSwipe) .putInt("theme", theme.ordinal()) .putString("color", color.name()) .putString("recentLanguages", gson.toJson(recentLanguages)) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/NotificationsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/NotificationsFragment.java index 666e5395e..0bfc93cad 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/NotificationsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/NotificationsFragment.java @@ -14,6 +14,7 @@ import android.widget.FrameLayout; import android.widget.LinearLayout; import org.joinmastodon.android.E; +import org.joinmastodon.android.GlobalUserPreferences; import org.joinmastodon.android.R; import org.joinmastodon.android.api.requests.accounts.GetFollowRequests; import org.joinmastodon.android.events.FollowRequestHandledEvent; @@ -109,6 +110,7 @@ public class NotificationsFragment extends MastodonToolbarFragment implements Sc tabLayout.setTabTextColors(UiUtils.getThemeColor(getActivity(), R.attr.colorTabInactive), UiUtils.getThemeColor(getActivity(), android.R.attr.textColorPrimary)); pager.setOffscreenPageLimit(4); + pager.setUserInputEnabled(!GlobalUserPreferences.disableSwipe); pager.setAdapter(new DiscoverPagerAdapter()); pager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback(){ @Override diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java index 3e3530f7b..35d293826 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java @@ -237,6 +237,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList } pager.setOffscreenPageLimit(5); + pager.setUserInputEnabled(!GlobalUserPreferences.disableSwipe); pager.setAdapter(new ProfilePagerAdapter()); pager.getLayoutParams().height=getResources().getDisplayMetrics().heightPixels; 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 4bba8981c..6712be80c 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -121,6 +121,11 @@ public class SettingsFragment extends MastodonToolbarFragment{ GlobalUserPreferences.alwaysExpandContentWarnings=i.checked; GlobalUserPreferences.save(); })); + items.add(new SwitchItem(R.string.sk_tabs_disable_swipe, R.drawable.ic_fluent_swipe_right_24_regular, GlobalUserPreferences.disableSwipe, i->{ + GlobalUserPreferences.disableSwipe=i.checked; + GlobalUserPreferences.save(); + needAppRestart=true; + })); items.add(new HeaderItem(R.string.home_timeline)); items.add(new SwitchItem(R.string.sk_settings_show_replies, R.drawable.ic_fluent_chat_multiple_24_regular, GlobalUserPreferences.showReplies, i->{ 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 ccd663ca4..8e69e7b19 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 @@ -104,6 +104,7 @@ public class DiscoverFragment extends AppKitFragment implements ScrollableToTop, tabLayout.setTabTextColors(UiUtils.getThemeColor(getActivity(), R.attr.colorTabInactive), UiUtils.getThemeColor(getActivity(), android.R.attr.textColorPrimary)); pager.setOffscreenPageLimit(4); + pager.setUserInputEnabled(!GlobalUserPreferences.disableSwipe); pager.setAdapter(new DiscoverPagerAdapter()); pager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback(){ @Override diff --git a/mastodon/src/main/res/drawable/ic_fluent_swipe_right_24_regular.xml b/mastodon/src/main/res/drawable/ic_fluent_swipe_right_24_regular.xml new file mode 100644 index 000000000..0e2d0c11f --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_fluent_swipe_right_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 52ff58070..1bdb2145b 100644 --- a/mastodon/src/main/res/values/strings_sk.xml +++ b/mastodon/src/main/res/values/strings_sk.xml @@ -62,4 +62,5 @@ The shark salutes you! To get started, please enter your home instance’s domain name below. example.social \@megalodon + Disable swiping between tabs