From 417c66d73a2c732372a1526979d1195c06a13192 Mon Sep 17 00:00:00 2001 From: Ebrahim Byagowi Date: Wed, 8 Apr 2020 15:50:08 +0430 Subject: Adopt StatisticsFragment with ViewPager2 --- .../fragment/preferences/StatisticsFragment.java | 63 +++++++++++----------- 1 file changed, 30 insertions(+), 33 deletions(-) (limited to 'app/src/main/java/de/danoeh') diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/StatisticsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/StatisticsFragment.java index 4b8cf1e1c..1f93bd0e5 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/StatisticsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/StatisticsFragment.java @@ -1,17 +1,17 @@ package de.danoeh.antennapod.fragment.preferences; -import android.content.res.Resources; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentPagerAdapter; -import androidx.viewpager.widget.ViewPager; +import androidx.viewpager2.adapter.FragmentStateAdapter; +import androidx.viewpager2.widget.ViewPager2; import com.google.android.material.tabs.TabLayout; +import com.google.android.material.tabs.TabLayoutMediator; import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.PreferenceActivity; @@ -29,25 +29,34 @@ public class StatisticsFragment extends Fragment { private TabLayout tabLayout; - private ViewPager viewPager; + private ViewPager2 viewPager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } - public View onCreateView(LayoutInflater inflater, ViewGroup container, + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); setHasOptionsMenu(true); View rootView = inflater.inflate(R.layout.pager_fragment, container, false); viewPager = rootView.findViewById(R.id.viewpager); - viewPager.setAdapter(new StatisticsPagerAdapter(getChildFragmentManager(), getResources())); - + viewPager.setAdapter(new StatisticsPagerAdapter(this)); // Give the TabLayout the ViewPager tabLayout = rootView.findViewById(R.id.sliding_tabs); - tabLayout.setupWithViewPager(viewPager); + new TabLayoutMediator(tabLayout, viewPager, (tab, position) -> { + switch (position) { + case POS_LISTENED_HOURS: + tab.setText(getString(R.string.playback_statistics_label)); + break; + default: + case POS_SPACE_TAKEN: + tab.setText(getString(R.string.download_statistics_label)); + break; + } + }).attach(); rootView.findViewById(R.id.toolbar).setVisibility(View.GONE); @@ -60,39 +69,27 @@ public class StatisticsFragment extends Fragment { ((PreferenceActivity) getActivity()).getSupportActionBar().setTitle(R.string.statistics_label); } - public static class StatisticsPagerAdapter extends FragmentPagerAdapter { - - private final Resources resources; + public static class StatisticsPagerAdapter extends FragmentStateAdapter { - public StatisticsPagerAdapter(FragmentManager fm, Resources resources) { - super(fm); - this.resources = resources; + StatisticsPagerAdapter(@NonNull Fragment fragment) { + super(fragment); } + @NonNull @Override - public Fragment getItem(int position) { - if (position == 0) { - return new PlaybackStatisticsFragment(); - } else { - return new DownloadStatisticsFragment(); + public Fragment createFragment(int position) { + switch (position) { + case 0: + return new PlaybackStatisticsFragment(); + default: + case 1: + return new DownloadStatisticsFragment(); } } @Override - public int getCount() { + public int getItemCount() { return TOTAL_COUNT; } - - @Override - public CharSequence getPageTitle(int position) { - switch (position) { - case POS_LISTENED_HOURS: - return resources.getString(R.string.playback_statistics_label); - case POS_SPACE_TAKEN: - return resources.getString(R.string.download_statistics_label); - default: - return super.getPageTitle(position); - } - } } } -- cgit v1.2.3