diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-07-21 21:21:55 +0300 |
---|---|---|
committer | Niedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com> | 2020-07-21 21:22:40 +0300 |
commit | 1dfaaec61195863232140b58f2f7617b14e40592 (patch) | |
tree | d8e53a79ac6f3a53d143f2c7f42a67e2248ab273 /app/src/main/java/it/niedermann/nextcloud/deck/ui/filter | |
parent | 7399bae2743e7fba984369006c372b2f808d19c6 (diff) |
#615 Add filter "No tags"
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/filter')
3 files changed, 11 insertions, 15 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java index b3bba2f05..ce1643084 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java @@ -63,7 +63,7 @@ public class FilterDialogFragment extends BrandedDialogFragment { filterInformationDraft.observe(this, (draft) -> { switch (position) { case 0: - tab.setIcon(draft.getLabels().size() > 0 ? indicator : null); + tab.setIcon(draft.getLabels().size() > 0 || draft.isNoAssignedLabel() ? indicator : null); break; case 1: tab.setIcon(draft.getUsers().size() > 0 || draft.isNoAssignedUser() ? indicator : null); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsAdapter.java index 17d3599e7..93f8e837f 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsAdapter.java @@ -31,6 +31,7 @@ public class FilterLabelsAdapter extends RecyclerView.Adapter<FilterLabelsAdapte public FilterLabelsAdapter(@NonNull List<Label> labels, @NonNull List<Label> selectedLabels, boolean noAssignedLabel, @Nullable SelectionListener<Label> selectionListener) { super(); + this.labels.add(NOT_ASSIGNED); this.labels.addAll(labels); if (noAssignedLabel) { this.selectedLabels.add(NOT_ASSIGNED); @@ -43,7 +44,8 @@ public class FilterLabelsAdapter extends RecyclerView.Adapter<FilterLabelsAdapte @Override public long getItemId(int position) { - return labels.get(position).getLocalId(); + @Nullable final Label label = labels.get(position); + return label == null ? -1L : label.getLocalId(); } @NonNull @@ -54,12 +56,10 @@ public class FilterLabelsAdapter extends RecyclerView.Adapter<FilterLabelsAdapte @Override public void onBindViewHolder(@NonNull LabelViewHolder viewHolder, int position) { - final Label label = labels.get(position); - viewHolder.bind(labels.get(position)); if (position == 0) { - viewHolder.bindNotAssigned(label); + viewHolder.bindNotAssigned(); } else { - viewHolder.bind(label); + viewHolder.bind(labels.get(position)); } } @@ -68,10 +68,6 @@ public class FilterLabelsAdapter extends RecyclerView.Adapter<FilterLabelsAdapte return labels.size(); } - public List<Label> getSelected() { - return selectedLabels; - } - class LabelViewHolder extends RecyclerView.ViewHolder { private ItemFilterLabelBinding binding; @@ -90,13 +86,14 @@ public class FilterLabelsAdapter extends RecyclerView.Adapter<FilterLabelsAdapte bindClickListener(label); } - public void bindNotAssigned(Label label) { + public void bindNotAssigned() { binding.label.setText(itemView.getContext().getString(R.string.no_assigned_label)); binding.label.setTextColor(ColorStateList.valueOf(ContextCompat.getColor(itemView.getContext(), R.color.accent))); binding.label.setChipIcon(ContextCompat.getDrawable(itemView.getContext(), R.drawable.ic_baseline_block_24)); - binding.label.setChipBackgroundColor(ColorStateList.valueOf(ContextCompat.getColor(itemView.getContext(), android.R.color.transparent))); + binding.label.setChipBackgroundColor(ColorStateList.valueOf(ContextCompat.getColor(itemView.getContext(), R.color.primary))); binding.label.setRippleColor(null); - bindClickListener(label); + itemView.setSelected(selectedLabels.contains(NOT_ASSIGNED)); + bindClickListener(NOT_ASSIGNED); } private void bindClickListener(@Nullable Label label) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterUserAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterUserAdapter.java index 7d5252267..82230060c 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterUserAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterUserAdapter.java @@ -63,11 +63,10 @@ public class FilterUserAdapter extends RecyclerView.Adapter<FilterUserAdapter.Us @Override public void onBindViewHolder(@NonNull UserViewHolder viewHolder, int position) { - final User user = users.get(position); if (position == 0) { viewHolder.bindNotAssigned(); } else { - viewHolder.bind(user); + viewHolder.bind(users.get(position)); } } |