diff options
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/singlecard/SingleCardWidget.java')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/singlecard/SingleCardWidget.java | 28 |
1 files changed, 21 insertions, 7 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 08e32bf25..f674047cc 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 @@ -13,9 +13,11 @@ 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.Instant; import java.util.NoSuchElementException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -53,19 +55,31 @@ 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().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 + // 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.ic_check_circle_24); + } 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); + + @DrawableRes final var dueDateImage = card.getDueDate().isBefore(Instant.now()) + ? 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); |