diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-04-24 12:30:25 +0300 |
---|---|---|
committer | Niedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com> | 2020-04-24 15:12:11 +0300 |
commit | 996a9f4d3763e36a8debc394a1cb993f804b7d40 (patch) | |
tree | 30301def7addbc8d6645c715f1ada01a502e395d /app/src/main/java/it/niedermann/nextcloud/deck/ui/filter | |
parent | 9c719f71585c10f6d6e4cce207abe4ab8e587ad0 (diff) |
#396 Filter cards
Use ViewBinding
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/filter')
3 files changed, 27 insertions, 47 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 f5817c4ef..a6bdfdadb 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 @@ -24,6 +24,7 @@ import it.niedermann.nextcloud.deck.ui.branding.BrandedAlertDialogBuilder; import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; +import static it.niedermann.nextcloud.deck.util.DimensionUtil.dpToPx; public class FilterDialogFragment extends BrandedDialogFragment { @@ -99,13 +100,13 @@ public class FilterDialogFragment extends BrandedDialogFragment { }); observeOnce(syncManager.findProposalsForLabelsToAssign(account.getId(), boardId), requireActivity(), (labels) -> { - labelAdapter = new LabelFilterAdapter(requireContext(), labels, this.filterInformation.getLabels()); + labelAdapter = new LabelFilterAdapter(labels, this.filterInformation.getLabels()); binding.labels.setNestedScrollingEnabled(false); binding.labels.setAdapter(labelAdapter); }); observeOnce(syncManager.findProposalsForUsersToAssign(account.getId(), boardId), requireActivity(), (users) -> { - userAdapter = new UserFilterAdapter(requireContext(), account, users, this.filterInformation.getUsers()); + userAdapter = new UserFilterAdapter(dpToPx(requireContext(), R.dimen.avatar_size), account, users, this.filterInformation.getUsers()); binding.users.setNestedScrollingEnabled(false); binding.users.setAdapter(userAdapter); }); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/LabelFilterAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/LabelFilterAdapter.java index 82a75cec9..1eee5c8bb 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/LabelFilterAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/LabelFilterAdapter.java @@ -1,36 +1,29 @@ package it.niedermann.nextcloud.deck.ui.filter; -import android.content.Context; import android.content.res.ColorStateList; import android.graphics.Color; import android.view.LayoutInflater; -import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import com.google.android.material.chip.Chip; - import java.util.ArrayList; import java.util.List; -import it.niedermann.nextcloud.deck.R; +import it.niedermann.nextcloud.deck.databinding.ItemFilterLabelBinding; import it.niedermann.nextcloud.deck.model.Label; import it.niedermann.nextcloud.deck.util.ColorUtil; @SuppressWarnings("WeakerAccess") public class LabelFilterAdapter extends RecyclerView.Adapter<LabelFilterAdapter.LabelViewHolder> { @NonNull - private final Context context; - @NonNull private final List<Label> labels = new ArrayList<>(); @NonNull private final List<Label> selectedLabels = new ArrayList<>(); - public LabelFilterAdapter(@NonNull Context context, @NonNull List<Label> labels, @NonNull List<Label> selectedLabels) { + public LabelFilterAdapter(@NonNull List<Label> labels, @NonNull List<Label> selectedLabels) { super(); - this.context = context; this.labels.addAll(labels); this.selectedLabels.addAll(selectedLabels); setHasStableIds(true); @@ -44,9 +37,8 @@ public class LabelFilterAdapter extends RecyclerView.Adapter<LabelFilterAdapter. @NonNull @Override - public LabelViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { - View view = LayoutInflater.from(context).inflate(R.layout.item_filter_label, viewGroup, false); - return new LabelViewHolder(view); + public LabelViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new LabelViewHolder(ItemFilterLabelBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); } @Override @@ -64,21 +56,19 @@ public class LabelFilterAdapter extends RecyclerView.Adapter<LabelFilterAdapter. } class LabelViewHolder extends RecyclerView.ViewHolder { + private ItemFilterLabelBinding binding; - // TODO Use ViewBinding - private Chip chip; - - LabelViewHolder(@NonNull View itemView) { - super(itemView); - chip = itemView.findViewById(R.id.label); + LabelViewHolder(@NonNull ItemFilterLabelBinding binding) { + super(binding.getRoot()); + this.binding = binding; } void bind(final Label label) { - chip.setText(label.getTitle()); + binding.label.setText(label.getTitle()); final int labelColor = Color.parseColor("#" + label.getColor()); - chip.setChipBackgroundColor(ColorStateList.valueOf(labelColor)); + binding.label.setChipBackgroundColor(ColorStateList.valueOf(labelColor)); final int color = ColorUtil.getForegroundColorForBackgroundColor(labelColor); - chip.setTextColor(color); + binding.label.setTextColor(color); itemView.setSelected(selectedLabels.contains(label)); itemView.setOnClickListener(view -> { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/UserFilterAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/UserFilterAdapter.java index 49cb5ae6a..89697e209 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/UserFilterAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/UserFilterAdapter.java @@ -1,46 +1,40 @@ package it.niedermann.nextcloud.deck.ui.filter; -import android.content.Context; import android.view.LayoutInflater; -import android.view.View; import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.annotation.Px; import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; import java.util.List; import it.niedermann.nextcloud.deck.R; +import it.niedermann.nextcloud.deck.databinding.ItemFilterUserBinding; import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.User; import it.niedermann.nextcloud.deck.util.ViewUtil; -import static it.niedermann.nextcloud.deck.util.DimensionUtil.dpToPx; - @SuppressWarnings("WeakerAccess") public class UserFilterAdapter extends RecyclerView.Adapter<UserFilterAdapter.UserViewHolder> { + @Px final int avatarSize; @NonNull - private final Context context; - @NonNull private final Account account; @NonNull private final List<User> users = new ArrayList<>(); @NonNull private final List<User> selectedUsers = new ArrayList<>(); - public UserFilterAdapter(@NonNull Context context, @NonNull Account account, @NonNull List<User> users, @NonNull List<User> selectedUsers) { + public UserFilterAdapter(@Px int avatarSize, @NonNull Account account, @NonNull List<User> users, @NonNull List<User> selectedUsers) { super(); + this.avatarSize = avatarSize; this.account = account; - this.context = context; this.users.addAll(users); this.selectedUsers.addAll(selectedUsers); setHasStableIds(true); notifyDataSetChanged(); - avatarSize = dpToPx(context, R.dimen.avatar_size); } @Override @@ -50,9 +44,8 @@ public class UserFilterAdapter extends RecyclerView.Adapter<UserFilterAdapter.Us @NonNull @Override - public UserViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { - View view = LayoutInflater.from(context).inflate(R.layout.item_filter_user, viewGroup, false); - return new UserViewHolder(view); + public UserViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new UserViewHolder(ItemFilterUserBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); } @Override @@ -70,20 +63,16 @@ public class UserFilterAdapter extends RecyclerView.Adapter<UserFilterAdapter.Us } class UserViewHolder extends RecyclerView.ViewHolder { + private ItemFilterUserBinding binding; - // TODO Use ViewBinding - private TextView displayName; - private ImageView avatar; - - UserViewHolder(@NonNull View itemView) { - super(itemView); - displayName = itemView.findViewById(R.id.displayName); - avatar = itemView.findViewById(R.id.avatar); + UserViewHolder(@NonNull ItemFilterUserBinding binding) { + super(binding.getRoot()); + this.binding = binding; } void bind(final User user) { - displayName.setText(user.getDisplayname()); - ViewUtil.addAvatar(avatar, account.getUrl(), user.getUid(), avatarSize, R.drawable.ic_person_grey600_24dp); + binding.displayName.setText(user.getDisplayname()); + ViewUtil.addAvatar(binding.avatar, account.getUrl(), user.getUid(), avatarSize, R.drawable.ic_person_grey600_24dp); itemView.setSelected(selectedUsers.contains(user)); itemView.setOnClickListener(view -> { |