diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java b/app/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java index 117c9eb9b..443bca279 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java @@ -208,6 +208,8 @@ public class TaskListActivity extends InjectingAppCompatActivity implements applyTheme(taskListFragment); + navigationDrawer.setSelected(filter); + FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.master, taskListFragment, FRAG_TAG_TASK_LIST) diff --git a/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java b/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java index 1e6d6a847..ecfa97795 100644 --- a/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java +++ b/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java @@ -183,11 +183,6 @@ public class FilterAdapter extends ArrayAdapter { public View getDropDownView(int position, View convertView, @NonNull ViewGroup parent) { return getView(position, convertView, parent); } - /* ====================================================================== - * ============================================================ selection - * ====================================================================== */ - - private final FilterListItem selection = null; /* ====================================================================== * ============================================================= receiver @@ -297,10 +292,6 @@ public class FilterAdapter extends ArrayAdapter { viewHolder.size.setText(locale.formatNumber(countInt)); } viewHolder.size.setVisibility(countInt > 0 ? View.VISIBLE : View.INVISIBLE); - - if (selection == viewHolder.item) { - viewHolder.view.setBackgroundColor(getColor(activity, R.color.drawer_color_selected)); - } } private void populateHeader(ViewHolder viewHolder) { diff --git a/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java b/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java index 60c50366d..612514095 100644 --- a/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java +++ b/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.java @@ -59,7 +59,7 @@ public class NavigationDrawerFragment extends InjectingFragment { private ListView mDrawerListView; private View mFragmentContainerView; - private int mCurrentSelectedPosition = 0; + private Filter selected = null; @Inject FilterCounter filterCounter; @Inject FilterProvider filterProvider; @@ -73,7 +73,7 @@ public class NavigationDrawerFragment extends InjectingFragment { super.onCreate(savedInstanceState); if (savedInstanceState != null) { - mCurrentSelectedPosition = savedInstanceState.getInt(TOKEN_LAST_SELECTED); + selected = savedInstanceState.getParcelable(TOKEN_LAST_SELECTED); } } @@ -124,7 +124,7 @@ public class NavigationDrawerFragment extends InjectingFragment { }); close(); }); - mDrawerListView.setItemChecked(mCurrentSelectedPosition, true); + return layout; } @@ -152,6 +152,10 @@ public class NavigationDrawerFragment extends InjectingFragment { mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); } + public void setSelected(Filter selected) { + this.selected = selected; + } + @Override public void onPause() { super.onPause(); @@ -169,12 +173,11 @@ public class NavigationDrawerFragment extends InjectingFragment { private void selectItem(int position) { FilterListItem item = adapter.getItem(position); if (item instanceof Filter) { - mCurrentSelectedPosition = position; - if (mDrawerListView != null) { - mDrawerListView.setItemChecked(position, true); - } - if (mCallbacks != null) { - mCallbacks.onFilterItemClicked(item); + if (!item.equals(selected)) { + selected = (Filter) item; + if (mCallbacks != null) { + mCallbacks.onFilterItemClicked(item); + } } } else if (item instanceof NavigationDrawerAction) { NavigationDrawerAction action = (NavigationDrawerAction) item; @@ -206,7 +209,7 @@ public class NavigationDrawerFragment extends InjectingFragment { @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - outState.putInt(TOKEN_LAST_SELECTED, mCurrentSelectedPosition); + outState.putParcelable(TOKEN_LAST_SELECTED, selected); } public void closeDrawer() {