From 910d22daa6dcccdb6b21213ab02da1eed1842047 Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Tue, 3 Nov 2020 09:24:07 +0530 Subject: [PATCH] Use view binding in MainFragment. --- .../newpipe/fragments/MainFragment.java | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java index a77109f86..9487fa385 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java @@ -19,12 +19,12 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentStatePagerAdapterMenuWorkaround; import androidx.preference.PreferenceManager; -import androidx.viewpager.widget.ViewPager; import com.google.android.material.tabs.TabLayout; import org.schabi.newpipe.BaseFragment; import org.schabi.newpipe.R; +import org.schabi.newpipe.databinding.FragmentMainBinding; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.ErrorInfo; @@ -34,15 +34,13 @@ import org.schabi.newpipe.settings.tabs.TabsManager; import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.ServiceHelper; import org.schabi.newpipe.util.ThemeHelper; -import org.schabi.newpipe.views.ScrollableTabLayout; import java.util.ArrayList; import java.util.List; public class MainFragment extends BaseFragment implements TabLayout.OnTabSelectedListener { - private ViewPager viewPager; + private FragmentMainBinding binding; private SelectedTabsPagerAdapter pagerAdapter; - private ScrollableTabLayout tabLayout; private final List tabsList = new ArrayList<>(); private TabsManager tabsManager; @@ -90,13 +88,12 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte protected void initViews(final View rootView, final Bundle savedInstanceState) { super.initViews(rootView, savedInstanceState); - tabLayout = rootView.findViewById(R.id.main_tab_layout); - viewPager = rootView.findViewById(R.id.pager); + binding = FragmentMainBinding.bind(rootView); - tabLayout.setTabIconTint(ColorStateList.valueOf( + binding.mainTabLayout.setTabIconTint(ColorStateList.valueOf( ThemeHelper.resolveColorFromAttr(requireContext(), R.attr.colorAccent))); - tabLayout.setupWithViewPager(viewPager); - tabLayout.addOnTabSelectedListener(this); + binding.mainTabLayout.setupWithViewPager(binding.pager); + binding.mainTabLayout.addOnTabSelectedListener(this); setupTabs(); } @@ -120,8 +117,14 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte public void onDestroy() { super.onDestroy(); tabsManager.unsetSavedTabsListener(); - if (viewPager != null) { - viewPager.setAdapter(null); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + if (binding != null) { + binding.pager.setAdapter(null); + binding = null; } } @@ -172,19 +175,19 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte getChildFragmentManager(), tabsList); } - viewPager.setAdapter(null); - viewPager.setOffscreenPageLimit(tabsList.size()); - viewPager.setAdapter(pagerAdapter); + binding.pager.setAdapter(null); + binding.pager.setOffscreenPageLimit(tabsList.size()); + binding.pager.setAdapter(pagerAdapter); updateTabsIconAndDescription(); - updateTitleForTab(viewPager.getCurrentItem()); + updateTitleForTab(binding.pager.getCurrentItem()); hasTabsChanged = false; } private void updateTabsIconAndDescription() { for (int i = 0; i < tabsList.size(); i++) { - final TabLayout.Tab tabToSet = tabLayout.getTabAt(i); + final TabLayout.Tab tabToSet = binding.mainTabLayout.getTabAt(i); if (tabToSet != null) { final Tab tab = tabsList.get(i); tabToSet.setIcon(tab.getTabIconRes(requireContext()));