mirror of https://github.com/tasks/tasks
Skeleton for fragment pager adapter
parent
4cd3b247ce
commit
5f47be86b2
@ -0,0 +1,55 @@
|
||||
package com.todoroo.astrid.adapter;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v4.app.FragmentStatePagerAdapter;
|
||||
|
||||
import com.todoroo.astrid.activity.TaskListFragment;
|
||||
import com.todoroo.astrid.api.Filter;
|
||||
import com.todoroo.astrid.api.FilterWithCustomIntent;
|
||||
|
||||
public class TaskListFragmentPagerAdapter extends FragmentStatePagerAdapter {
|
||||
|
||||
private final Filter[] filters;
|
||||
|
||||
public TaskListFragmentPagerAdapter(FragmentManager fm, Filter[] filters) {
|
||||
super(fm);
|
||||
this.filters = filters;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
return getFragmentForFilter(filters[position]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return filters.length;
|
||||
}
|
||||
|
||||
private Fragment getFragmentForFilter(Filter filter) {
|
||||
if (filter instanceof FilterWithCustomIntent) {
|
||||
try {
|
||||
Class<?> component = Class.forName(((FilterWithCustomIntent) filter).customTaskList.getClassName());
|
||||
Constructor<?> constructor = component.getConstructor(Boolean.class, Filter.class);
|
||||
return (Fragment) constructor.newInstance(true, filter);
|
||||
} catch (NoSuchMethodException e) {
|
||||
return new TaskListFragment();
|
||||
} catch (InvocationTargetException e) {
|
||||
return new TaskListFragment();
|
||||
} catch (ClassNotFoundException e) {
|
||||
return new TaskListFragment();
|
||||
} catch (IllegalAccessException e) {
|
||||
return new TaskListFragment();
|
||||
} catch (InstantiationException e) {
|
||||
return new TaskListFragment();
|
||||
}
|
||||
} else {
|
||||
return new TaskListFragment();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue