From a52f608af91450f7d3aba643f637ae046e7534a1 Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Thu, 22 Aug 2019 17:56:11 +0800 Subject: Hide FAB when RecyclerView in PostFragment is scrolling down. --- .../infinityforreddit/MainActivity.java | 9 +++++++ .../infinityforreddit/PostFragment.java | 28 +++++++++++++++++++++- .../ViewSubredditDetailActivity.java | 8 +++++++ 3 files changed, 44 insertions(+), 1 deletion(-) (limited to 'app') diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/MainActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/MainActivity.java index 8be70369..f19f54b4 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/MainActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/MainActivity.java @@ -399,6 +399,7 @@ public class MainActivity extends AppCompatActivity implements SortTypeBottomShe @Override public void onPageSelected(int position) { + fab.show(); if(isInLazyMode) { if(position == sectionsPagerAdapter.getCurrentLazyModeFragmentPosition()) { sectionsPagerAdapter.resumeLazyMode(); @@ -793,6 +794,14 @@ public class MainActivity extends AppCompatActivity implements SortTypeBottomShe } } + public void postScrollUp() { + fab.show(); + } + + public void postScrollDown() { + fab.hide(); + } + @Subscribe public void onAccountSwitchEvent(SwitchAccountEvent event) { if(!getClass().getName().equals(event.excludeActivityClassName)) { diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java index cade1c5a..a1267632 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java @@ -189,11 +189,37 @@ public class PostFragment extends Fragment implements FragmentCommunicator { return false; }); + if(activity instanceof MainActivity) { + mPostRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { + if (dy > 0) { + ((MainActivity) activity).postScrollDown(); + } else if (dy < 0) { + ((MainActivity) activity).postScrollUp(); + } + + } + }); + } else if(activity instanceof ViewSubredditDetailActivity) { + mPostRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { + if (dy > 0) { + ((ViewSubredditDetailActivity) activity).postScrollDown(); + } else if (dy < 0) { + ((ViewSubredditDetailActivity) activity).postScrollUp(); + } + + } + }); + } + int postType = getArguments().getInt(EXTRA_POST_TYPE); String sortType = getArguments().getString(EXTRA_SORT_TYPE); int filter = getArguments().getInt(EXTRA_FILTER); String accessToken = getArguments().getString(EXTRA_ACCESS_TOKEN); - boolean nsfw = mSharedPreferences.getBoolean(SharedPreferencesUtils.NSFW_KEY, true); + boolean nsfw = mSharedPreferences.getBoolean(SharedPreferencesUtils.NSFW_KEY, false); PostViewModel.Factory factory; diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewSubredditDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewSubredditDetailActivity.java index d37998e2..bf718932 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewSubredditDetailActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewSubredditDetailActivity.java @@ -566,6 +566,14 @@ public class ViewSubredditDetailActivity extends AppCompatActivity implements So } } + public void postScrollUp() { + fab.show(); + } + + public void postScrollDown() { + fab.hide(); + } + @Subscribe public void onAccountSwitchEvent(SwitchAccountEvent event) { if(!getClass().getName().equals(event.excludeActivityClassName)) { -- cgit v1.2.3