diff options
author | Stefan Niedermann <info@niedermann.it> | 2024-01-14 13:18:03 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2024-01-14 13:18:03 +0300 |
commit | 8471bf3b4dea916ed87f70c6b497bb18336723e3 (patch) | |
tree | 032d730d37f4a1a044a760a5dae41a660afecc25 /app/src/main/java/it/niedermann/nextcloud/deck/ui/card | |
parent | 8ab9514b4a129d7d0db55811e785be367c86a176 (diff) |
feat(done): Enhance due date / done UX in board view
- Use ✔️ icon when done is present in favor of 📆 / 🕙 in board view
- Change icon from 📆 to 🕙 for due dates
- Move temporal information into own reusable component to encapsulate logic
Refs: #1556
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/card')
4 files changed, 13 insertions, 10 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/AbstractCardViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/AbstractCardViewHolder.java index da9790a0d..7653f4ff3 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/AbstractCardViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/AbstractCardViewHolder.java @@ -22,7 +22,6 @@ import com.nextcloud.android.common.ui.theme.utils.ColorRole; import org.jetbrains.annotations.Contract; import java.time.Instant; -import java.time.ZoneId; import java.util.List; import java.util.stream.Collectors; @@ -32,10 +31,9 @@ import it.niedermann.nextcloud.deck.model.Card; import it.niedermann.nextcloud.deck.model.User; import it.niedermann.nextcloud.deck.model.enums.DBStatus; import it.niedermann.nextcloud.deck.model.full.FullCard; -import it.niedermann.nextcloud.deck.ui.theme.DeckViewThemeUtils; import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; +import it.niedermann.nextcloud.deck.ui.view.DueDateChip; import it.niedermann.nextcloud.deck.util.AttachmentUtil; -import it.niedermann.nextcloud.deck.util.DateUtil; import it.niedermann.nextcloud.deck.util.MimeTypeUtil; import it.niedermann.nextcloud.sso.glide.SingleSignOnUrl; @@ -91,7 +89,7 @@ public abstract class AbstractCardViewHolder extends RecyclerView.ViewHolder { }); } - protected abstract TextView getCardDueDate(); + protected abstract DueDateChip getCardDueDate(); protected abstract ImageView getNotSyncedYet(); @@ -113,12 +111,14 @@ public abstract class AbstractCardViewHolder extends RecyclerView.ViewHolder { return getCard(); } - private static void setupDueDate(@NonNull TextView cardDueDate, @NonNull Card card) { + private static void setupDueDate(@NonNull DueDateChip cardDueDate, @NonNull Card card) { final boolean isDone = card.getDone() != null; final Instant date = isDone ? card.getDone() : card.getDueDate(); - cardDueDate.setText(DateUtil.getRelativeDateTimeString(cardDueDate.getContext(), date.toEpochMilli())); - DeckViewThemeUtils.themeDueDate(cardDueDate, date.atZone(ZoneId.systemDefault()).toLocalDate(), isDone); + if (date == null) { + throw new IllegalArgumentException("Expected due date or done date to be present but both were null."); + } + cardDueDate.setDueDate(date, isDone); } protected static void setupCoverImages(@NonNull Account account, @NonNull ViewGroup coverImagesHolder, @NonNull FullCard fullCard, int maxCoverImagesCount) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CompactCardViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CompactCardViewHolder.java index cf947c90b..7c53451a5 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CompactCardViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CompactCardViewHolder.java @@ -19,6 +19,7 @@ import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.Label; import it.niedermann.nextcloud.deck.model.full.FullCard; import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; +import it.niedermann.nextcloud.deck.ui.view.DueDateChip; public class CompactCardViewHolder extends AbstractCardViewHolder { private final ItemCardCompactBinding binding; @@ -63,7 +64,7 @@ public class CompactCardViewHolder extends AbstractCardViewHolder { } @Override - protected TextView getCardDueDate() { + protected DueDateChip getCardDueDate() { return binding.cardDueDate; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/DefaultCardOnlyTitleViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/DefaultCardOnlyTitleViewHolder.java index 27aacc614..1b6b2b3a0 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/DefaultCardOnlyTitleViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/DefaultCardOnlyTitleViewHolder.java @@ -12,6 +12,7 @@ import androidx.annotation.Nullable; import com.google.android.material.card.MaterialCardView; import it.niedermann.nextcloud.deck.databinding.ItemCardDefaultOnlyTitleBinding; +import it.niedermann.nextcloud.deck.ui.view.DueDateChip; public class DefaultCardOnlyTitleViewHolder extends AbstractCardViewHolder { private final ItemCardDefaultOnlyTitleBinding binding; @@ -35,7 +36,7 @@ public class DefaultCardOnlyTitleViewHolder extends AbstractCardViewHolder { } @Override - protected TextView getCardDueDate() { + protected DueDateChip getCardDueDate() { return binding.cardDueDate; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/DefaultCardViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/DefaultCardViewHolder.java index dc6e5a956..083480736 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/DefaultCardViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/DefaultCardViewHolder.java @@ -19,6 +19,7 @@ import it.niedermann.nextcloud.deck.databinding.ItemCardDefaultBinding; import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.full.FullCard; import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; +import it.niedermann.nextcloud.deck.ui.view.DueDateChip; public class DefaultCardViewHolder extends AbstractCardViewHolder { private final ItemCardDefaultBinding binding; @@ -93,7 +94,7 @@ public class DefaultCardViewHolder extends AbstractCardViewHolder { } @Override - protected TextView getCardDueDate() { + protected DueDateChip getCardDueDate() { return binding.cardDueDate; } |