Ignore click on same filter

gtask_related_email
Alex Baker 6 years ago
parent 4d89b606a2
commit 778720ab23

@ -129,9 +129,7 @@ public class FilterViewHolder extends RecyclerView.ViewHolder {
size.setVisibility(View.VISIBLE); size.setVisibility(View.VISIBLE);
} }
if (onClick != null) { row.setOnClickListener(onClick == null ? null : v -> onClick.onClick(filter));
row.setOnClickListener(v -> onClick.onClick(filter));
}
} }
private int getColor(FilterListItem filter) { private int getColor(FilterListItem filter) {
@ -168,6 +166,6 @@ public class FilterViewHolder extends RecyclerView.ViewHolder {
} }
public interface OnClick { public interface OnClick {
void onClick(FilterListItem item); void onClick(@Nullable FilterListItem item);
} }
} }

@ -6,6 +6,7 @@
package com.todoroo.astrid.adapter; package com.todoroo.astrid.adapter;
import static com.google.common.base.Objects.equal;
import static com.todoroo.andlib.utility.AndroidUtilities.assertMainThread; import static com.todoroo.andlib.utility.AndroidUtilities.assertMainThread;
import static com.todoroo.astrid.api.FilterListItem.Type.ITEM; import static com.todoroo.astrid.api.FilterListItem.Type.ITEM;
import static com.todoroo.astrid.api.FilterListItem.Type.SUBHEADER; import static com.todoroo.astrid.api.FilterListItem.Type.SUBHEADER;
@ -16,6 +17,7 @@ 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;
@ -96,7 +98,7 @@ public class NavigationDrawerAdapter extends ListAdapter<FilterListItem, FilterV
View view = inflater.inflate(type.layout, parent, false); View view = inflater.inflate(type.layout, parent, false);
if (type == ITEM) { if (type == ITEM) {
return new FilterViewHolder( return new FilterViewHolder(
view, accent, themeCache, true, locale, activity, inventory, onClick); view, accent, themeCache, true, locale, activity, inventory, this::onClickFilter);
} else if (type == SUBHEADER) { } else if (type == SUBHEADER) {
return new FilterViewHolder(view, activity); return new FilterViewHolder(view, activity);
} else { } else {
@ -104,6 +106,10 @@ public class NavigationDrawerAdapter extends ListAdapter<FilterListItem, FilterV
} }
} }
private void onClickFilter(@Nullable FilterListItem filter) {
onClick.onClick(equal(filter, selected) ? null : filter);
}
@Override @Override
public void onBindViewHolder(@NonNull FilterViewHolder holder, int position) { public void onBindViewHolder(@NonNull FilterViewHolder holder, int position) {
FilterListItem item = getItem(position); FilterListItem item = getItem(position);

@ -19,6 +19,7 @@ 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.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.drawerlayout.widget.DrawerLayout.SimpleDrawerListener;
@ -138,7 +139,7 @@ public class NavigationDrawerFragment extends InjectingFragment {
recyclerView.setAdapter(adapter); recyclerView.setAdapter(adapter);
} }
private void onFilterItemSelected(FilterListItem item) { private void onFilterItemSelected(@Nullable FilterListItem item) {
mDrawerLayout.addDrawerListener( mDrawerLayout.addDrawerListener(
new SimpleDrawerListener() { new SimpleDrawerListener() {
@Override @Override

Loading…
Cancel
Save