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-09 16:33:44 +02:00
|
|
|
import info.nightscout.androidaps.plugins.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);
|
2016-06-09 16:33:44 +02:00
|
|
|
notifyDataSetChanged();
|
|
|
|
}
|
2016-06-13 22:53:41 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public ArrayList<PluginBase> getPluginsList() {
|
|
|
|
return fragmentList;
|
|
|
|
}
|
|
|
|
|
|
|
|
public ArrayList<PluginBase> getSpecificPluginsList(int type) {
|
|
|
|
ArrayList<PluginBase> newList = new ArrayList<PluginBase>();
|
|
|
|
|
|
|
|
Iterator<PluginBase> it = fragmentList.iterator();
|
|
|
|
while (it.hasNext()) {
|
|
|
|
PluginBase p = it.next();
|
|
|
|
if (p.getType() == type)
|
|
|
|
newList.add(p);
|
|
|
|
}
|
|
|
|
return newList;
|
2016-06-04 17:28:05 +02:00
|
|
|
}
|
|
|
|
}
|