diff options
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java | 71 |
1 files changed, 34 insertions, 37 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java index 6f537be96..90ccd91ce 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java @@ -2,19 +2,21 @@ package de.danoeh.antennapod.fragment; import android.content.Context; import android.content.SharedPreferences; -import android.content.res.Resources; import android.os.Bundle; -import androidx.appcompat.app.AppCompatActivity; -import androidx.appcompat.widget.Toolbar; -import com.google.android.material.tabs.TabLayout; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentPagerAdapter; -import androidx.viewpager.widget.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.fragment.app.Fragment; +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; /** @@ -29,10 +31,11 @@ public class DownloadsFragment extends Fragment { public static final int POS_RUNNING = 0; private static final int POS_COMPLETED = 1; public static final int POS_LOG = 2; + private static final int TOTAL_COUNT = 3; private static final String PREF_LAST_TAB_POSITION = "tab_position"; - private ViewPager viewPager; + private ViewPager2 viewPager; private TabLayout tabLayout; @Override @@ -44,12 +47,23 @@ public class DownloadsFragment extends Fragment { ((AppCompatActivity) getActivity()).setSupportActionBar(toolbar); viewPager = root.findViewById(R.id.viewpager); - DownloadsPagerAdapter pagerAdapter = new DownloadsPagerAdapter(getChildFragmentManager(), getResources()); - viewPager.setAdapter(pagerAdapter); + viewPager.setAdapter(new DownloadsPagerAdapter(this)); // Give the TabLayout the ViewPager tabLayout = root.findViewById(R.id.sliding_tabs); - tabLayout.setupWithViewPager(viewPager); + new TabLayoutMediator(tabLayout, viewPager, (tab, position) -> { + switch (position) { + case POS_RUNNING: + tab.setText(R.string.downloads_running_label); + break; + case POS_COMPLETED: + tab.setText(R.string.downloads_completed_label); + break; + case POS_LOG: + tab.setText(R.string.downloads_log_label); + break; + } + }).attach(); return root; } @@ -83,46 +97,29 @@ public class DownloadsFragment extends Fragment { viewPager.setCurrentItem(lastPosition); } - public static class DownloadsPagerAdapter extends FragmentPagerAdapter { - - final Resources resources; + public static class DownloadsPagerAdapter extends FragmentStateAdapter { - public DownloadsPagerAdapter(FragmentManager fm, Resources resources) { - super(fm); - this.resources = resources; + DownloadsPagerAdapter(@NonNull Fragment fragment) { + super(fragment); } + @NonNull @Override - public Fragment getItem(int position) { + public Fragment createFragment(int position) { switch (position) { case POS_RUNNING: return new RunningDownloadsFragment(); case POS_COMPLETED: return new CompletedDownloadsFragment(); + default: case POS_LOG: return new DownloadLogFragment(); - default: - return null; } } @Override - public int getCount() { - return 3; - } - - @Override - public CharSequence getPageTitle(int position) { - switch (position) { - case POS_RUNNING: - return resources.getString(R.string.downloads_running_label); - case POS_COMPLETED: - return resources.getString(R.string.downloads_completed_label); - case POS_LOG: - return resources.getString(R.string.downloads_log_label); - default: - return super.getPageTitle(position); - } + public int getItemCount() { + return TOTAL_COUNT; } } } |