|
|
|
@ -16,6 +16,7 @@ import com.todoroo.astrid.api.FilterWithCustomIntent;
|
|
|
|
public class TaskListFragmentPagerAdapter extends FragmentStatePagerAdapter implements FilterDataSourceChangedListener {
|
|
|
|
public class TaskListFragmentPagerAdapter extends FragmentStatePagerAdapter implements FilterDataSourceChangedListener {
|
|
|
|
|
|
|
|
|
|
|
|
private final HashMap<Integer, Fragment> positionToFragment;
|
|
|
|
private final HashMap<Integer, Fragment> positionToFragment;
|
|
|
|
|
|
|
|
private final HashMap<Filter, Class<?>> customTaskLists;
|
|
|
|
|
|
|
|
|
|
|
|
private final FilterAdapter filterAdapter; // Shares an adapter instance with the filter list fragment
|
|
|
|
private final FilterAdapter filterAdapter; // Shares an adapter instance with the filter list fragment
|
|
|
|
|
|
|
|
|
|
|
|
@ -24,6 +25,7 @@ public class TaskListFragmentPagerAdapter extends FragmentStatePagerAdapter impl
|
|
|
|
this.filterAdapter = filterAdapter;
|
|
|
|
this.filterAdapter = filterAdapter;
|
|
|
|
filterAdapter.setDataSourceChangedListener(this);
|
|
|
|
filterAdapter.setDataSourceChangedListener(this);
|
|
|
|
positionToFragment = new HashMap<Integer, Fragment>();
|
|
|
|
positionToFragment = new HashMap<Integer, Fragment>();
|
|
|
|
|
|
|
|
customTaskLists = new HashMap<Filter, Class<?>>();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@ -81,9 +83,21 @@ public class TaskListFragmentPagerAdapter extends FragmentStatePagerAdapter impl
|
|
|
|
return filterAdapter.getCount();
|
|
|
|
return filterAdapter.getCount();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setCustomTaskListForFilter(Filter f, Class<?> customTaskList) {
|
|
|
|
|
|
|
|
customTaskLists.put(f, customTaskList);
|
|
|
|
|
|
|
|
notifyDataSetChanged();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void clearCustomTaskListForFilter(Filter f) {
|
|
|
|
|
|
|
|
customTaskLists.remove(f);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private Fragment getFragmentForFilter(Filter filter) {
|
|
|
|
private Fragment getFragmentForFilter(Filter filter) {
|
|
|
|
Bundle extras = getExtrasForFilter(filter);
|
|
|
|
Bundle extras = getExtrasForFilter(filter);
|
|
|
|
return TaskListFragment.instantiateWithFilterAndExtras(filter, extras);
|
|
|
|
Class<?> customList = customTaskLists.get(filter);
|
|
|
|
|
|
|
|
if (customList == null)
|
|
|
|
|
|
|
|
customList = TaskListFragment.class;
|
|
|
|
|
|
|
|
return TaskListFragment.instantiateWithFilterAndExtras(filter, extras, customList);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Constructs extras corresponding to the specified filter that can be used as arguments to the fragment
|
|
|
|
// Constructs extras corresponding to the specified filter that can be used as arguments to the fragment
|
|
|
|
|