From 72b52d506748ec07d8bcf629648ad9e9d85c9f3a Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Tue, 23 Jun 2015 12:36:21 -0500 Subject: [PATCH] Move onFilterItemClicked out of AstridActivity --- .../astrid/activity/AstridActivity.java | 41 +------------------ .../astrid/activity/TaskEditFragment.java | 5 --- .../astrid/activity/TaskListActivity.java | 36 +++++++++++++--- 3 files changed, 32 insertions(+), 50 deletions(-) diff --git a/src/main/java/com/todoroo/astrid/activity/AstridActivity.java b/src/main/java/com/todoroo/astrid/activity/AstridActivity.java index 7d7a0252b..203f26329 100644 --- a/src/main/java/com/todoroo/astrid/activity/AstridActivity.java +++ b/src/main/java/com/todoroo/astrid/activity/AstridActivity.java @@ -13,7 +13,6 @@ import android.view.View; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.astrid.api.Filter; -import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.service.StartupService; @@ -39,8 +38,7 @@ import javax.inject.Inject; * */ public abstract class AstridActivity extends InjectingAppCompatActivity - implements NavigationDrawerFragment.OnFilterItemClickedListener, - TaskListFragment.OnTaskListItemClickedListener { + implements TaskListFragment.OnTaskListItemClickedListener { private static final Logger log = LoggerFactory.getLogger(AstridActivity.class); @@ -71,33 +69,6 @@ public abstract class AstridActivity extends InjectingAppCompatActivity startupService.onStartupApplication(this); } - /** - * Handles items being clicked from the filterlist-fragment. Return true if item is handled. - */ - @Override - public boolean onFilterItemClicked(FilterListItem item) { - if (this instanceof TaskListActivity && (item instanceof Filter) ) { - ((TaskListActivity) this).setSelectedItem((Filter) item); - } - // If showing both fragments, directly update the tasklist-fragment - Intent intent = getIntent(); - - if(item instanceof Filter) { - Filter filter = (Filter)item; - - Bundle extras = configureIntentAndExtrasWithFilter(intent, filter); - if (fragmentLayout == LAYOUT_DOUBLE && getTaskEditFragment() != null) { - onBackPressed(); // remove the task edit fragment when switching between lists - } - setupTasklistFragmentWithFilter(filter, extras); - - // no animation for dualpane-layout - AndroidUtilities.callOverridePendingTransition(this, 0, 0); - return true; - } - return false; - } - protected Bundle configureIntentAndExtrasWithFilter(Intent intent, Filter filter) { if(filter instanceof FilterWithCustomIntent) { int lastSelectedList = intent.getIntExtra(NavigationDrawerFragment.TOKEN_LAST_SELECTED, 0); @@ -126,16 +97,6 @@ public abstract class AstridActivity extends InjectingAppCompatActivity } } - public void setupTasklistFragmentWithFilter(Filter filter, Bundle extras) { - Class customTaskList = null; - - if (subtasksHelper.shouldUseSubtasksFragmentForFilter(filter)) { - customTaskList = SubtasksHelper.subtasksClassForFilter(filter); - } - - setupTasklistFragmentWithFilterAndCustomTaskList(filter, extras, customTaskList); - } - public void setupTasklistFragmentWithFilterAndCustomTaskList(Filter filter, Bundle extras, Class customTaskList) { TaskListFragment newFragment = TaskListFragment.instantiateWithFilterAndExtras(filter, extras, customTaskList); diff --git a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java index da8dcc327..03fa00eeb 100755 --- a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java @@ -859,11 +859,6 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - Activity activity = getActivity(); - if (activity instanceof TaskListActivity && ((TaskListActivity)activity).isDrawerOpen()) { - return; - } - menu.clear(); inflater.inflate(R.menu.task_edit_fragment, menu); if (preGingerbreadMR1()) { diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java b/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java index dfe4859cf..241c3ed53 100644 --- a/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java @@ -37,6 +37,7 @@ import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.gtasks.GtasksListFragment; import com.todoroo.astrid.gtasks.GtasksPreferenceService; +import com.todoroo.astrid.subtasks.SubtasksHelper; import com.todoroo.astrid.tags.TagFilterExposer; import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.voice.VoiceInputAssistant; @@ -218,7 +219,36 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList onBackPressed(); } - return super.onFilterItemClicked(item); + if ((item instanceof Filter)) { + setSelectedItem((Filter) item); + } + // If showing both fragments, directly update the tasklist-fragment + Intent intent = getIntent(); + + if(item instanceof Filter) { + Filter filter = (Filter)item; + + Bundle extras = configureIntentAndExtrasWithFilter(intent, filter); + if (fragmentLayout == LAYOUT_DOUBLE && getTaskEditFragment() != null) { + onBackPressed(); // remove the task edit fragment when switching between lists + } + setupTasklistFragmentWithFilter(filter, extras); + + // no animation for dualpane-layout + AndroidUtilities.callOverridePendingTransition(this, 0, 0); + return true; + } + return false; + } + + public void setupTasklistFragmentWithFilter(Filter filter, Bundle extras) { + Class customTaskList = null; + + if (subtasksHelper.shouldUseSubtasksFragmentForFilter(filter)) { + customTaskList = SubtasksHelper.subtasksClassForFilter(filter); + } + + setupTasklistFragmentWithFilterAndCustomTaskList(filter, extras, customTaskList); } @Override @@ -489,8 +519,4 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList } return super.onKeyDown(keyCode, event); } - - public boolean isDrawerOpen() { - return navigationDrawer.isDrawerOpen(); - } }