Keep currently visible list on rotate

pull/14/head
Sam Bosley 14 years ago
parent 5faaa1cf18
commit f25f4aed67

@ -156,19 +156,7 @@ public class AstridActivity extends FragmentActivity
if(item instanceof Filter) { if(item instanceof Filter) {
Filter filter = (Filter)item; Filter filter = (Filter)item;
if(filter instanceof FilterWithCustomIntent) { Bundle extras = configureIntentAndExtrasWithFilter(intent, filter);
int lastSelectedList = intent.getIntExtra(FilterListFragment.TOKEN_LAST_SELECTED, 0);
intent = ((FilterWithCustomIntent)filter).getCustomIntent();
intent.putExtra(FilterListFragment.TOKEN_LAST_SELECTED, lastSelectedList);
} else {
intent.putExtra(TaskListFragment.TOKEN_FILTER, filter);
}
setIntent(intent);
Bundle extras = intent.getExtras();
if (extras != null)
extras = (Bundle) extras.clone();
setupTasklistFragmentWithFilter(filter, extras); setupTasklistFragmentWithFilter(filter, extras);
// no animation for dualpane-layout // no animation for dualpane-layout
@ -186,6 +174,23 @@ public class AstridActivity extends FragmentActivity
} }
} }
protected Bundle configureIntentAndExtrasWithFilter(Intent intent, Filter filter) {
if(filter instanceof FilterWithCustomIntent) {
int lastSelectedList = intent.getIntExtra(FilterListFragment.TOKEN_LAST_SELECTED, 0);
intent = ((FilterWithCustomIntent)filter).getCustomIntent();
intent.putExtra(FilterListFragment.TOKEN_LAST_SELECTED, lastSelectedList);
} else {
intent.putExtra(TaskListFragment.TOKEN_FILTER, filter);
}
setIntent(intent);
Bundle extras = intent.getExtras();
if (extras != null)
extras = (Bundle) extras.clone();
return extras;
}
public void setupActivityFragment(TagData tagData) { public void setupActivityFragment(TagData tagData) {
if (fragmentLayout == LAYOUT_SINGLE) if (fragmentLayout == LAYOUT_SINGLE)
return; return;

@ -391,9 +391,11 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener
@Override @Override
public void onPageSelected(int position) { public void onPageSelected(int position) {
if (tlfPagerAdapter != null) if (tlfPagerAdapter != null) {
configureIntentAndExtrasWithFilter(getIntent(), tlfPagerAdapter.getFilter(position));
setListsTitle(tlfPagerAdapter.getPageTitle(position).toString()); setListsTitle(tlfPagerAdapter.getPageTitle(position).toString());
} }
}
@Override @Override
public void onPageScrolled(int position, float positionOffset, public void onPageScrolled(int position, float positionOffset,

@ -39,6 +39,10 @@ public class TaskListFragmentPagerAdapter extends FragmentStatePagerAdapter impl
return filterAdapter.addOrLookup(filter); return filterAdapter.addOrLookup(filter);
} }
public Filter getFilter(int position) {
return filterAdapter.getItem(position);
}
@Override @Override
public int getCount() { public int getCount() {
return filterAdapter.getCount(); return filterAdapter.getCount();

Loading…
Cancel
Save