From 86ec3295b6a1b0cb455025fa14d8f0d297389265 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Wed, 9 May 2012 11:24:33 -0700 Subject: [PATCH] Basic version of toggling to people mode on tablet working --- .../astrid/people/PeopleListFragment.java | 6 +++- .../res/layout/people_list_fragment_3pane.xml | 20 +++++++++++ .../astrid/activity/AstridActivity.java | 4 +-- .../astrid/activity/TaskListActivity.java | 35 +++++++++++-------- 4 files changed, 47 insertions(+), 18 deletions(-) create mode 100644 astrid/res/layout/people_list_fragment_3pane.xml diff --git a/astrid/plugin-src/com/todoroo/astrid/people/PeopleListFragment.java b/astrid/plugin-src/com/todoroo/astrid/people/PeopleListFragment.java index db7f38e8c..7d4dc5ea5 100644 --- a/astrid/plugin-src/com/todoroo/astrid/people/PeopleListFragment.java +++ b/astrid/plugin-src/com/todoroo/astrid/people/PeopleListFragment.java @@ -3,6 +3,7 @@ package com.todoroo.astrid.people; import android.app.Activity; import com.timsu.astrid.R; +import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.astrid.activity.FilterListFragment; import com.todoroo.astrid.adapter.FilterAdapter; @@ -15,6 +16,9 @@ public class PeopleListFragment extends FilterListFragment { @Override protected int getLayout(Activity activity) { - return R.layout.people_list_fragment; + if (AndroidUtilities.isTabletSized(activity)) + return R.layout.people_list_fragment_3pane; + else + return R.layout.people_list_fragment; } } diff --git a/astrid/res/layout/people_list_fragment_3pane.xml b/astrid/res/layout/people_list_fragment_3pane.xml new file mode 100644 index 000000000..62d5b64bf --- /dev/null +++ b/astrid/res/layout/people_list_fragment_3pane.xml @@ -0,0 +1,20 @@ + + + + + + + + + + diff --git a/astrid/src/com/todoroo/astrid/activity/AstridActivity.java b/astrid/src/com/todoroo/astrid/activity/AstridActivity.java index 41634ae23..9c7f92f08 100644 --- a/astrid/src/com/todoroo/astrid/activity/AstridActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/AstridActivity.java @@ -302,10 +302,10 @@ public class AstridActivity extends FragmentActivity } } - protected Fragment setupFragment(String tag, int container, Class cls, boolean createImmediate) { + protected Fragment setupFragment(String tag, int container, Class cls, boolean createImmediate, boolean replace) { final FragmentManager fm = getSupportFragmentManager(); Fragment fragment = fm.findFragmentByTag(tag); - if(fragment == null) { + if(fragment == null || replace) { try { fragment = cls.newInstance(); } catch (InstantiationException e) { diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java index 4e873be81..ed1527a4e 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java @@ -44,6 +44,7 @@ import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.core.CoreFilterExposer; import com.todoroo.astrid.core.CustomFilterExposer; import com.todoroo.astrid.data.Task; +import com.todoroo.astrid.people.PeopleListFragment; import com.todoroo.astrid.people.PeopleViewActivity; import com.todoroo.astrid.service.StatisticsConstants; import com.todoroo.astrid.service.StatisticsService; @@ -279,14 +280,14 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener } setupFragment(FilterListFragment.TAG_FILTERLIST_FRAGMENT, - R.id.filterlist_fragment_container, FilterListFragment.class, false); + R.id.filterlist_fragment_container, FilterListFragment.class, false, false); } else { fragmentLayout = LAYOUT_SINGLE; actionBar.setDisplayHomeAsUpEnabled(true); listsNav.setOnClickListener(popupMenuClickListener); createListsPopover(); setupPopoverWithFilterList((FilterListFragment) setupFragment(FilterListFragment.TAG_FILTERLIST_FRAGMENT, 0, - getFilterListClass(), true)); + getFilterListClass(), true, false)); } } @@ -294,17 +295,6 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener return FilterListFragment.class; } -// private void togglePeopleView(boolean peopleMode) { -// if (fragmentLayout != LAYOUT_SINGLE) { -// if (peopleMode) -// setupFragment(FilterListFragment.TAG_FILTERLIST_FRAGMENT, R.id.filterlist_fragment_container, -// PeopleListFragment.class, false); -// else -// setupFragment(FilterListFragment.TAG_FILTERLIST_FRAGMENT, -// R.id.filterlist_fragment_container, FilterListFragment.class, false); -// } -// } - private void createListsPopover() { listsPopover = new FragmentPopover(this, R.layout.list_dropdown_popover); listsPopover.setOnDismissListener(new OnDismissListener() { @@ -685,8 +675,12 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener onSearchRequested(); return; case MainMenuPopover.MAIN_MENU_ITEM_FRIENDS: - Intent peopleIntent = new Intent(this, PeopleViewActivity.class); - startActivity(peopleIntent); + if (fragmentLayout != LAYOUT_SINGLE) { + togglePeopleView(); + } else { + Intent peopleIntent = new Intent(this, PeopleViewActivity.class); + startActivity(peopleIntent); + } return; case MainMenuPopover.MAIN_MENU_ITEM_SUGGESTIONS: // Doesn't exist yet @@ -699,6 +693,17 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener tlf.handleOptionsMenuItemSelected(item, customIntent); } + private void togglePeopleView() { + FilterListFragment flf = getFilterListFragment(); + boolean peopleMode = !(flf instanceof PeopleListFragment); + if (peopleMode) + setupFragment(FilterListFragment.TAG_FILTERLIST_FRAGMENT, R.id.filterlist_fragment_container, + PeopleListFragment.class, false, true); + else + setupFragment(FilterListFragment.TAG_FILTERLIST_FRAGMENT, + R.id.filterlist_fragment_container, FilterListFragment.class, false, true); + } + public MainMenuPopover getMainMenuPopover() { return mainMenuPopover; }