AndroidAPS/app/src/main/java/info/nightscout/androidaps/tabs/TabPageAdapter.java

54 lines
1.4 KiB
Java
Raw Normal View History

2016-06-04 17:28:05 +02:00
package info.nightscout.androidaps.tabs;
2016-06-12 14:18:21 +02:00
import android.support.annotation.Nullable;
2016-06-04 17:28:05 +02:00
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
2016-06-13 22:53:41 +02:00
import android.support.v4.app.FragmentStatePagerAdapter;
2016-06-04 17:28:05 +02:00
import java.util.ArrayList;
2016-06-13 22:53:41 +02:00
import java.util.Iterator;
2016-06-04 17:28:05 +02:00
2016-06-14 23:45:55 +02:00
import info.nightscout.androidaps.interfaces.PluginBase;
2016-06-04 17:28:05 +02:00
/**
* Created by mike on 30.05.2016.
*/
2016-06-13 22:53:41 +02:00
public class TabPageAdapter extends FragmentStatePagerAdapter {
2016-06-04 17:28:05 +02:00
2016-06-13 22:53:41 +02:00
ArrayList<PluginBase> fragmentList = new ArrayList<PluginBase>();
ArrayList<PluginBase> visibleFragmentList = new ArrayList<PluginBase>();
FragmentManager fm;
2016-06-04 17:28:05 +02:00
public TabPageAdapter(FragmentManager fm) {
super(fm);
2016-06-13 22:53:41 +02:00
this.fm = fm;
2016-06-04 17:28:05 +02:00
}
@Override
2016-06-12 14:18:21 +02:00
@Nullable
2016-06-04 17:28:05 +02:00
public Fragment getItem(int position) {
2016-06-13 22:53:41 +02:00
Fragment fragment = (Fragment) visibleFragmentList.get(position);
2016-06-04 17:28:05 +02:00
return fragment;
}
@Override
public CharSequence getPageTitle(int position) {
2016-06-13 22:53:41 +02:00
return visibleFragmentList.get(position).getName();
2016-06-04 17:28:05 +02:00
}
@Override
public int getCount() {
2016-06-13 22:53:41 +02:00
return visibleFragmentList.size();
2016-06-04 17:28:05 +02:00
}
2016-06-13 22:53:41 +02:00
public void registerNewFragment(Fragment fragment) {
PluginBase plugin = (PluginBase) fragment;
fragmentList.add(plugin);
if (plugin.isVisibleInTabs()) {
visibleFragmentList.add(plugin);
notifyDataSetChanged();
}
2016-06-13 22:53:41 +02:00
}
2016-06-04 17:28:05 +02:00
}