From b3eeb674fe44e05243056b2da691e39b8a3f3961 Mon Sep 17 00:00:00 2001 From: dkanada Date: Sun, 30 Aug 2020 18:04:31 +0900 Subject: [PATCH] use view binding for library fragment --- .../mainactivity/library/LibraryFragment.java | 75 ++++++++----------- 1 file changed, 30 insertions(+), 45 deletions(-) diff --git a/app/src/main/java/com/dkanada/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java b/app/src/main/java/com/dkanada/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java index d614d1c7..d0ed8b90 100644 --- a/app/src/main/java/com/dkanada/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java +++ b/app/src/main/java/com/dkanada/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java @@ -6,11 +6,11 @@ import android.content.SharedPreferences; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; + +import com.dkanada.gramophone.databinding.FragmentLibraryBinding; import com.google.android.material.appbar.AppBarLayout; -import com.google.android.material.tabs.TabLayout; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; -import androidx.appcompat.widget.Toolbar; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -44,22 +44,9 @@ import com.dkanada.gramophone.util.ThemeUtil; import com.dkanada.gramophone.util.PreferenceUtil; import com.dkanada.gramophone.util.Util; -import butterknife.BindView; -import butterknife.ButterKnife; -import butterknife.Unbinder; - public class LibraryFragment extends AbsMainActivityFragment implements CabHolder, MainActivity.MainActivityFragmentCallbacks, ViewPager.OnPageChangeListener, SharedPreferences.OnSharedPreferenceChangeListener { - private Unbinder unbinder; - - @BindView(R.id.toolbar) - Toolbar toolbar; - @BindView(R.id.tabs) - TabLayout tabs; - @BindView(R.id.appbar) - AppBarLayout appbar; - @BindView(R.id.pager) - ViewPager pager; + FragmentLibraryBinding binding; private MusicLibraryPagerAdapter pagerAdapter; private MaterialCab cab; @@ -73,17 +60,16 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_library, container, false); - unbinder = ButterKnife.bind(this, view); - return view; + binding = FragmentLibraryBinding.inflate(inflater); + + return binding.getRoot(); } @Override public void onDestroyView() { PreferenceUtil.getInstance(getActivity()).unregisterOnSharedPreferenceChangedListener(this); super.onDestroyView(); - pager.removeOnPageChangeListener(this); - unbinder.unbind(); + binding.pager.removeOnPageChangeListener(this); } @Override @@ -102,10 +88,10 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde if (PreferenceUtil.CATEGORIES.equals(key)) { Fragment current = getCurrentFragment(); pagerAdapter.setCategoryInfos(PreferenceUtil.getInstance(getActivity()).getCategories()); - pager.setOffscreenPageLimit(pagerAdapter.getCount() - 1); + binding.pager.setOffscreenPageLimit(pagerAdapter.getCount() - 1); int position = pagerAdapter.getItemPosition(current); if (position < 0) position = 0; - pager.setCurrentItem(position); + binding.pager.setCurrentItem(position); PreferenceUtil.getInstance(getContext()).setLastTab(position); updateTabVisibility(); @@ -114,43 +100,43 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde private void setUpToolbar() { int primaryColor = ThemeStore.primaryColor(getActivity()); - appbar.setBackgroundColor(primaryColor); - toolbar.setBackgroundColor(primaryColor); - toolbar.setNavigationIcon(R.drawable.ic_menu_white_24dp); + binding.appbar.setBackgroundColor(primaryColor); + binding.toolbar.setBackgroundColor(primaryColor); + binding.toolbar.setNavigationIcon(R.drawable.ic_menu_white_24dp); getActivity().setTitle(R.string.app_name); - getMainActivity().setSupportActionBar(toolbar); + getMainActivity().setSupportActionBar(binding.toolbar); } private void setUpViewPager() { pagerAdapter = new MusicLibraryPagerAdapter(getActivity(), getChildFragmentManager()); - pager.setAdapter(pagerAdapter); - pager.setOffscreenPageLimit(pagerAdapter.getCount() - 1); + binding.pager.setAdapter(pagerAdapter); + binding.pager.setOffscreenPageLimit(pagerAdapter.getCount() - 1); - tabs.setupWithViewPager(pager); + binding.tabs.setupWithViewPager(binding.pager); int primaryColor = ThemeStore.primaryColor(getActivity()); int normalColor = ToolbarContentTintHelper.toolbarSubtitleColor(getActivity(), primaryColor); int selectedColor = ToolbarContentTintHelper.toolbarTitleColor(getActivity(), primaryColor); - TabLayoutUtil.setTabIconColors(tabs, normalColor, selectedColor); - tabs.setTabTextColors(normalColor, selectedColor); - tabs.setSelectedTabIndicatorColor(ThemeStore.accentColor(getActivity())); + TabLayoutUtil.setTabIconColors(binding.tabs, normalColor, selectedColor); + binding.tabs.setTabTextColors(normalColor, selectedColor); + binding.tabs.setSelectedTabIndicatorColor(ThemeStore.accentColor(getActivity())); updateTabVisibility(); if (PreferenceUtil.getInstance(getContext()).getRememberLastTab()) { - pager.setCurrentItem(PreferenceUtil.getInstance(getContext()).getLastTab()); + binding.pager.setCurrentItem(PreferenceUtil.getInstance(getContext()).getLastTab()); } - pager.addOnPageChangeListener(this); + binding.pager.addOnPageChangeListener(this); } private void updateTabVisibility() { // hide the tab bar when only a single tab is visible - tabs.setVisibility(pagerAdapter.getCount() == 1 ? View.GONE : View.VISIBLE); + binding.tabs.setVisibility(pagerAdapter.getCount() == 1 ? View.GONE : View.VISIBLE); } public Fragment getCurrentFragment() { - return pagerAdapter.getFragment(pager.getCurrentItem()); + return pagerAdapter.getFragment(binding.pager.getCurrentItem()); } private boolean isPlaylistPage() { @@ -171,25 +157,25 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde } public void addOnAppBarOffsetChangedListener(AppBarLayout.OnOffsetChangedListener onOffsetChangedListener) { - appbar.addOnOffsetChangedListener(onOffsetChangedListener); + binding.appbar.addOnOffsetChangedListener(onOffsetChangedListener); } public void removeOnAppBarOffsetChangedListener(AppBarLayout.OnOffsetChangedListener onOffsetChangedListener) { - appbar.removeOnOffsetChangedListener(onOffsetChangedListener); + binding.appbar.removeOnOffsetChangedListener(onOffsetChangedListener); } public int getTotalAppBarScrollingRange() { - return appbar.getTotalScrollRange(); + return binding.appbar.getTotalScrollRange(); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); - if (pager == null) return; inflater.inflate(R.menu.menu_main, menu); if (isPlaylistPage()) { menu.add(0, R.id.action_new_playlist, 0, R.string.action_new_playlist); } + Fragment currentFragment = getCurrentFragment(); if (currentFragment instanceof AbsLibraryPagerRecyclerViewCustomGridSizeFragment && currentFragment.isAdded()) { AbsLibraryPagerRecyclerViewCustomGridSizeFragment absLibraryRecyclerViewCustomGridSizeFragment = (AbsLibraryPagerRecyclerViewCustomGridSizeFragment) currentFragment; @@ -221,7 +207,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde Activity activity = getActivity(); if (activity == null) return; - ToolbarContentTintHelper.handleOnCreateOptionsMenu(getActivity(), toolbar, menu, ATHToolbarActivity.getToolbarBackgroundColor(toolbar)); + ToolbarContentTintHelper.handleOnCreateOptionsMenu(getActivity(), binding.toolbar, menu, ATHToolbarActivity.getToolbarBackgroundColor(binding.toolbar)); } @Override @@ -229,12 +215,11 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde super.onPrepareOptionsMenu(menu); Activity activity = getActivity(); if (activity == null) return; - ToolbarContentTintHelper.handleOnPrepareOptionsMenu(activity, toolbar); + ToolbarContentTintHelper.handleOnPrepareOptionsMenu(activity, binding.toolbar); } @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { - if (pager == null) return false; Fragment currentFragment = getCurrentFragment(); if (currentFragment instanceof AbsLibraryPagerRecyclerViewCustomGridSizeFragment) { AbsLibraryPagerRecyclerViewCustomGridSizeFragment absLibraryRecyclerViewCustomGridSizeFragment = (AbsLibraryPagerRecyclerViewCustomGridSizeFragment) currentFragment; @@ -354,7 +339,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde if (gridSize > 0) { item.setChecked(true); fragment.setAndSaveGridSize(gridSize); - toolbar.getMenu().findItem(R.id.action_colored_footers).setEnabled(fragment.canUsePalette()); + binding.toolbar.getMenu().findItem(R.id.action_colored_footers).setEnabled(fragment.canUsePalette()); return true; }