From ccafa7d29a037b925986e7017e0ab030b13f97c9 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Fri, 11 Jun 2021 18:27:47 +0800 Subject: [PATCH] [app] Fix scroll bar of module fragment from shortcut (#740) * [app] Fix scroll bar of module fragment from shortcut * Also for RepoItemFragment --- .../org/lsposed/manager/ui/fragment/ModulesFragment.java | 6 +++++- .../org/lsposed/manager/ui/fragment/RepoItemFragment.java | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/lsposed/manager/ui/fragment/ModulesFragment.java b/app/src/main/java/org/lsposed/manager/ui/fragment/ModulesFragment.java index 22e13f87..79144140 100644 --- a/app/src/main/java/org/lsposed/manager/ui/fragment/ModulesFragment.java +++ b/app/src/main/java/org/lsposed/manager/ui/fragment/ModulesFragment.java @@ -21,6 +21,8 @@ package org.lsposed.manager.ui.fragment; import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS; +import static androidx.recyclerview.widget.RecyclerView.Adapter.StateRestorationPolicy.PREVENT_WHEN_EMPTY; + import android.annotation.SuppressLint; import android.content.Intent; import android.content.pm.PackageInfo; @@ -166,6 +168,7 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi for (var user : users) { var adapter = new ModuleAdapter(user); adapter.setHasStableIds(true); + adapter.setStateRestorationPolicy(PREVENT_WHEN_EMPTY); adapters.add(adapter); tabTitles.add(user.name); } @@ -179,6 +182,7 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi } else { var adapter = new ModuleAdapter(null); adapter.setHasStableIds(true); + adapter.setStateRestorationPolicy(PREVENT_WHEN_EMPTY); adapters.add(adapter); binding.viewPager.setUserInputEnabled(false); binding.tabLayout.setVisibility(View.GONE); @@ -336,7 +340,6 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi } public static class ModuleListFragment extends Fragment { - @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { @@ -365,6 +368,7 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi } } }); + binding.recyclerView.onApplyWindowInsets(requireActivity().getWindow().getDecorView().getRootWindowInsets()); RecyclerViewKt.fixEdgeEffect(binding.recyclerView, false, true); RecyclerViewKt.addFastScroller(binding.recyclerView, binding.recyclerView); return binding.getRoot(); diff --git a/app/src/main/java/org/lsposed/manager/ui/fragment/RepoItemFragment.java b/app/src/main/java/org/lsposed/manager/ui/fragment/RepoItemFragment.java index f6b6f93d..6b652297 100644 --- a/app/src/main/java/org/lsposed/manager/ui/fragment/RepoItemFragment.java +++ b/app/src/main/java/org/lsposed/manager/ui/fragment/RepoItemFragment.java @@ -406,6 +406,7 @@ public class RepoItemFragment extends BaseFragment implements RepoLoader.Listene holder.recyclerView.setTag(position); holder.recyclerView.setLayoutManager(new LinearLayoutManagerFix(requireActivity())); holder.recyclerView.getBorderViewDelegate().setBorderVisibilityChangedListener((top, oldTop, bottom, oldBottom) -> binding.appBar.setRaised(!top)); + holder.recyclerView.onApplyWindowInsets(requireActivity().getWindow().getDecorView().getRootWindowInsets()); RecyclerViewKt.fixEdgeEffect(holder.recyclerView, false, true); RecyclerViewKt.addFastScroller(holder.recyclerView, holder.itemView); break;