From b49dc9f3c0c3c721b284f382d8c30915354f5b92 Mon Sep 17 00:00:00 2001 From: stefan-niedermann Date: Sun, 1 Mar 2020 16:30:31 +0100 Subject: #285 Migrate from ButterKnife to ViewBinding - CardAdapter --- .../nextcloud/deck/ui/card/CardAdapter.java | 121 +++++++++------------ 1 file changed, 49 insertions(+), 72 deletions(-) diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java index 9b89f071c..df7265c52 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java @@ -14,7 +14,6 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewManager; import android.widget.ImageView; -import android.widget.LinearLayout; import android.widget.PopupMenu; import android.widget.RelativeLayout; import android.widget.TextView; @@ -26,7 +25,6 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.LifecycleOwner; import androidx.recyclerview.widget.RecyclerView; -import com.google.android.material.card.MaterialCardView; import com.google.android.material.chip.Chip; import com.google.android.material.chip.ChipGroup; import com.nextcloud.android.sso.exceptions.NextcloudFilesAppAccountNotFoundException; @@ -37,13 +35,10 @@ import com.nextcloud.android.sso.model.SingleSignOnAccount; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; -import java.util.Objects; -import butterknife.BindInt; -import butterknife.BindView; -import butterknife.ButterKnife; import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.R; +import it.niedermann.nextcloud.deck.databinding.ItemCardBinding; import it.niedermann.nextcloud.deck.model.Card; import it.niedermann.nextcloud.deck.model.Label; import it.niedermann.nextcloud.deck.model.User; @@ -59,7 +54,7 @@ import it.niedermann.nextcloud.deck.util.DateUtil; import it.niedermann.nextcloud.deck.util.DimensionUtil; import it.niedermann.nextcloud.deck.util.ViewUtil; -public class CardAdapter extends RecyclerView.Adapter { +public class CardAdapter extends RecyclerView.Adapter { private static final String TAG = CardAdapter.class.getCanonicalName(); @@ -80,16 +75,11 @@ public class CardAdapter extends RecyclerView.Adapter availableStacks = new ArrayList<>(); - - @BindInt(R.integer.max_avatar_count) - int maxAvatarCount; - @BindInt(R.integer.max_labels_shown) - int maxLabelsShown; - @BindInt(R.integer.max_labels_chars) - int maxLabelsChars; + private int maxAvatarCount; + private int maxLabelsShown; + private int maxLabelsChars; public CardAdapter(long boardId, boolean canEdit, @NonNull SyncManager syncManager, @NonNull Fragment fragment) { - ButterKnife.bind(this, Objects.requireNonNull(fragment.getActivity())); this.lifecycleOwner = fragment; this.boardId = boardId; this.canEdit = canEdit; @@ -98,9 +88,15 @@ public class CardAdapter extends RecyclerView.Adapter { + viewHolder.binding.card.setOnClickListener((View clickedView) -> { Intent intent = new Intent(clickedView.getContext(), EditActivity.class); intent.putExtra(BUNDLE_KEY_ACCOUNT_ID, card.getAccountId()); intent.putExtra(BUNDLE_KEY_BOARD_ID, boardId); @@ -128,79 +124,79 @@ public class CardAdapter extends RecyclerView.Adapter { + viewHolder.binding.card.setOnLongClickListener((View draggedView) -> { ClipData dragData = ClipData.newPlainText("cardid", card.getLocalId() + ""); // Starts the drag draggedView.startDrag(dragData, // the data to be dragged new View.DragShadowBuilder(draggedView), // the drag shadow builder - new DraggedCardLocalState(card, viewHolder.card, this, position), // no need to use local data + new DraggedCardLocalState(card, viewHolder.binding.card, this, position), // no need to use local data 0 // flags (not currently used, set to 0) ); - viewHolder.card.setVisibility(View.INVISIBLE); + viewHolder.binding.card.setVisibility(View.INVISIBLE); DeckLog.log("onLongClickListener"); return true; }); setupMoveMenu(card.getAccountId(), boardId); } - viewHolder.cardTitle.setText(card.getCard().getTitle()); + viewHolder.binding.cardTitle.setText(card.getCard().getTitle()); String description = card.getCard().getDescription(); if (description != null && description.length() > 0) { - viewHolder.cardDescription.setText(card.getCard().getDescription()); - viewHolder.cardDescription.setVisibility(View.VISIBLE); + viewHolder.binding.cardDescription.setText(card.getCard().getDescription()); + viewHolder.binding.cardDescription.setVisibility(View.VISIBLE); } else { - viewHolder.cardDescription.setVisibility(View.GONE); + viewHolder.binding.cardDescription.setVisibility(View.GONE); } boolean showDetails = false; if (card.getAssignedUsers() != null && card.getAssignedUsers().size() > 0 && account.url != null) { - setupAvatars(viewHolder.peopleList, card); - viewHolder.peopleList.setVisibility(View.VISIBLE); + setupAvatars(viewHolder.binding.peopleList, card); + viewHolder.binding.peopleList.setVisibility(View.VISIBLE); showDetails = true; } else { - viewHolder.peopleList.setVisibility(View.GONE); + viewHolder.binding.peopleList.setVisibility(View.GONE); } if (DBStatus.LOCAL_EDITED.equals(card.getStatusEnum())) { - viewHolder.notSyncedYet.setVisibility(View.VISIBLE); + viewHolder.binding.notSyncedYet.setVisibility(View.VISIBLE); } if (card.getCard().getDueDate() != null) { - setupDueDate(viewHolder.cardDueDate, card.getCard()); - viewHolder.cardDueDate.setVisibility(View.VISIBLE); + setupDueDate(viewHolder.binding.cardDueDate, card.getCard()); + viewHolder.binding.cardDueDate.setVisibility(View.VISIBLE); showDetails = true; } else { - viewHolder.cardDueDate.setVisibility(View.GONE); + viewHolder.binding.cardDueDate.setVisibility(View.GONE); } final int attachmentsCount = card.getAttachments().size(); if (attachmentsCount == 0) { - viewHolder.cardCountAttachments.setVisibility(View.GONE); + viewHolder.binding.cardCountAttachments.setVisibility(View.GONE); } else { - setupAttachmentCount(viewHolder.cardCountAttachments, attachmentsCount); + setupAttachmentCount(viewHolder.binding.cardCountAttachments, attachmentsCount); - viewHolder.cardCountAttachments.setVisibility(View.VISIBLE); + viewHolder.binding.cardCountAttachments.setVisibility(View.VISIBLE); showDetails = true; } - viewHolder.labels.removeAllViews(); + viewHolder.binding.labels.removeAllViews(); if (card.getLabels() != null && card.getLabels().size() > 0) { - setupLabels(viewHolder.labels, card.getLabels()); - viewHolder.labels.setVisibility(View.VISIBLE); + setupLabels(viewHolder.binding.labels, card.getLabels()); + viewHolder.binding.labels.setVisibility(View.VISIBLE); showDetails = true; } else { - viewHolder.labels.setVisibility(View.GONE); + viewHolder.binding.labels.setVisibility(View.GONE); } if (showDetails) { - viewHolder.detailsContainer.setVisibility(View.VISIBLE); + viewHolder.binding.cardDetailsContainer.setVisibility(View.VISIBLE); } else { - viewHolder.detailsContainer.setVisibility(View.GONE); + viewHolder.binding.cardDetailsContainer.setVisibility(View.GONE); } - viewHolder.cardMenu.setOnClickListener(v -> onOverflowIconClicked(v, card)); + viewHolder.binding.cardMenu.setOnClickListener(v -> onOverflowIconClicked(v, card)); } private void setupMoveMenu(long accountId, long boardId) { @@ -377,7 +373,7 @@ public class CardAdapter extends RecyclerView.Adapter { // Nothing to do here... }); - DeckLog.log("Moved card \"" + card.getCard().getTitle() + "\" to \"" + availableStacks.get(which).getStack().getTitle() + "\""); + DeckLog.log("Moved card \"" + card.getCard().getTitle() + "\" to \"" + availableStacks.get(which).getStack().getTitle() + "\""); }) .setNegativeButton(android.R.string.cancel, null) .setTitle(context.getString(R.string.action_card_move_title, card.getCard().getTitle())) @@ -396,31 +392,12 @@ public class CardAdapter extends RecyclerView.Adapter