[app] Fix fragment usage (#727)

This commit is contained in:
tehcneko 2021-06-03 19:51:01 +08:00 committed by GitHub
parent f010322c91
commit c39b294d0f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 19 additions and 22 deletions

View File

@ -56,7 +56,6 @@ import androidx.appcompat.widget.SearchView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.Lifecycle;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager2.adapter.FragmentStateAdapter;
@ -141,7 +140,7 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi
binding.getRoot().bringChildToFront(binding.appBar);
setupToolbar(binding.toolbar, R.string.Modules, R.menu.menu_modules);
binding.viewPager.setAdapter(new PagerAdapter(requireActivity()));
binding.viewPager.setAdapter(new PagerAdapter(this));
binding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
@ -337,17 +336,16 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi
}
public static class ModuleListFragment extends Fragment {
private final int position;
private final ModulesFragment fragment;
public ModuleListFragment(int position, ModulesFragment fragment) {
this.position = position;
this.fragment = fragment;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
ModulesFragment fragment = (ModulesFragment) getParentFragment();
Bundle arguments = getArguments();
if (fragment == null || arguments == null) {
return null;
}
int position = arguments.getInt("position");
ItemRepoRecyclerviewBinding binding = ItemRepoRecyclerviewBinding.inflate(getLayoutInflater(), container, false);
if (fragment.adapters.size() == 1) {
WindowInsetsHelperKt.setInitialPadding(binding.recyclerView, 0, ResourcesKt.resolveDimensionPixelOffset(requireActivity().getTheme(), R.attr.actionBarSize, 0), 0, 0);
@ -375,20 +373,29 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi
private class PagerAdapter extends FragmentStateAdapter {
public PagerAdapter(@NonNull FragmentActivity fragmentActivity) {
super(fragmentActivity);
public PagerAdapter(@NonNull Fragment fragment) {
super(fragment);
}
@NonNull
@Override
public Fragment createFragment(int position) {
return new ModuleListFragment(position, ModulesFragment.this);
Bundle bundle = new Bundle();
bundle.putInt("position", position);
Fragment fragment = new ModuleListFragment();
fragment.setArguments(bundle);
return fragment;
}
@Override
public int getItemCount() {
return adapters.size();
}
@Override
public long getItemId(int position) {
return position;
}
}
private class ModuleAdapter extends EmptyStateRecyclerView.EmptyStateAdapter<ModuleAdapter.ViewHolder> implements Filterable {

View File

@ -84,7 +84,6 @@
<string name="module_uninstall_message">¿Quieres desinstalar este módulo?</string>
<string name="module_uninstalled">Desinstalado %1$s</string>
<string name="module_uninstall_failed">Fallo en la desinstalación</string>
<string name="user_title">Usuario %d</string>
<string name="install_to_user">Instalar al usuario %s</string>
<string name="install_to_user_message">¿Quieres instalar %1$s al usuario %2$s? Se recomienda que lo instales manualmente; forzar la instalación a través de LSPosed puede causar problemas.</string>
<string name="module_installed">%1$s instalado %2$s</string>

View File

@ -88,7 +88,6 @@
<string name="module_uninstall_failed">Échec de la désinstallation</string>
<string name="module_installed">Ajout de %1$s à lutilisateur %2$s</string>
<string name="module_install_failed">Échec de l\ajout du module</string>
<string name="user_title">Utilisateur %d</string>
<string name="install_to_user">Installation dans utilisateur %s</string>
<string name="install_to_user_message">Vous voulez installer %1$s dans lutilisateur %2$s? Il est recommandé de linstaller manuellement, fercer linstallation via LSPosed pourrait causer des problèmes.</string>

View File

@ -89,7 +89,6 @@
<string name="module_installed">%2$s 사용자에 %1$s 추가</string>
<string name="module_install_failed">모듈 추가 실패</string>
<string name="user_title">사용자 %d</string>
<string name="install_to_user">%s 사용자에게 설치</string>
<string name="install_to_user_message">%2$s 사용자에게 %1$s을(를) 설치하시겠습니까? 수동으로 설치하는 것이 좋습니다. LSPosed를 통해 강제로 설치하면 문제가 발생할 수 있습니다.</string>

View File

@ -180,7 +180,6 @@
<string name="add_module_to_user">Module toevoegen aan gebruiker</string>
<string name="module_installed">Toegevoegd %1$s naar gebruiker %2$s</string>
<string name="module_install_failed">Het toevoegen van de module is mislukt</string>
<string name="user_title">Gebruiker %d</string>
<string name="install_to_user">Installeer naar gebruiker %s</string>
<string name="install_to_user_message">Wil je installeren %1$s naar gebruiker %2$s? Het wordt aanbevolen om handmatig te installeren, het forceren van installatie via LSPosed kan problemen veroorzaken.</string>
<string name="translators"><![CDATA[<a href="https://github.com/Pandemic-XDA">Pandemic-XDA</a>]]></string>

View File

@ -88,7 +88,6 @@
<string name="module_uninstall_failed">Falha ao desinstalar</string>
<string name="module_installed">Adicionado %1$s ao usuário %2$s</string>
<string name="module_install_failed">Falha ao adicinar módulo</string>
<string name="user_title">Usuário %d</string>
<string name="install_to_user">Instalar ao usuário %s</string>
<string name="install_to_user_message">Deseja instalar %1$s ao usuário %2$s? Recomenda-se instalar manualmente, forçar a instalação via LSPosed pode causar problemas.</string>

View File

@ -86,7 +86,6 @@
<string name="module_uninstall_message">要卸载此模块吗?</string>
<string name="module_uninstalled">已卸载%1$s</string>
<string name="module_uninstall_failed">卸载失败</string>
<string name="user_title">用户 %d</string>
<string name="install_to_user">安装到用户 %s</string>
<string name="install_to_user_message">要安装 %1$s 到用户 %2$s 吗?建议手动安装或多开,通过 LSPosed 强制安装可能会出现问题。</string>
<string name="module_installed">已安装 %1$s 到用户 %2$s</string>

View File

@ -88,7 +88,6 @@
<string name="module_uninstall_failed">移除失敗</string>
<string name="module_installed">已安裝 %1$s 到使用者 %2$s</string>
<string name="module_install_failed">安裝模組失敗</string>
<string name="user_title">使用者 %d</string>
<string name="install_to_user">安裝到使用者 %s</string>
<string name="install_to_user_message">要安裝 %1$s 到使用者 %2$s 嗎?建議手動安裝或多開,透過 LSPosed 強制安裝可能會出現問題。</string>

View File

@ -22,6 +22,4 @@
<dimen name="app_icon_size">48dp</dimen>
<dimen name="tab_layout_height">48dp</dimen>
<dimen name="colorpickerpreference_widget_size">32dp</dimen>
<dimen name="item_width">400dp</dimen>
<dimen name="container_margin">8dp</dimen>
</resources>

View File

@ -88,7 +88,6 @@
<string name="module_uninstall_failed">Uninstall unsuccessful</string>
<string name="module_installed">Added %1$s to user %2$s</string>
<string name="module_install_failed">Adding module failed</string>
<string name="user_title">User %d</string>
<string name="install_to_user">Install to user %s</string>
<string name="install_to_user_message">Want to install %1$s to user %2$s? It is recommended to install manually, forcing installation via LSPosed may cause problems.</string>