diff --git a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java index 9638d34bc1..c234027faf 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 static void load(){ 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 static void save(){ .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 666e5395ea..0bfc93cad4 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.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 View onCreateContentView(LayoutInflater inflater, ViewGroup container, Bu 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 3e3530f7b7..35d293826a 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 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){ } 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 4bba8981c2..6712be80c3 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 void onCreate(Bundle savedInstanceState){ 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 ccd663ca43..8e69e7b194 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 View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, 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 0000000000..0e2d0c11f6 --- /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 52ff58070b..1bdb2145b0 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