Ignore click on same filter

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

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

@ -6,6 +6,7 @@
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.astrid.api.FilterListItem.Type.ITEM;
import static com.todoroo.astrid.api.FilterListItem.Type.SUBHEADER;
@ -16,6 +17,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.DiffUtil.ItemCallback;
import androidx.recyclerview.widget.ListAdapter;
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);
if (type == ITEM) {
return new FilterViewHolder(
view, accent, themeCache, true, locale, activity, inventory, onClick);
view, accent, themeCache, true, locale, activity, inventory, this::onClickFilter);
} else if (type == SUBHEADER) {
return new FilterViewHolder(view, activity);
} 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
public void onBindViewHolder(@NonNull FilterViewHolder holder, int position) {
FilterListItem item = getItem(position);

@ -19,6 +19,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.drawerlayout.widget.DrawerLayout.SimpleDrawerListener;
@ -138,7 +139,7 @@ public class NavigationDrawerFragment extends InjectingFragment {
recyclerView.setAdapter(adapter);
}
private void onFilterItemSelected(FilterListItem item) {
private void onFilterItemSelected(@Nullable FilterListItem item) {
mDrawerLayout.addDrawerListener(
new SimpleDrawerListener() {
@Override

Loading…
Cancel
Save