diff options
author | Stefan Niedermann <info@niedermann.it> | 2024-01-14 13:25:25 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2024-01-14 13:25:25 +0300 |
commit | 52ce22d2303e69d7c2410afa0bfb50e6ef6701d6 (patch) | |
tree | 9c003d1aa3674432d1b543cc5e05b03b4ea912ac /app | |
parent | 8471bf3b4dea916ed87f70c6b497bb18336723e3 (diff) |
feat(done): Use ✔️ icon when done is present in favor of 📆 / 🕙 in single card widget
Refs: #1556
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/singlecard/SingleCardWidget.java | 32 | ||||
-rw-r--r-- | app/src/main/res/layout/widget_single_card.xml | 2 |
2 files changed, 20 insertions, 14 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/singlecard/SingleCardWidget.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/singlecard/SingleCardWidget.java index 96c4209e5..00941b676 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/singlecard/SingleCardWidget.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/singlecard/SingleCardWidget.java @@ -1,5 +1,6 @@ package it.niedermann.nextcloud.deck.ui.widget.singlecard; +import static java.time.temporal.ChronoUnit.DAYS; import static it.niedermann.nextcloud.deck.util.WidgetUtil.pendingIntentFlagCompat; import android.app.PendingIntent; @@ -13,9 +14,12 @@ import android.text.TextUtils; import android.view.View; import android.widget.RemoteViews; +import androidx.annotation.DrawableRes; import androidx.annotation.IdRes; import androidx.annotation.NonNull; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.NoSuchElementException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -53,27 +57,29 @@ public class SingleCardWidget extends AppWidgetProvider { views.setViewVisibility(R.id.description_lv, View.VISIBLE); } + final var card = fullModel.getFullCard().getCard(); + views.setOnClickPendingIntent(R.id.widget_card, pendingIntent); views.setPendingIntentTemplate(R.id.description_lv, pendingIntent); - views.setTextViewText(R.id.title, fullModel.getFullCard().getCard().getTitle()); + views.setTextViewText(R.id.title, card.getTitle()); views.setRemoteAdapter(R.id.description_lv, serviceIntent); - if (fullModel.getFullCard().getCard().getDone() != null) { - views.setTextViewText(R.id.card_due_date, DateUtil.getRelativeDateTimeString(context, fullModel.getFullCard().getCard().getDone().toEpochMilli())); - // TODO Use multiple views for background colors and only set the necessary to View.VISIBLE - // https://stackoverflow.com/a/3376537 - // Because otherwise using Reflection is the only way + // TODO Use multiple views for background colors and only set the necessary to View.VISIBLE + // https://stackoverflow.com/a/3376537 + // Because otherwise using Reflection is the only way + if (card.getDone() != null) { + views.setTextViewText(R.id.card_due_date, DateUtil.getRelativeDateTimeString(context, card.getDone().toEpochMilli())); views.setViewVisibility(R.id.card_due_date, View.VISIBLE); views.setViewVisibility(R.id.card_due_date_image, View.VISIBLE); - views.setImageViewResource(R.id.card_due_date_image, R.drawable.calendar_blank_grey600_24dp); - } else if (fullModel.getFullCard().getCard().getDueDate() != null) { - views.setTextViewText(R.id.card_due_date, DateUtil.getRelativeDateTimeString(context, fullModel.getFullCard().getCard().getDueDate().toEpochMilli())); - // TODO Use multiple views for background colors and only set the necessary to View.VISIBLE - // https://stackoverflow.com/a/3376537 - // Because otherwise using Reflection is the only way + views.setImageViewResource(R.id.card_due_date_image, R.drawable.ic_check_white_24dp); + } else if (card.getDueDate() != null) { + views.setTextViewText(R.id.card_due_date, DateUtil.getRelativeDateTimeString(context, card.getDueDate().toEpochMilli())); views.setViewVisibility(R.id.card_due_date, View.VISIBLE); views.setViewVisibility(R.id.card_due_date_image, View.VISIBLE); - views.setImageViewResource(R.id.card_due_date_image, R.drawable.calendar_blank_grey600_24dp); + + final long diff = DAYS.between(LocalDate.now(), card.getDueDate().atZone(ZoneId.systemDefault()).toLocalDate()); + @DrawableRes final var dueDateImage = diff < 0 ? R.drawable.ic_time_filled_24 : R.drawable.ic_time_24; + views.setImageViewResource(R.id.card_due_date_image, dueDateImage); } else { views.setViewVisibility(R.id.card_due_date, View.GONE); views.setViewVisibility(R.id.card_due_date_image, View.GONE); diff --git a/app/src/main/res/layout/widget_single_card.xml b/app/src/main/res/layout/widget_single_card.xml index 5646b98f1..b868a59d5 100644 --- a/app/src/main/res/layout/widget_single_card.xml +++ b/app/src/main/res/layout/widget_single_card.xml @@ -39,7 +39,7 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:contentDescription="@null" - tools:src="@drawable/calendar_blank_grey600_24dp" /> + tools:src="@drawable/ic_time_24" /> <TextView android:id="@+id/card_due_date" |