Move onFilterItemClicked out of AstridActivity

pull/281/head
Alex Baker 9 years ago
parent e825421641
commit 72b52d5067

@ -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);

@ -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()) {

@ -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();
}
}

Loading…
Cancel
Save