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 b593f0e8..6ab38cfc 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 @@ -90,7 +90,6 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; import rikka.core.util.ResourceUtils; -import rikka.insets.WindowInsetsHelperKt; import rikka.recyclerview.RecyclerViewKt; import rikka.widget.borderview.BorderRecyclerView; @@ -136,19 +135,13 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { binding = FragmentPagerBinding.inflate(inflater, container, false); - binding.getRoot().bringChildToFront(binding.appBar); setupToolbar(binding.toolbar, R.string.Modules, R.menu.menu_modules); - binding.appBar.setLiftable(true); binding.viewPager.setAdapter(new PagerAdapter(this)); binding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { @Override public void onPageSelected(int position) { BorderRecyclerView recyclerView = binding.viewPager.findViewWithTag(position); - if (recyclerView != null) { - binding.appBar.setLifted(!recyclerView.getBorderViewDelegate().isShowingTopBorder()); - } - if (position > 0) { binding.fab.show(); } else { @@ -328,6 +321,7 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi } return super.onContextItemSelected(item); } + @Override public void onDestroyView() { super.onDestroyView(); @@ -347,18 +341,9 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi } int position = arguments.getInt("position"); ItemRepoRecyclerviewBinding binding = ItemRepoRecyclerviewBinding.inflate(getLayoutInflater(), container, false); - if (fragment.adapters.size() == 1) { - WindowInsetsHelperKt.setInitialPadding(binding.recyclerView, 0, ResourceUtils.resolveDimensionPixelOffset(requireActivity().getTheme(), androidx.appcompat.R.attr.actionBarSize, 0), 0, 0); - } else { - int height = ResourceUtils.resolveDimensionPixelOffset(requireActivity().getTheme(), androidx.appcompat.R.attr.actionBarSize, 0) - + getResources().getDimensionPixelOffset(R.dimen.tab_layout_height); - WindowInsetsHelperKt.setInitialPadding(binding.recyclerView, 0, height, 0, 0); - } - binding.recyclerView.setTag(position); binding.recyclerView.setAdapter(fragment.adapters.get(position)); RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(requireActivity()); binding.recyclerView.setLayoutManager(layoutManager); - binding.recyclerView.getBorderViewDelegate().setBorderVisibilityChangedListener((top, oldTop, bottom, oldBottom) -> fragment.binding.appBar.setLifted(!top)); binding.recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) { @@ -369,9 +354,6 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi } } }); - var insets = requireActivity().getWindow().getDecorView().getRootWindowInsets(); - if (insets != null) - binding.recyclerView.onApplyWindowInsets(insets); RecyclerViewKt.fixEdgeEffect(binding.recyclerView, false, true); 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 6d7ee8a0..1f4cddb5 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 @@ -41,7 +41,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import androidx.viewpager2.widget.ViewPager2; import com.google.android.material.button.MaterialButton; import com.google.android.material.dialog.MaterialAlertDialogBuilder; @@ -78,11 +77,9 @@ import okhttp3.Headers; import okhttp3.Request; import okhttp3.Response; import rikka.core.util.ResourceUtils; -import rikka.insets.WindowInsetsHelperKt; import rikka.recyclerview.RecyclerViewKt; import rikka.widget.borderview.BorderNestedScrollView; import rikka.widget.borderview.BorderRecyclerView; -import rikka.widget.borderview.BorderView; public class RepoItemFragment extends BaseFragment implements RepoLoader.Listener { FragmentPagerBinding binding; @@ -96,21 +93,9 @@ public class RepoItemFragment extends BaseFragment implements RepoLoader.Listene if (module == null) return binding.getRoot(); String modulePackageName = module.getName(); String moduleName = module.getDescription(); - binding.getRoot().bringChildToFront(binding.appBar); setupToolbar(binding.toolbar, moduleName, R.menu.menu_repo_item); - binding.appBar.setLiftable(true); binding.toolbar.setSubtitle(modulePackageName); binding.viewPager.setAdapter(new PagerAdapter()); - binding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { - @Override - public void onPageSelected(int position) { - BorderView borderView = binding.viewPager.findViewWithTag(position); - - if (borderView != null) { - binding.appBar.setLifted(!borderView.getBorderViewDelegate().isShowingTopBorder()); - } - } - }); int[] titles = new int[]{R.string.module_readme, R.string.module_releases, R.string.module_information}; new TabLayoutMediator(binding.tabLayout, binding.viewPager, (tab, position) -> tab.setText(titles[position])).attach(); @@ -443,8 +428,6 @@ public class RepoItemFragment extends BaseFragment implements RepoLoader.Listene public void onBindViewHolder(@NonNull PagerAdapter.ViewHolder holder, int position) { switch (position) { case 0: - holder.scrollView.getBorderViewDelegate().setBorderVisibilityChangedListener((top, oldTop, bottom, oldBottom) -> binding.appBar.setLifted(!top)); - holder.scrollView.setTag(position); if (module != null) renderGithubMarkdown(holder.webView, module.getReadmeHTML()); break; @@ -455,15 +438,7 @@ public class RepoItemFragment extends BaseFragment implements RepoLoader.Listene } else { holder.recyclerView.setAdapter(new InformationAdapter(module)); } - int height = ResourceUtils.resolveDimensionPixelOffset(requireActivity().getTheme(), androidx.appcompat.R.attr.actionBarSize, 0) - + getResources().getDimensionPixelOffset(R.dimen.tab_layout_height); - WindowInsetsHelperKt.setInitialPadding(holder.recyclerView, 0, height, 0, 0); - holder.recyclerView.setTag(position); holder.recyclerView.setLayoutManager(new LinearLayoutManager(requireActivity())); - holder.recyclerView.getBorderViewDelegate().setBorderVisibilityChangedListener((top, oldTop, bottom, oldBottom) -> binding.appBar.setLifted(!top)); - var insets = requireActivity().getWindow().getDecorView().getRootWindowInsets(); - if (insets != null) - holder.recyclerView.onApplyWindowInsets(insets); RecyclerViewKt.fixEdgeEffect(holder.recyclerView, false, true); break; } diff --git a/app/src/main/res/layout/fragment_pager.xml b/app/src/main/res/layout/fragment_pager.xml index ee848ab0..f74d1cf6 100644 --- a/app/src/main/res/layout/fragment_pager.xml +++ b/app/src/main/res/layout/fragment_pager.xml @@ -27,39 +27,38 @@ app:edgeToEdge="true" app:fitsSystemWindowsInsets="start|end"> + - + android:layout_height="wrap_content" + android:minHeight="?attr/actionBarSize" + android:elevation="0dp" + app:layout_scrollFlags="scroll|enterAlways" + app:layout_scrollEffect="none" /> - - - - + + android:layout_height="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior" /> + app:fitsSystemWindowsInsets="bottom" />