Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2024-01-16 10:04:17 +0300
committerStefan Niedermann <info@niedermann.it>2024-01-16 10:56:36 +0300
commitb66c01dcf779bc57edb161da036989c40e765d07 (patch)
treede0b7a6a58e84d37df8df2a137e862ab23cdd60e /app
parentb8d1a2a2a90df0c7f08de51076d9f6c3a1015f67 (diff)
chore(done): Adjust due date chip to match Deck server app
- Make done icon circular - Adjust logic to determine colors 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/upcomingcards/UpcomingCardsUtil.java6
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/view/DueDateChip.java45
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/singlecard/SingleCardWidget.java12
-rw-r--r--app/src/main/res/drawable/ic_check_circle_24.xml5
4 files changed, 35 insertions, 33 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsUtil.java
index 2341c6590..30ba2296c 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsUtil.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsUtil.java
@@ -1,5 +1,7 @@
package it.niedermann.nextcloud.deck.ui.upcomingcards;
+import static java.time.temporal.ChronoUnit.DAYS;
+
import android.content.Context;
import androidx.annotation.NonNull;
@@ -17,8 +19,6 @@ import java.util.List;
import it.niedermann.nextcloud.deck.DeckLog;
import it.niedermann.nextcloud.deck.model.Card;
-import static java.time.temporal.ChronoUnit.DAYS;
-
public class UpcomingCardsUtil {
private UpcomingCardsUtil() {
@@ -31,7 +31,7 @@ public class UpcomingCardsUtil {
return EUpcomingDueType.NO_DUE;
}
- long diff = DAYS.between(LocalDate.now(), dueDate.atZone(ZoneId.systemDefault()).toLocalDate());
+ final long diff = DAYS.between(LocalDate.now(), dueDate.atZone(ZoneId.systemDefault()).toLocalDate());
if (diff > 7) {
return EUpcomingDueType.LATER;
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/DueDateChip.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/DueDateChip.java
index 88b86daf3..952c5105f 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/DueDateChip.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/DueDateChip.java
@@ -1,6 +1,6 @@
package it.niedermann.nextcloud.deck.ui.view;
-import static java.time.temporal.ChronoUnit.DAYS;
+import static java.time.temporal.ChronoUnit.HOURS;
import android.content.Context;
import android.content.res.ColorStateList;
@@ -18,7 +18,7 @@ import androidx.core.content.ContextCompat;
import com.google.android.material.chip.Chip;
import java.time.Instant;
-import java.time.LocalDate;
+import java.time.LocalDateTime;
import java.time.ZoneId;
import it.niedermann.android.util.DimensionUtil;
@@ -52,11 +52,12 @@ public class DueDateChip extends Chip {
styles.recycle();
setEnsureMinTouchTargetSize(false);
- setMinHeight(0);
- setChipMinHeight(0);
+ setClickable(false);
+
@Px final var padding = DimensionUtil.INSTANCE.dpToPx(getContext(), R.dimen.spacer_1x);
setPadding(padding, padding, padding, padding);
- setClickable(false);
+ setMinHeight(0);
+ setChipMinHeight(0);
if (compactMode) {
setChipEndPadding(0);
@@ -76,28 +77,24 @@ public class DueDateChip extends Chip {
@ColorRes final int backgroundColorRes;
if (isDone) { // Done
- chipIconRes = R.drawable.ic_check_white_24dp;
+ chipIconRes = R.drawable.ic_check_circle_24;
backgroundColorRes = R.color.due_done;
textColorRes = R.color.due_text_done;
- } else {
- final long diff = DAYS.between(LocalDate.now(), date.atZone(ZoneId.systemDefault()).toLocalDate());
-
- if (diff == 0) { // Today
- chipIconRes = R.drawable.ic_time_24;
- backgroundColorRes = R.color.due_today;
- textColorRes = R.color.due_text_today;
-
- } else if (diff < 0) { // Overdue
- chipIconRes = R.drawable.ic_time_filled_24;
- backgroundColorRes = R.color.due_overdue;
- textColorRes = R.color.due_text_overdue;
-
- } else { // Future
- chipIconRes = R.drawable.ic_time_24;
- backgroundColorRes = android.R.color.transparent;
- textColorRes = null;
- }
+ } else if (date.isBefore(Instant.now())) { // Overdue
+ chipIconRes = R.drawable.ic_time_filled_24;
+ backgroundColorRes = R.color.due_overdue;
+ textColorRes = R.color.due_text_overdue;
+
+ } else if (HOURS.between(LocalDateTime.now(), date.atZone(ZoneId.systemDefault())) < 24) { // Next 24 Hours
+ chipIconRes = R.drawable.ic_time_24;
+ backgroundColorRes = R.color.due_today;
+ textColorRes = R.color.due_text_today;
+
+ } else { // Future
+ chipIconRes = R.drawable.ic_time_24;
+ backgroundColorRes = android.R.color.transparent;
+ textColorRes = null;
}
setChipIcon(ContextCompat.getDrawable(getContext(), chipIconRes));
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 00941b676..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
@@ -1,6 +1,5 @@
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;
@@ -18,8 +17,7 @@ import androidx.annotation.DrawableRes;
import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
-import java.time.LocalDate;
-import java.time.ZoneId;
+import java.time.Instant;
import java.util.NoSuchElementException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -71,14 +69,16 @@ public class SingleCardWidget extends AppWidgetProvider {
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_white_24dp);
+ 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);
- 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;
+ @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);
diff --git a/app/src/main/res/drawable/ic_check_circle_24.xml b/app/src/main/res/drawable/ic_check_circle_24.xml
new file mode 100644
index 000000000..45c61fa3f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_check_circle_24.xml
@@ -0,0 +1,5 @@
+<vector android:autoMirrored="true" android:height="24dp"
+ android:tint="?attr/colorOnSurface" android:viewportHeight="24"
+ android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM10,17l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z"/>
+</vector>