Navigation drawer update

* Close drawer after selecting navigation action
* Remove unused methods
* Fix pre-21 crash
pull/848/head
Alex Baker 7 years ago
parent cd5cd6fe66
commit 97d17d23c0

@ -17,7 +17,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.DiffUtil.ItemCallback; import androidx.recyclerview.widget.DiffUtil.ItemCallback;
import androidx.recyclerview.widget.ListAdapter; import androidx.recyclerview.widget.ListAdapter;
import com.todoroo.astrid.adapter.FilterViewHolder.OnClick; import com.todoroo.astrid.adapter.FilterViewHolder.OnClick;
@ -74,22 +73,8 @@ public class NavigationDrawerAdapter extends ListAdapter<FilterListItem, FilterV
} }
public void setData(List<FilterListItem> items) { public void setData(List<FilterListItem> items) {
setData(items, selected);
}
public void setData(List<FilterListItem> items, @Nullable Filter selected) {
setData(items, selected, -1);
}
public void setData(List<FilterListItem> items, @Nullable Filter selected, int defaultIndex) {
this.items = items; this.items = items;
submitList(items); submitList(items);
if (selected != null) {
this.selected = selected;
} else if (defaultIndex >= 0) {
this.selected = getFilter(defaultIndex);
}
} }
public void setCounts(Map<Filter, Integer> counts) { public void setCounts(Map<Filter, Integer> counts) {
@ -98,11 +83,6 @@ public class NavigationDrawerAdapter extends ListAdapter<FilterListItem, FilterV
notifyDataSetChanged(); notifyDataSetChanged();
} }
private Filter getFilter(int position) {
FilterListItem item = getItem(position);
return item instanceof Filter ? (Filter) item : null;
}
@Override @Override
public long getItemId(int position) { public long getItemId(int position) {
return position; return position;

@ -16,6 +16,7 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.view.GravityCompat; import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout; import androidx.drawerlayout.widget.DrawerLayout;
import androidx.drawerlayout.widget.DrawerLayout.SimpleDrawerListener;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -132,16 +133,13 @@ public class NavigationDrawerFragment extends InjectingFragment {
} }
private void onFilterItemSelected(FilterListItem item) { private void onFilterItemSelected(FilterListItem item) {
if (item instanceof Filter) {
mDrawerLayout.addDrawerListener( mDrawerLayout.addDrawerListener(
new DrawerLayout.SimpleDrawerListener() { new SimpleDrawerListener() {
@Override @Override
public void onDrawerClosed(View drawerView) { public void onDrawerClosed(View drawerView) {
mDrawerLayout.removeDrawerListener(this); mDrawerLayout.removeDrawerListener(this);
if (item instanceof Filter) {
openFilter((Filter) item); openFilter((Filter) item);
}
});
close();
} else if (item instanceof NavigationDrawerAction) { } else if (item instanceof NavigationDrawerAction) {
NavigationDrawerAction action = (NavigationDrawerAction) item; NavigationDrawerAction action = (NavigationDrawerAction) item;
if (action.requestCode > 0) { if (action.requestCode > 0) {
@ -151,6 +149,9 @@ public class NavigationDrawerFragment extends InjectingFragment {
} }
} }
} }
});
close();
}
public boolean isDrawerOpen() { public boolean isDrawerOpen() {
return mDrawerLayout != null && mDrawerLayout.isDrawerOpen(mFragmentContainerView); return mDrawerLayout != null && mDrawerLayout.isDrawerOpen(mFragmentContainerView);

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/drawer_background_selected" android:state_selected="true"/>
<item android:drawable="@drawable/drawer_background"/>
</selector>

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/drawer_background_selected" android:state_selected="true"/> <item android:drawable="@color/drawer_color_selected" android:state_selected="true"/>
<item android:drawable="@drawable/drawer_background"/> <item android:drawable="@color/drawer_color"/>
</selector> </selector>
Loading…
Cancel
Save